IN2090-ukesoppgaver: Uke 7
FDer og tillukning
Oppgave 1 FDer og tillukning
a)
Finn de funksjonelle avhengighetene til relasjonen:
Student(studentNr, land, populasjon)
som relaterer
studenter til landet de studerer i, og hvor
studentNr
er unikt for en student (alts? attributten som kun er knyttet til en student, alts?studentNr
ogland
)populasjon
er populasjonen til landet med navn oppgitt iland
b)
Gitt f?lgende relasjon:
Student(navn, personnr, f?dselsdato, kurskode, fagkode, fagnummer, kursnavn)
som relaterer en student til kursene den tar, og FDene:
personnr → navn
personnr → f?dselsdato
kurskode → kursnavn, fagkode, fagnummer
fagkode, fagnummer → kurskode
Finn tillukningen til 1. personnr
2.
{personnr, fagkode, fagnummer}
L?sningsforslag
a)
studentNr → land
land → populasjon
b)
personnr? = {personnr, navn, f?dselsdato}
{personnr, fagkode, kurskode}? = {personnr, fagkode, fagnummer, navn, f?dselsdato, kurskode, kursnavn}
Oppgave 2 Tillukning og n?kler
Gitt f?lgende relasjon
Bok(isbn, tittel, forfatter, forlagsnr, forlagsnavn, utgitt, sjanger, aldersgrense)
hvor vi har f?lgende Fder:
isbn → tittel, forfatter, forlagsnr, sjanger
forlagsnr → forlagsnavn
utgitt, forfatter, forlagsnr → isbn
sjanger → aldersgrense
- Hva er tillukningen til
forlagsnr
? - Hva er tillukningen til
{forlagsnr, sjanger, forfatter}
? - Hva er kandidatn?klene til
Bok
?
L?sningsforslag
a)
forlagsnr? = {forlagsnr, forlagsnavn}
b)
{forlagsnr, sjanger, forfatter}? = {forlagsnr, sjanger, forfatter, forlagsnavn, aldersgrense}
c)
- Aldri p? h?yresider:
utgitt
- Kun er p? h?yresider:
tittel, forlagsnavn, aldersgrense
- M? fors?ke ? utvide med:
isbn, forlagsnr, forfatter, sjanger
- Fors?ker f?rst med kun
utgitt
:utgitt? = {utgitt}
, alst? ikke kandidatn?kkel. - Utvider med
isbn
:{isbn, utgitt}? = {isbn, utgitt, tittel, forfatter, forlagsnr, sjanger, forlsagsnavn, aldersgrense}
, alts? kandidatn?kkel - Utvider med
forlagsnr
:{utgitt, forlagsnr}? = {utgitt, forlagsnr, forlagsnavn}
, alts? ikke kandidatn?kkel - Utvider med
forfatter
:{utgitt, forfatter}? = {utgitt, forfatter}
, alts? ikke kandidatn?kkel - Utvider med
sjanger
:{utgitt, sjanger}? = {utgitt, sjanger, aldersgrense}
, alts? ikke kandidatn?kkel - Utvider med
forlagsnr
ogforfatter
:{utgitt, forlagsnr, forfatter}? = {utgitt, forlagsnr, forfatter, forlagsnavn, isbn, tittel, sjanger, aldersgrense}
, alts? en kandidatn?kkel - Utvider med
forlagsnr
ogsjanger
:{utgitt, forlagsnr, sjanger}? = {utgitt, forlagsnr, sjanger, forlagsnavn, aldersgrense}
, alts? ikke kandidatn?kkel - Utvider med
forfatter
ogsjanger
:{utgitt, forfatter, sjanger}? = {utgitt, forfatter, sjanger, aldersgrense}
, alts? ikke kandidatn?kkel
Alle st?rre utvidelser vil kun gi supern?kler som ikke er minimale.
Alts? har vi f?lgende to kandiadtn?kler: {utgitt, isbn}
og
{utgitt, forlagsnr, forfatter}
.