IN2090-ukesoppgaver: Uke 8
Normalformer og tapsfri dekomposisjon
Oppgave 1
Følgende relasjon bryter med 2NF:
EksamensResultat(emnekode, studentId, semester, emnenavn, karakter)
hvor emnekode
bestemmer emnenavn
;
primærnøkkel er {emnekode, studentId, semester}
.
- Forklar hvorfor denne relasjonen ikke oppfyller 2NF.
- Dekomponer tapsfritt til BCNF.
Oppgave 2
Følgende relasjon bryter med 2NF: R(A, B, C, D, E, F)
med følgende FD-er:
B,C → D
E → F
- Hvorfor bryter denne med 2NF?
- Dekomponer relasjonen til BCNF.
Oppgave 3
Vi har relasjonen:
Timeliste(ansattnr, uke, år, navn, antTimer)
hvor
ansattnr
bestemmer navn
og
{ansattnr, uke år}
er eneste kandidatnøkkel.
- Hvilke funksjonelle avhengigheter har relasjonen?
- Tilfredsstiller denne relasjonen 2NF? Hvorfor/hvorfor ikke?
Oppgave 4
Vi har relasjonen:
Ordre(ordre, kundenr, kundenavn, antall, sum, mva)
hvor
kundenummer
bestemmer kundenavn
,
mva
-verdien er alltid 25% av sum
og
ordre
er eneste kandidatnøkkel.
- Hvilke funksjonelle avhengigheter har relasjonen?
- Hvilken normalform har relasjonen?
Oppgave 5 (fra eksamen 2015)
I denne oppgaven skal vi bruke følgende relasjon:
Filmgenre(filmid, title, prodyear, genre)
Primærnøkkelen i
tabellen er kombinasjonen av filmid
og genre
;
altså {filmid, genre}
. Videre vet vi også at
filmid
bestemmer både tittel
og
produksjonsår
for en film.
- Bestem alle supernøklene i relasjonen
Filmgenre
. Skriv ned alle. - Bestem alle FD-ene i relasjonen
Filmgenre
. - Hvilken normalform er relasjonen
Filmgenre
på? Begrunn svaret ditt.