Sådär, ett nytt försök.
Hej, jag behöver läxhjälp. Det är 5 stycken frågor inom relationsalgebra som jag behöver svar på. Jag tror mig ha löst 4 av dem. Här bifogas databasen, frågorna, samt hur långt jag kommit. Jag är osäker på att jag har gjort rätt - därför är jag här.
Det är alltså en databasläxa som handlar om ett byggprojekt. Jag har allting på a4 papper, så här är min photoshopversion.
1. Ta fram personnr på byggare som varit i bygglokalen med ID "1".
2. Ta fram personnr, namn och tjänstelokal på byggare som varit i bygglokalen med ID "1".
3. Ta fram personnr och namn på byggare som varit med i projektet med koden "SÖDER".
4. Ta fram namn och adress på byggare som bor i "NORRMALM".
5. Ta fram namn och adress på byggare som bor i "NORRMALM" eller "KUNGSHOLMEN".
Mina svar:
1. Π personnr (Byggtillfälle θ bygglokal=1 AND byggare=personnr Person)
2. den här kan jag inte...
3. Π personnr, namn (Byggtillfälle θ projekt='SÖDER' AND byggare=personnr Person
4. Π namn, adress σ ort='NORRMALM' Person
5. Π namn, adress σ ort='NORRMALM' OR ort='KUNGSHOLMEN' Person
__________________
Senast redigerad av Noo 2012-03-10 kl. 22:16.
Person.personnr, Person.namn, Byggare.tjänstelokal
from Person inner join Byggare on Person.personnr = Byggare.personnr
Tabellen Byggare har ingen koppling till Byggtillfälle men vi säger att tabellen Byggare har kolumen byggare.
Ps. Olämpligt med verksamhetsdata som nycklar Ds.
1. Ta fram personnr på byggare som varit i bygglokalen med ID "1".
select Person.personnr
from Person
inner join Byggare on Person.personnr = Byggare.personnr
inner join Byggtillfälle on Byggtillfälle.byggare = Byggare.byggare
inner join Bygglokal on Bygglokal.bygglokal = Byggtillfälle.bygglokal
where Bygglokal.id = '1'
2. Ta fram personnr, namn och tjänstelokal på byggare som varit i bygglokalen med ID "1".
select Person.personnr, Person.namn, Byggare.tjänstelokal
from Person
inner join Byggare on Person.personnr = Byggare.personnr
inner join Bygglokal on Bygglokal.bygglokal = Byggtillfälle.bygglokal
where Bygglokal.id = '1'
3. Ta fram personnr och namn på byggare som varit med i projektet med koden "SÖDER".
select Person.personnr, Person.namn
from Person
inner join Byggare on Person.personnr = Byggare.personnr
inner join Byggtillfälle on Byggtillfälle.byggare = Byggare.byggare
inner join Projekt on Projekt.projekt = Byggtillfälle.projekt
where Projekt.projktkod = 'SÖDER'
4. Ta fram namn och adress på byggare som bor i "NORRMALM".
select Person.personnr, Person.namn, Person.Adress
from Person
where Person.ort = 'NORRMALM'
5. Ta fram namn och adress på byggare som bor i "NORRMALM" eller "KUNGSHOLMEN".
select Person.personnr, Person.Adress
from Person
where Person.ort in ('NORRMALM','KUNGSHOLMEN')
Så, nu kan du gå ut i solen och leka.
Så här kan du tänka:
1. Du följer i schemat tabellerna som behövs för att få fram det som efterfrågas med de begränsningar som anges.
2. Om du nu har fler än en tabell så kopplar ihop dessa med nycklarna i dom samma.
3. Du anger kolumner som ska finnas i svaret och från vilka tabeller det är. (tabellnamn.kolumnnamn)
4. Du lägger till villkoret/villkoren (begränsningen/urvalet).
5. Du lägger till sortering om sådan är angiven.
__________________
Senast redigerad av John-Paul 2012-03-11 kl. 15:43.
Ja du... Jag vet inte vad jag ska säga riktigt. Det var inte så att jag ville att du skulle översätta relationsalgebra till SQL... Det är faktiskt inte ens i närheten av vad jag ville ha hjälp med.
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!
Stöd Flashback
Swish: 123 536 99 96Bankgiro: 211-4106
Stöd Flashback
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!