Vinnaren i pepparkakshustävlingen!
2012-03-10, 22:13
  #1
Medlem
Noos avatar
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.

Bild på databasen:

Frågorna:

Mina svar:
__________________
Senast redigerad av Noo 2012-03-10 kl. 22:16.
Citera
2012-03-10, 22:37
  #2
Moderator
Protons avatar
Om du börjar i ändan med vilka tabeller du behöver joina ihop och på vilket sätt så blir det troligen enklare?
Citera
2012-03-10, 23:27
  #3
Medlem
Noos avatar
Citat:
Ursprungligen postat av Proton
Om du börjar i ändan med vilka tabeller du behöver joina ihop och på vilket sätt så blir det troligen enklare?

Ska testa runt. Är de andra fyra rätt? :/
Citera
2012-03-11, 15:09
  #4
Medlem
John-Pauls avatar
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.
Citera
2012-03-11, 18:39
  #5
Medlem
Noos avatar
Citat:
Ursprungligen postat av John-Paul
...

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.

Tillbaka på ruta 1.
Citera
2012-03-11, 18:48
  #6
Medlem
John-Pauls avatar
Jag tycker det är svar på frågorna men notation var alltså fel och att den var viktig här insåg jag inte.
Citera
2012-03-11, 21:25
  #7
Medlem
Noos avatar
Någon annan som kan hjälpa till? Med relationsalgebra alltså. Alltså så som jag gjort i mina egna svar ovan.
Citera
2012-03-11, 21:38
  #8
Medlem
Du har ju fått svaret tidigare. Du behöver ju bara översätta SQLn till algebra.
Citera

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!

Stöd Flashback