IN2090-ukesoppgaver: Uke 2
Relasjonsmodellen og relasjonsalgebra
Oppgave 1
Gitt f?lgende relasjoner:
Student
| Navn | F?dselsdato | StudentNr | 澳门葡京手机版app下载 | Studie |
|---|---|---|---|---|
| Ola | 1997-01-01 | 1234 | Sognsveien 1 | Informatikk |
| Kari | 1995-10-12 | 1032 | Sognsveien 1 | Matematikk |
| Sara | 1991-03-09 | 2501 | Osloveien 4 | Informatikk |
| Per | 4510 | Sognsveien 1 | Informatikk |
Gruppel?rer
| StudentNr | Kurs | Semester |
|---|---|---|
| 1234 | IN2090 | H18 |
| 2501 | IN2090 | H18 |
| 2501 | IN1234 | V19 |
hvor vi antar at StudentNr er unikt for hver student og at en gruppel?rer kun kan v?re gruppel?rer i ett kurs én gang per semester. Videre er Gruppel?rer(StudentNr) en fremmedn?kkel til Student(StudentNr).
a)
Hva er begrepene relasjonsnavn, attributt og tuppel i relasjonene over?
L?sningsforslag:
- Relasjonsnavn: Student og Gruppel?rer
- Attributter: For Student er Navn, F?dselsdato, StudentNr, 澳门葡京手机版app下载 og Studie og for Gruppel?rer er StudentNr, Kurs og Semester
- Tuppel: Alle radene, f.eks. (Ola, 1997-01-01, 1234, Sognsveien 1, Informatikk) og (1234, IN2090, H18)
b)
Finn alle supern?kler og kandidatn?kler for relasjonene over.
L?sningsforslag:
Supern?kler:
- Student: Siden StudentNr er unikt er alle mengder med attributter som inneholder StudentNr en supern?kkel, slik som {StudentNr, Navn} eller {F?dselsdato, Studie, StudieNr}
- Gruppel?rer: Ingen av attributtene er alene unike. Derimot vet vi at hver student kun kan v?re gruppel?rer i ett kurs hvert semester, alts? m? kombinasjonen av gruppel?rer og semester v?re unik. Dermed blit {StudentNr, Semester} en supern?kkel. Ellers vet vi jo at alle attributtene sammen alltid utgj?r en supern?kkel. Alts? er supern?kkelene for relasjonen {StudentNr, Semester} og {StudentNr, Kurs, Semester}
Kandidatn?kler:
- Student: Siden StudentNr er unikt vil for alle studenter vil {StudentNr} v?re en minimal supern?kkel, alts? en kandidatn?kkel. Alle andre supern?kler inneholder overfl?dige attributter i tillegg til StudentNr og er dermed ikke minimale
- Gruppel?rer: For supern?kkelen {StudentNr, Kurs, Semester} kan vi fjerne Kurs og fortsatt sitte igjen med noe som er en supern?kkel ({StudentNr, Semester}), s? det er ikke en kandidatn?kkel. Derimot kan vi ikke fjerne noe fra den andre supern?kkelen, {StudentNr, Semester}, og fortsatt sitte igjen med en supern?kkel, siden ingen av attributtene til relasjonen alene utgj?r en supern?kkel. Alts? er {StudentNr, Semester} eneste kandidatn?kkel for Gruppel?rer.
c)
Forklar hva f?lgende uttrykk i relasjonsalgebra betyr:
L?sningsforslag:
Uttrykket finner f?dselsdato til alle studenter med navn Sara.
d)
Skriv et uttrykk i relasjonsalgebraen som finner f?lgende:
- navn p? de studentene som bor i Sognsveien 1
- studentNr p? alle gruppel?rere i IN2090 h?sten 2018
- studentNr til alle studenter som studerer informatikk
- For alle studenter som bor i Sognsveien 1, finn de som studerer matematikk
- Finn adressen til alle studenter som har et studentNr mellom 1000 og 3000
- Navn og f?dselsdato p? alle gruppel?rere i IN2090 h?sten 2018
L?sningsforslag:
- πnavn(σadresse?=?′Sognsveien1′(Student))
- πstudentNr(σkurs?=?′IN2090′?∧?semester?=?′H18′(Gruppel?rer))
- πstudentNr(σstudie?=?′Informatikk′(Student))
- σstudie?=?′Matematikk′?∧?adresse?=?′Sognsveien1′(Student)
- πadresse(σstudentNr?<?3000?∧?studentNr?>?1000(Student))
- πnavn,?f?dselsdato(σkurs?=?′IN2090′?∧?semester?=?′H18′(Gruppel?rer)???Student)
Oppgave 2
Gikk f?lgende relasjoner:
Foreleser
| Id | Navn | Kontor | KursID | ?r |
|---|---|---|---|---|
| 344 | Per | C80 | IN2090 | 2020 |
| 453 | Brian | C81 | IN2090 | 2020 |
| 567 | Jon | C82 | IN1010 | |
| 563 | Maria | C81 | IN3420 | 2019 |
| 564 | Kari | C80 | IN2412 | 2020 |
| 876 | Per | C83 | IN3524 | 2019 |
| 980 | Kari | C80 | IN3020 |