IN2090-ukesoppgaver: Uke 2
Relasjonsmodellen og relasjonsalgebra
Oppgave 1
Gitt f?lgende relasjoner:
Student
Navn | F?dselsdato | StudentNr | 亚博娱乐官网_亚博pt手机客户端登录 | 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, 亚博娱乐官网_亚博pt手机客户端登录 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. Heller ingen par av attributter gir unikhet, siden én student kan v?re gruppel?rer i samme kurs over flere semester, én gruppel?rer kan v?re gruppel?rer i flere kurs samme semester og et kurs kan ha flere gruppel?rere samme semester. Alts? er den eneste supern?kkelen den som inneholder alle attributter, alts? {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: Ettersom det kun er én supern?kkel m? denne ogs? v?re en kandidatn?kkel, alts? er {StudentNr, Kurs, Semester} den eneste kandidatn?kkelen 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 | 2018 |
687 | Kari | C84 | IN3020 | 2019 |
345 | Brian | C85 | IN2034 | 2020 |
Institutt
InstituttID | AnsattID |
---|---|
I1 | 334 |
I2 | 453 |
I3 | 567 |
I1 | 563 |
I2 | 563 |
I1 | 876 |
I2 | 980 |
I3 | 687 |
I3 | 345 |
I3 | 111 |
Foreleser beskriver alts? forelesere, deres Id, navn, hvilket kontor de har, IDen til kurset de underviser og ?ret de underviser det kurset. Institutt sier hvilke institutter ulike ansatte er knyttet til.
Ved ? se p? eksempel-dataene, kan AnsattID v?re en fremmedn?kkel til Foreleser(Id)?
L?sningsforslag:
Nei, fordi Institutt(AnsattID) inneholder verdien 111 som ikke er inneholdt i Foreleser(Id).
Oppgave 3
Gitt f?lgende abstrakte signatur: R(A, B, C, D)
Alts?, en relasjon med navn R som har fire attributter (A, B, C og D).
Relasjonen har f?lgende supern?kler:
- {B}
- {A, B}
- {B, C}
- {B, D}
- {C, D}
- {A, B, C}
- {A, B, D}
- {A, C, D}
- {B, C, D}
- {A, B, C, D}
a)
Finn kandidatn?klene til R.
L?sningsforslag:
En kandidatn?kkel er jo en minimal supern?kkel, alts? skal m? vi finne de supern?klene hvor vi ikke kan fjerne ett attributt og fortsatt ha en supern?kkel:
- {B}: Har bare ett attributt og er dermed en kandidatn?kkel
- {A, B}: Vi kan fjerne A og fortsatt sitte igjen med en supern?kkel ({B}), og er dermed ikke en kandidatn?kkel
- {B, C}: Kan fjerne C, alts? ikke kandidatn?kkel
- {C, D}: Kan ikke fjerne C siden {D} ikke er en supern?kkel, og det samme gjelder fjerning av D, alts? er {C, D} en kandidatn?kkel
- {A, B, C}: Kan fjerne (en av) b?de A og C, alts? ikke kandidatn?kkel
- {A, B, D}: Kan fjerne (en av) b?de A og D, alts? ikke kandidatn?kkel
- {A, C, D}: Kan fjerne A, alts? ikke kandidatn?kkel
- {B, C, D}: Kan fjerne (en av) b?de C og D, alts? ikke kandidatn?kkel
- {A, B, C, D}: Kan fjerne (en av) A, B, C og D, alts? ikke kandidatn?kkel
Alts? har R kandidatn?klene {B} og {C, D}.
b)
Hvilke n?kkel-attributter har R?
L?sningsforslag:
Siden {B} og {C, D} er kandidatn?klene til R er alts? B, C, og D n?kkelattributtene til R.