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
studentNrer unikt for en student (alts? attributten som kun er knyttet til en student, alts?studentNrogland)populasjoner 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 → navnpersonnr → f?dselsdatokurskode → kursnavn, fagkode, fagnummerfagkode, fagnummer → kurskode
Finn tillukningen til 1. personnr 2.
{personnr, fagkode, fagnummer}
L?sningsforslag
a)
studentNr → landland → 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, sjangerforlagsnr → forlagsnavnutgitt, forfatter, forlagsnr → isbnsjanger → 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
forlagsnrogforfatter:{utgitt, forlagsnr, forfatter}? = {utgitt, forlagsnr, forfatter, forlagsnavn, isbn, tittel, sjanger, aldersgrense}, alts? en kandidatn?kkel - Utvider med
forlagsnrogsjanger:{utgitt, forlagsnr, sjanger}? = {utgitt, forlagsnr, sjanger, forlagsnavn, aldersgrense}, alts? ikke kandidatn?kkel - Utvider med
forfatterogsjanger:{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}.