UNIVERSITETET I OSLO Relasjonsdatabasedesign Flerverdiavhengigheter Høyere normalformer Institutt for Informatikk INF3100-26.1.2012 Ellen Munthe-Kaas 1
Flerverdiavhengigheter Flerverdiavhengigheter gir opphav til en større klasse integritetsregler enn de som kan uttrykkes ved bare FDer INF3100-26.1.2012 Ellen Munthe-Kaas 2
Eksempel: Emnedatabase Emne(kode, lærebok, foreleser) Integritetsregler: Et emne har et sett av lærebøker Et emne kan ha flere forelesere Det er ingen sammenheng mellom forelesere og lærebøker INF3100-26.1.2012 Ellen Munthe-Kaas 3
Eksempelekstensjon Emne kode lærebok foreleser Emne kode lærebok foreleser Java Samfunn SE Agile RR Arne Siri Dag Yngve Bente Java Java Samfunn Samfunn SE SE SE Agile Agile Agile RR RR RR Arne Siri Arne Siri Dag Yngve Bente Dag Yngve Bente Dag Yngve Bente INF3100-26.1.2012 Ellen Munthe-Kaas 4
Definisjon flerverdiavhengighet Gitt et relasjonsskjema R(A 1,A 2,,A n ) La X, Y være delmengder av {A 1,A 2,,A n } La Z være de attributtene som hverken er med i X eller Y Y er flerverdiavhengig av X hvis vi for enhver lovlig instans av R har at hvis instansen inneholder to tupler t 1 og t 2 hvor t 1 [X]=t 2 [X], så finnes det også to tupler u 1 og u 2 hvor 1) u 1 [X]=u 2 [X]=t 1 [X]=t 2 [X] 2) u 1 [Y]=t 1 [Y], u 2 [Y]=t 2 [Y] 3) u 1 [Z]=t 2 [Z], u 2 [Z]=t 1 [Z] INF3100-26.1.2012 Ellen Munthe-Kaas 5
Definisjon på norsk Y er flerverdiavhengig av X hvis vi for alle lovlige instanser av R har at hvis instansen inneholder to tupler t 1 og t 2 som er like på X, så må den også inneholde to tupler u 1 og u 2 hvor 1) u 1 er lik t 1 på X og Y og lik t 2 utenfor Y 2) u 2 er lik t 2 på X og Y og lik t 1 utenfor Y INF3100-26.1.2012 Ellen Munthe-Kaas 6
MVD Vi skriver X Y hvis Y er flerverdiavhengig av X Ofte snakker vi for korthets skyld om MVDen X Y der MVD står for Multi-Valued Dependency Hvis Y X, så X Y Bevis: La t 1 og t 2 være to tupler som er like på X Velg u 1 =t 2 og u 2 =t 1 Da er u 1 =t 1 på X og Y og u 1 =t 2 utenfor Y, mens u 2 =t 2 på X og Y og u 2 =t 1 utenfor Y Det er definisjonen på at X Y INF3100-26.1.2012 Ellen Munthe-Kaas 7
Trivielle MVDer Hvis XY er samtlige attributter i R, så X Y Bevis: La t 1 og t 2 være to tupler som er like på X Velg u 1 =t 1 og u 2 =t 2 Da er u 1 =t 1 på X og Y og u 1 =t 2 utenfor Y, mens u 2 =t 2 på X og Y og u 2 =t 1 utenfor Y Det er definisjonen på at X Y Definisjon av trivielle MVDer: X Y kalles triviell hvis og bare hvis vi enten har at Y X eller at XY er samtlige attributter i R INF3100-26.1.2012 Ellen Munthe-Kaas 8
Ekte MVDer Hvis X Y, så X Y (Bevis følger senere) En ikketriviell X Y hvor X Y ikke holder, kalles en ekte MVD INF3100-26.1.2012 Ellen Munthe-Kaas 9
Når har vi MVDer MVDer benyttes til å uttrykke integritetsregler: emne lærebok, emne foreleser MVDer opptrer blant annet hvis man plasserer to mange-til-mange-forhold i samme relasjon og de to forholdene ikke har avhengigheter seg imellom (se lysark 26-27) INF3100-26.1.2012 Ellen Munthe-Kaas 10
Armstrongs slutningsregler utvidet til MVDer (for spesielt interesserte) 1. Refleksivitet FD: Hvis Y X, så X Y 2. Utvidelse FD: Hvis X Y, så XZ YZ 3. Transitivitet FD: Hvis X Y og Y Z, så X Z 4. Komplement: Hvis Z er de attributtene som XY ikke omfatter, og X Y, så X Z. 5. Utvidelse MVD: Hvis X Y og Z W, så XW YZ 6. Transitivitet MVD: Hvis X Y og Y Z, så X Z Y 7. FDer er MVDer: Hvis X Y så X Y 8. Sammensmeltning: Hvis X Y, W Z, W Y= og Z Y, så X Z Regelsettet er sunt og komplett for MVDer og FDer INF3100-26.1.2012 Ellen Munthe-Kaas 11
Bevis for slutningsregel 7 Hvis X Y, så X Y Bevis: Anta at t 1 [X] = t 2 [X] Siden X Y, er t 1 [Y] = t 2 [Y] Velg u 1 = t 2 og u 2 = t 1 Da er u 1 lik t 1 på X og Y og lik t 2 utenfor Y, mens u 2 er lik t 2 på X og Y og lik t 1 utenfor Y Men da har vi pr. def. en MVD X Y INF3100-26.1.2012 Ellen Munthe-Kaas 12
Bevis for slutningsregel 8 Hvis X Y, W Z, W Y= og Z Y, så X Z Bevis: Anta at t 1 [X] = t 2 [X] Siden X Y, finnes u 1 og u 2 der u 1 er lik t 1 på X og Y og lik t 2 utenfor Y, og u 2 er lik t 2 på X og Y og lik t 1 utenfor Y Spesielt er t 1 [W] = u 2 [W], og siden W Z, er t 1 [Z] = u 2 [Z] = t 2 [Z] (den siste fordi Z Y) Altså har vi en FD X Z INF3100-26.1.2012 Ellen Munthe-Kaas 13
Høyere normalformer, oversikt 1NF BCNF 4NF ETNF RFNF = KCNF SKNF 5NF = PJNF INF3100-26.1.2012 Ellen Munthe-Kaas 14
Utgangspunkt for normalformen 4NF Alle integritetsregler er i form av FDer og MVDer (i tillegg kan det være domeneskranker og fremmednøkler) INF3100-26.1.2012 Ellen Munthe-Kaas 15
Fjerde normalform Definisjon 4NF (Fagin 1977): En relasjon R er på fjerde normalform hvis alle ikketrivielle MVDer X Y tilfredsstiller følgende: i. X er en supernøkkel i R INF3100-26.1.2012 Ellen Munthe-Kaas 16
Egenskaper ved 4NF Når R er på 4NF, er det ingen ekte MVDer 4NF BCNF For å bevise det må vi vise at hvis R er 4NF og X Y er en ikketriviell FD i R, så er X en supernøkkel (beviset følger på neste lysark) Når er en relasjon BCNF, men ikke 4NF? Svar: Når alle ikketrivielle FDer X Y er slik at X er en supernøkkel, samtidig som det finnes en ekte MVD Z W. (Så MVDen Z W medfører at det er en begrensning på mengden av lovlige instanser utover det FDene angir.) INF3100-26.1.2012 Ellen Munthe-Kaas 17
Bevis for at 4NF BCNF Anta at R er 4NF og at vi har en ikketriviell FD X Y i R Siden FDer er MVDer, har vi at X Y Hvis denne MVDen er ikketriviell, er X en supernøkkel (fordi R er 4NF) Hvis MVDen er triviell, er R = XY, så X er en supernøkkel da også Altså er R på BCNF INF3100-26.1.2012 Ellen Munthe-Kaas 18
Normalformene EKNF-BCNF-4NF alle integritetsregler er i form av FDer 1NF EKNF BCNF alle integritetsregler er i form av FDer og ekte MVDer 4NF
Emne Eksempel på brudd på 4NF kode lærebok foreleser Java Java Samfunn Samfunn SE SE SE Agile Agile Agile RR RR RR Arne Siri Arne Siri Dag Yngve Bente Dag Yngve Bente Dag Yngve Bente Emne har ingen ikke-trivielle FDer (så den er på BCNF) Emne har ekte MVDer kode lærebok og kode foreleser Emne kan dekomponeres slik: Lærebok kode Foreleser kode lærebok Java Samfunn SE Agile RR foreleser Arne Siri Dag Yngve Bente INF3100-26.1.2012 Ellen Munthe-Kaas 20
Tapsfri dekomposisjon til 4NF Gitt en relasjon R med et sett MVDer M. 0. Dekomponer først R tapsfritt til BCNF. 1. Hvis X Y er et brudd på 4NF: Dekomponer R i R 1 og R 2 der R 1 er lik XY og R 2 er lik X samt alle attributtene i R som ikke er i Y. 2. Fortsett på samme måte med R 1 og R 2 inntil alle relasjonene i dekomposisjonen tilfredsstiller 4NF. INF3100-26.1.2012 Ellen Munthe-Kaas 21
Chasealgoritmen utvidet for MVDer Gitt en dekomposisjon av R(A,B,...) til relasjonsskjemaene S 1,..., S k og et sett F med FDer og et sett M med MVDer for R. Er dekomposisjonen tapsfri? 1. Lag en tabell med en kolonne for hvert attributt i R og en rad for hver S i 2. I kolonnen for attributt A, for hver rad i: Skriv a hvis A er et attributt i S i Skriv a i hvis A ikke er et attributt i S i 3. Så lenge det skjer forandringer i tabellen og det ikke finnes en rad uten subskriptverdier: For hver FD X Y, for alle rader i tabellen med lik X-verdi, gjør Y- verdiene like. Hvis en av Y-ene er en verdi uten subskript, skal denne velges For hver MVD X Y for R, for alle par av rader med lik X-verdi, lag to nye rader der Y-verdiene er byttet om. Hvis en rad er uten subskriptverdier, er dekomposisjonen tapsfri, ellers ikke. INF3100-26.1.2012 Ellen Munthe-Kaas 22
Annen bruk av chasealgoritmen For å vise en FD X Y, start tabellen med to rader som er like for attributtene i X, og ulike for de resterende attributtene. Målet er at de to radene skal bli like også for attributtene i Y. For å vise en MVD X Y, start tabellen med to rader der den ene raden har verdier uten subskript for attributtene i X og Y, mens den andre raden har verdier uten subskript for attributtene i X og Z, der Z er resten av attributtene i tabellen. Målet er å komme frem til en instans der en av disse radene er uten subskriptverdier. INF3100-26.1.2012 Ellen Munthe-Kaas 23
Annen bruk av chasealgoritmen: Eksempel Gitt R(A,B,C,D) med A B og B C. Vis A C. (Instans av slutningsregel 6 transitivitet.) Start chase med tabellen A B C D a b 1 c d 1 a b c 2 d INF3100-26.1.2012 Ellen Munthe-Kaas 24
Ekstramateriale: ORM og MVDer (kursorisk pensum) INF3100-26.1.2012 Ellen Munthe-Kaas 25
Orm og MVDer Emne (kode) har pensum/er pensum i foreleses av/foreleser i Lærebok (ISBN) Foreleser (navn) Dette ORM-diagrammet ivaretar integritetsreglene i emneeksempelet Hvis vi (feilaktig) grupperer faktatypene i én tabell, får vi Emne(kode, lærebok, foreleser) Hvis denne tabellen skal ha samme egenskaper som det ORMdiagrammet uttrykker, er det ikke nok å si at (kode, lærebok, foreleser) er primærnøkkel, da får vi ikke utelukket instanser som den til høyre Emne kode lærebok foreleser Java Samfunn SE Agile RR Arne Siri Dag Yngve Bente INF3100-26.1.2012 Ellen Munthe-Kaas 26
Orm og MVDer (forts.) Emne (kode) har pensum/er pensum i foreleses av/foreleser i Lærebok (ISBN) Foreleser (navn) emne(kode, lærebok, foreleser) kode, lærebok, foreleser Ø (fra primærnøkkelen) kode lærebok (og kode foreleser, men dette følger automatisk fra MVDen kode lærebok) INF3100-26.1.2012 Ellen Munthe-Kaas 27
ORM og høyere normalformer Gruppering av korrekte ORM-diagrammer gir som regel 4NF. I fravær av ekvivalente stier gir gruppering av korrekte ORM-diagrammer alltid 4NF. INF3100-26.1.2012 Ellen Munthe-Kaas 28
ORM og 4NF Hvis de to faktatypene med lange piler feilaktig grupperes til samme relasjon, vil 4NF bli brutt INF3100-26.1.2012 Ellen Munthe-Kaas 29