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}.