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

  1. studentNr er unikt for en student (alts? attributten som kun er knyttet til en student, alts? studentNr og land)
  2. populasjon er populasjonen til landet med navn oppgitt i land

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)

  1. studentNr → land
  2. land → populasjon

b)

  1. personnr? = {personnr, navn, f?dselsdato}
  2. {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
  1. Hva er tillukningen til forlagsnr?
  2. Hva er tillukningen til {forlagsnr, sjanger, forfatter}?
  3. 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
  1. Fors?ker f?rst med kun utgitt: utgitt? = {utgitt}, alst? ikke kandidatn?kkel.
  2. Utvider med isbn: {isbn, utgitt}? = {isbn, utgitt, tittel, forfatter, forlagsnr, sjanger, forlsagsnavn, aldersgrense}, alts? kandidatn?kkel
  3. Utvider med forlagsnr: {utgitt, forlagsnr}? = {utgitt, forlagsnr, forlagsnavn}, alts? ikke kandidatn?kkel
  4. Utvider med forfatter: {utgitt, forfatter}? = {utgitt, forfatter}, alts? ikke kandidatn?kkel
  5. Utvider med sjanger: {utgitt, sjanger}? = {utgitt, sjanger, aldersgrense}, alts? ikke kandidatn?kkel
  6. Utvider med forlagsnr og forfatter: {utgitt, forlagsnr, forfatter}? = {utgitt, forlagsnr, forfatter, forlagsnavn, isbn, tittel, sjanger, aldersgrense}, alts? en kandidatn?kkel
  7. Utvider med forlagsnr og sjanger: {utgitt, forlagsnr, sjanger}? = {utgitt, forlagsnr, sjanger, forlagsnavn, aldersgrense}, alts? ikke kandidatn?kkel
  8. Utvider med forfatter og sjanger: {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}.