Hoofdstuk 12: Oefeningen Databanken Hoofdstuk 12: Oefeningen Abstracte normalisatie
1NF 2NF alle attribuutwaarden zijn scalair definities 1NF alle attribuutwaarden zijn scalair deze voorwaarde is automatisch vervuld voor relaties wegens de eigenschappen van een relatie 2NF elk niet-sleutelattribuut is irreduciebel functioneel afhankelijk van een kandidaatsleutel deze voorwaarde is automatisch vervuld wanneer er geen samengestelde kandidaatsleutels zijn
definities 3NF 2NF geen enkel niet-sleutelattribuut is transititief afhankelijk van een kandidaatsleutel, tenzij via een andere kandidaatsleutel EN in geval van 1 kandidaatsleutel zijn alle niet-sleutelattributen mutueel onafhankelijk
definities BCNF (informeel) 3NF de enig pijlen die voorkomen in het afhankelijkheidsdiagram zijn pijlen die vertrekken uit een kandidaatsleutel 3NF relatie met 1 kandidaatsleutel is automatisch ook BCNF
Abstracte normalisaties gegeven relatie afhankelijkheden meestal in de vorm van een afhankelijkheidsdiagram gevraagd normaliseer (tot vb. BCNF) al dan niet stapsgewijs verantwoording van de stappen
Opgave: normaliseer stapsgewijs tot BCNF Voorbeeld Opgave: normaliseer stapsgewijs tot BCNF Oplossing 1NF ? alles scalair: voldaan A B E D C F H G
2NF? kandidaatsleutel(s) partiële afhankelijkheden A B C F H D G E A B Voorbeeld 2NF? kandidaatsleutel(s) { A, B, C } { D, B, C } partiële afhankelijkheden DG { A, B } E A B C F H D G E A B E D C F H G 2NF 1NF elk niet-sleutelattribuut is irreduciebel functioneel afhankelijk van een kandidaatsleutel deze voorwaarde is automatisch vervuld wanneer er geen samengestelde kandidaatsleutels zijn DUS GEEN 2NF decompositie R1: { D, G } R2: { A, B, C, D, E, F, H }
2NF? kandidaatsleutels partiële afhankelijkheden decompositie R2 A B C Voorbeeld 2NF? kandidaatsleutels R1: { D } R2: { A, B, C } en { D, B, C } partiële afhankelijkheden { A, B } E DUS GEEN 2NF decompositie R2 R21: { A, B, E } R22: { A, B, C, D, F, H } A B C F H D G E A B C F H D G E
3NF? A B C F D G E H kandidaatsleutels transitieve afhankelijkheden Voorbeeld A B C F D G E H 3NF? kandidaatsleutels R1: { D } R21: { A, B } R22: { A, B, C } en { D, B, C } transitieve afhankelijkheden { A, B, C } F H DUS GEEN 3NF decompositie R22 R31: { F, H } R32: { A, B, C, D, F } A B C F H D G E
BCNF? A B C F D G E H kandidaatsleutels Voorbeeld A B C F D G E H BCNF? kandidaatsleutels R1: { D } R21: { A, B } R31: { A, B, C } en { D, B, C } R32: { F } alle pijlen uit kandidaatsleutels A D DUS GEEN BCNF decompositie R31 R41: { A, D } R42: { A, B, C, F } of: { D, B, C, F } A B C F D G E H
Alles BCNF, maar… 3NF A D G B E C F H A B C F D G E H A D en D G Voorbeeld A D G B E C F H A B C F D G E H Alles BCNF, maar… A D en D G join A D G CK = { A }, { D } 2NF: enkelvoudige sleutel 3NF 3NF 2NF geen enkel niet-sleutelattribuut is transititief afhankelijk van een kandidaatsleutel, tenzij via een andere kandidaatsleutel BCNF samennemen eigenlijk geen normalisatiestap
Oefeningen Opgave 1 A C D E G B F
Oefeningen Opgave 2 A H B D F G C E
Oefeningen Opgave 3 A D E B C F G H
Impliciete afhankelijkheden Opmerking Impliciete afhankelijkheden volgen uit andere Armstrong’s axioma’s in opgaves al dan niet getekend verifiëren nadien moeten voldaan blijven weglaten voordien minimale set FDs bepalen A B D C A B D C
Oefeningen Opgave 4 E A D G B C
Oefeningen Opgave 5 A D B E G H C F
Oefeningen Opgave 6 A B C D E F G