datenbanken unit 6: normalisierunginstitute.unileoben.ac.at/infotech/lehre/db/ss2019/unit6.pdf ·...
TRANSCRIPT
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
DatenbankenUnit 6: Normalisierung
Ronald Ortner
1. IV. 2019
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Outline
1 Organisatorisches
2 Zur Erinnerung: Funktionale Abhängigkeit
3 Datenbank-NormalisierungZerlegung von Relationen
4 NormalisierungErste NormalformZweite NormalformDritte NormalformBoyce-Codd Normal FormVierte Normalform
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Outline
1 Organisatorisches
2 Zur Erinnerung: Funktionale Abhängigkeit
3 Datenbank-NormalisierungZerlegung von Relationen
4 NormalisierungErste NormalformZweite NormalformDritte NormalformBoyce-Codd Normal FormVierte Normalform
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Organisatorisches
Diese Woche Wissensüberprüfung(Stoff: Joins)
D.i. letzte Wissensüberprüfung vor Ostern
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Outline
1 Organisatorisches
2 Zur Erinnerung: Funktionale Abhängigkeit
3 Datenbank-NormalisierungZerlegung von Relationen
4 NormalisierungErste NormalformZweite NormalformDritte NormalformBoyce-Codd Normal FormVierte Normalform
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Funktionale Abhängigkeit
Definition (funktionale Abhängigkeit)
Gegeben sei ein abstraktes relationales Datenbankschema R,sowie (Mengen von) Attribute(n) α, β in R.Wir sagen, dass β funktional abhängig (FD) von α ist, wenn für alleRealisierungen R of R:Immer wenn zwei Tupel (Zeilen) dieselben Werte für α haben, sohaben sie auch gleiche Werte für β.
Notation: α→ β
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Funktionale Abhängigkeit
Beispiel:
A B C
a1 b2 c1a2 b1 c6a3 b3 c4a1 b2 c5a2 b1 c3a4 b2 c7
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Outline
1 Organisatorisches
2 Zur Erinnerung: Funktionale Abhängigkeit
3 Datenbank-NormalisierungZerlegung von Relationen
4 NormalisierungErste NormalformZweite NormalformDritte NormalformBoyce-Codd Normal FormVierte Normalform
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Datenbankdesign bisher:
zeichne Entitäten, Relationen, und Attribute in ein ER-Diagrammleite aus dem ER-Diagramm ein Datenbankschema ab
Nun beschäftigen wir uns mit einem verfeinerten Zugang(’Normalisierung’).
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Zerlegung von Relationen
Idee der Normalisierung:Zerlege Relation R in kleinere Relationen R1, . . .Rn.
Dabei soll die Zerlegung gewisse Eigenschaften erfüllen:Verlustlosigkeit:R kann aus R1, . . .Rn rekonstruiert werden.Erhaltung von FDs:Die funktionalen Abhängigkeiten von R bleiben in R1, . . .Rnerhalten.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Verlustlosigkeit
Betrachten Zerlegung von R in zwei Relationen R1,R2.Um Verlustlosigkeit zu haben, benötigen wir zumindest R = R1 ∪R2.
Darüber hinaus möchten wir:
Definition (Verlustlosigkeit)
Eine Zerlegung von R in R1,R2 ist verlustlos, wenn für RealisierungenR von R (und für entsprechende Zerlegungen R1,R2) gilt:R ist der natürliche Join von R1 und R2, d.h. R = R1 on R2.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Verlustlosigkeit: Beispiel
Betrachten die folgende Relation/Tabelle:
Gast Gasthof Bier
R.Ortner Gösserbräu Gösser
F.Huber Zur Post Gösser
R.Ortner Zur Post Murauer
Betrachten folgende Zerlegung:Besucher: {[Gast, Gasthof]}Getränke: {[Gast, Bier]}
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Verlustlosigkeit: Beispiel
Betrachten die folgende Relation/Tabelle:
Gast Gasthof Bier
R.Ortner Gösserbräu Gösser
F.Huber Zur Post Gösser
R.Ortner Zur Post Murauer
Betrachten folgende Zerlegung:Besucher: {[Gast, Gasthof]}Getränke: {[Gast, Bier]}
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Verlustlosigkeit: Beispiel
Betrachten die folgende Relation/Tabelle:
Gast Gasthof Bier
R.Ortner Gösserbräu Gösser
F.Huber Zur Post Gösser
R.Ortner Zur Post Murauer
Besucher:
Gast Gasthof
R.Ortner Gösserbräu
F.Huber Zur Post
R.Ortner Zur Post
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Verlustlosigkeit: Beispiel
Betrachten die folgende Relation/Tabelle:
Gast Gasthof Bier
R.Ortner Gösserbräu Gösser
F.Huber Zur Post Gösser
R.Ortner Zur Post Murauer
Getränke:
Gast Bier
R.Ortner Gösser
F.Huber Gösser
R.Ortner Murauer
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Verlustlosigkeit: Beispiel
Der Join der beiden Relationen Besucher und Getränke enthält zweizusätzliche (falsche) Einträge:
Gast Gasthof Bier
R.Ortner Gösserbräu Gösser
R.Ortner Gösserbräu Murauer
F.Huber Zur Post Gösser
R.Ortner Zur Post Murauer
R.Ortner Zur Post Gösser
Diese Zerlegung ist nicht verlustlos.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Verlustlosigkeit: Beispiel
Der Join der beiden Relationen Besucher und Getränke enthält zweizusätzliche (falsche) Einträge:
Gast Gasthof Bier
R.Ortner Gösserbräu Gösser
R.Ortner Gösserbräu Murauer
F.Huber Zur Post Gösser
R.Ortner Zur Post Murauer
R.Ortner Zur Post Gösser
Diese Zerlegung ist nicht verlustlos.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Ein Kriterium für Verlustlosigkeit
Man kann ein Kriterium für Verlustlosigkeit über funktionaleAbhängigkeiten(FDs) angeben:
Kriterium für VerlustlosigkeitEine Zerlegung von R mit FDs F in R1,R2 ist verlustlos, wennzumindest eine der beiden folgenden Bedingungen gilt:
(R1 ∩R2)→ R1 ist in F+,(R1 ∩R2)→ R2 ist in F+.
In unserem Beispiel gibt es nur die FD {Gast,Gasthof}→{Bier}, aber esgelten weder {Gast}→{Gasthof} noch {Gast}→{Bier}.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Verlustlosigkeit: Weiteres Beispiel
Betrachten folgende Relation:
Vater Mutter Kind...
......
Die Zerlegung in RelationenVäter: {[Vater, Kind]}Mütter: {[Mutter, Kind]}
ist verlustlos, da beide FDs {Kind}→{Vater} und {Kind}→{Mutter}gelten.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Erhaltung von Abhängigkeiten
Gegeben: Relation R mit FDs F und Zerlegung in R1, . . . ,Rn.
Im Prinzip können FDs auch dann überprüft werden, wenn diese durchdie Zerlegung ’auseinandergerissen’ werden:
Bilde Join der Realisierungen R1, . . .Rn.Überprüfe FDs.
Besser ist allerdings:FDs können in den Relationen R1, . . . ,Rn überprüft werden.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Abhängigkeitserhaltung
D.h., wir hätten gerne:
Definition (Abhängigkeitserhaltung)
Gegeben sei eine Relation R mit FDs F und eine Zerlegung von R inR1, . . . ,Rn, wobei jedes Ri die FDs Fi hat. Diese Zerlegung istabhängigkeitserhaltend , wenn
F ≡ (F1 ∪ . . . ∪ Fn).
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Abhängigkeitserhaltung: Beispiel
Stadt Bundesland Strasse PLZ
Bruck Stmk Mittergasse 8600
Leoben Stmk Franz Josef Straße 8700
Bruck NÖ Hauptstraße 2460
Wir nehmen an:Es gibt keine zwei Städte mit gleichem Namen im gleichenBundesland.Die PLZ ändert sich nicht innerhalb derselben Straße.Verschiedene Städte haben unterschiedliche PLZ.Städte gehören eindeutig zu einem Bundesland.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Abhängigkeitserhaltung: Beispiel
Stadt Bundesland Straße PLZ
Bruck Stmk Mittergasse 8600
Leoben Stmk Franz Josef Straße 8700
Bruck NÖ Hauptstraße 2460
Betrachten folgende Zerlegung:Städte: {[PLZ, Stadt, Bundesland]}Streets: {[PLZ, Straße]}
Diese Zerlegung ist verlustlos, da FD {PLZ}→{Stadt, Bundesland} gilt.
Allerdings, kann die FD {Stadt,Bundesland,Straße}→{PLZ} keiner derneuen Relationen zugeordnet werden. Diese Zerlegung ist nicht abhängigkeitserhaltend.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Normalisierung: Ausblick
Wir kennen inzwischen:funktionale Abhängigkeiten (FDs)Eigenschaften guter Zerlegungen(Verlustlosigkeit, Abhängigkeitserhaltung)
Wir hätten gerne:guten Weg, um eine gegebene Relation R in kleinere Relationenzu zerlegen
Wir machen dies über:Schritt-für-Schritt NormalisierungMit jedem Schritt erreichen wir eine höhere Normalisierungs-stufe (1 bis 4).
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Normalisierung: Ausblick
Wir kennen inzwischen:funktionale Abhängigkeiten (FDs)Eigenschaften guter Zerlegungen(Verlustlosigkeit, Abhängigkeitserhaltung)
Wir hätten gerne:guten Weg, um eine gegebene Relation R in kleinere Relationenzu zerlegen
Wir machen dies über:Schritt-für-Schritt NormalisierungMit jedem Schritt erreichen wir eine höhere Normalisierungs-stufe (1 bis 4).
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Normalisierung: Ausblick
Wir kennen inzwischen:funktionale Abhängigkeiten (FDs)Eigenschaften guter Zerlegungen(Verlustlosigkeit, Abhängigkeitserhaltung)
Wir hätten gerne:guten Weg, um eine gegebene Relation R in kleinere Relationenzu zerlegen
Wir machen dies über:Schritt-für-Schritt NormalisierungMit jedem Schritt erreichen wir eine höhere Normalisierungs-stufe (1 bis 4).
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Normalisierung: Ausblick
Wir hätten gerne:guten Weg, um eine gegebene Relation R in kleinere Relationenzu zerlegen
Wir machen dies über:Schritt-für-Schritt NormalisierungMit jedem Schritt erreichen wir eine höhere Normalisierungsstufe(1 bis 4).
Normalisierung erreicht:verlustlose Zerlegungmanchmal auch abhängigkeitserhaltende ZerlegungIn den entstehenden Relationen gibt es nur mehr interessanteFDs zwischen Schlüssel- und Nichtschlüsselattributen.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zerlegung von Relationen
Normalisierung
Alternatives Material zu Normalisierung:
Kapitel 2 vonAndreas Meier: “Relationale und postrelationale Datenbanken”,Springer (innerhalb der MUL frei als pdf zum Download)
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Outline
1 Organisatorisches
2 Zur Erinnerung: Funktionale Abhängigkeit
3 Datenbank-NormalisierungZerlegung von Relationen
4 NormalisierungErste NormalformZweite NormalformDritte NormalformBoyce-Codd Normal FormVierte Normalform
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Erste Normalform
Erste Normalform
Definition (1NF)Eine Relation ist in 1NF, wenn alle Attribute atomar sind.
Diese Voraussetzung haben wir bereits gemacht.
Beispiel einer Tabelle/Relation, die nicht in 1NF:
Vater Mutter Kinder
Karl Maria {Fritz, Franziska}
Ronald Elisabeth {Hannes, Kathrin}
Andreas Marianne {Sophia}
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Erste Normalform
Erste Normalform – Beispiel
Beispiel einer Tabelle/Relation, die nicht in 1NF:
Vater Mutter Kinder
Karl Maria {Fritz, Franziska}
Ronald Elisabeth {Hannes, Kathrin}
Andreas Marianne {Sophia}
→ kann leicht in 1NF konvertiert werden:
Vater Mutter Kind
Karl Maria Fritz
Karl Maria Franziska
Ronald Elisabeth Hannes
Ronald Elisabeth Kathrin
Andreas Marianne Sophia
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform
Definition (2NF)Eine Relation ist in 2NF, wenn sie in 1NF ist und jedesNichtschlüsselattribut voll funktional abhängig von jedemKandidatenschlüssel ist.
(Zur Erinnerung:β ist voll funktional abhängig von α, wenn α→ β mit α minimal.)
Intuition: Jedes Attribut im Schlüssel ist wichtig.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
Betrachten folgende Tabelle mit Studenteninformationen:(Annahme: nur ein Studium pro Student)
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Wie sieht Schlüssel in dieser Tabelle aus?D.h. welche Werte müssen festgelegt werden, um eine Zeile eindeutigzu identifizieren?
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
Betrachten folgende Tabelle mit Studenteninformationen:(Annahme: nur ein Studium pro Student)
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Wie sieht Schlüssel in dieser Tabelle aus?D.h. welche Werte müssen festgelegt werden, um eine Zeile eindeutigzu identifizieren?Legt man Matrikelnummer, Lehrveranstaltungsnummer sowie Datumfest, kann es zu den gegebenen Werten nur eine Zeile in der Tabellegeben. {MNr,LvaNr,Datum} bildet (Super-)Schlüssel der Tabelle.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen es voll funktional abhängt:
Vname:
MNr
Nname:
MNr
Stkz:
MNr
Studium:
MNr
Lva:
LvaNr
Note:
MNr, LvaNr, Datum
Diese Tabelle ist nicht in 2NF!
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen es voll funktional abhängt:
Vname: MNr
Nname:
MNr
Stkz:
MNr
Studium:
MNr
Lva:
LvaNr
Note:
MNr, LvaNr, Datum
Diese Tabelle ist nicht in 2NF!
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen es voll funktional abhängt:
Vname: MNr
Nname: MNr
Stkz:
MNr
Studium:
MNr
Lva:
LvaNr
Note:
MNr, LvaNr, Datum
Diese Tabelle ist nicht in 2NF!
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen es voll funktional abhängt:
Vname: MNr
Nname: MNr
Stkz: MNr
Studium:
MNr
Lva:
LvaNr
Note:
MNr, LvaNr, Datum
Diese Tabelle ist nicht in 2NF!
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen es voll funktional abhängt:
Vname: MNr
Nname: MNr
Stkz: MNr
Studium: MNr
Lva:
LvaNr
Note:
MNr, LvaNr, Datum
Diese Tabelle ist nicht in 2NF!
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen es voll funktional abhängt:
Vname: MNr
Nname: MNr
Stkz: MNr
Studium: MNr
Lva: LvaNr
Note:
MNr, LvaNr, Datum
Diese Tabelle ist nicht in 2NF!
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen es voll funktional abhängt:
Vname: MNr
Nname: MNr
Stkz: MNr
Studium: MNr
Lva: LvaNr
Note: MNr, LvaNr, Datum
Diese Tabelle ist nicht in 2NF!
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, vondenen es voll funktional abhängt:
Vname: MNr
Nname: MNr
Stkz: MNr
Studium: MNr
Lva: LvaNr
Note: MNr, LvaNr, Datum
Diese Tabelle ist nicht in 2NF!Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Zweite Normalform
Zweite Normalform – Beispiel
bekommen 2NF, indem Attribute, die von derselben Menge vonSchlüsselattributen abhängen, in einer Tabelle zusammengefasstwerden:
MNr Vname Nname Stkz Studium
LvaNr Lva MNr LvaNr Datum Note
Achtung: Falls es kein Nichtschlüsselattribut gibt, das vom gesamtenSchlüssel abhängt, gibt es eine zusätzliche Tabelle, die nur dieSchlüsselwerte enthält!
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Dritte Normalform
Dritte Normalform
Definition (3NF)Eine Relation ist in 3NF, wenn sie in 1NF ist und für jede FD α→ βmindestens eine der folgenden Bedingungen gilt:
1 β ⊆ α, d.h. die FD α→ β ist trivial,2 β ist in einem Kandidatenschlüssel enthalten,3 α ist ein Superschlüssel.
Insbesondere ist eine Relation nicht in 3NF, wenn es FDs zwischenAttributen gibt, die nicht Teil eines (Kandidaten-/Super-)Schlüsselssind.
Intuition: wollen keine FDs zwischen Nichtschlüsselattributen
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Dritte Normalform
Dritte Normalform – Beispiel
Beispiel.
MNr Vname Nname Stkz Studium
LvaNr Lva MNr LvaNr Datum Note
Die FD Stkz→ Studium erfüllt keine der Bedingungen zur 3NF.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Dritte Normalform
Dritte Normalform – Beispiel
Beispiel.
MNr Vname Nname Stkz Studium
LvaNr Lva MNr LvaNr Datum Note
Die FD Stkz→ Studium erfüllt keine der Bedingungen zur 3NF.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Dritte Normalform
Dritte Normalform – Beispiel
Beispiel.Zerlegung, die 3NF erfüllt:
MNr Vname Nname Stkz Stkz Studium
LvaNr Lva MNr LvaNr Datum Note
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Dritte Normalform
Synthesealgorithmus für 3NF
Gegeben: Relation R, Menge F von FDsWir wollen: verlustlose und abhängigkeitserhaltende ZerlegungR1, . . . ,Rn, sodass jedes Ri in 3NF ist
Algorithmus:1 Bestimme kanonische Überdeckung Fc von F (siehe Unit 5).2 Lege für jede FD α→ β in Fc eine Relation Rα := α ∪ β an
(und bestimme entsprechende Menge von FDs Fα).3 Wenn eine der Relationen Rα einen Kandidatenschlüssel von R
enthält, sind wir fertig.Ansonsten lege weitere Relation Rκ für einenKandidatenschlüssel κ von R an (mit Fκ = ∅).
4 Lösche Relationen Rα′ , die in anderen Relationen Rα enthaltensind, d.h. Rα′ ⊆ Rα.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Dritte Normalform
Synthesealgorithmus – Beispiel
Betrachten folgende Tabelle mit Studenteninformationen:(Annahme: nur ein Studium pro Student)
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Funktionale Abhängigkeiten:MNr→ Vname, Nname, Stkz, StudiumStkz→ Studium
LvaNr→ Lva
MNr, LvaNr, Datum→ Note
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Dritte Normalform
Synthesealgorithmus – Beispiel
Betrachten folgende Tabelle mit Studenteninformationen:(Annahme: nur ein Studium pro Student)
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Kanonische funktionale Abhängigkeiten:MNr→ Vname, Nname, StkzStkz→ Studium
LvaNr→ Lva
MNr, LvaNr, Datum→ Note
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Dritte Normalform
Synthesealgorithmus – Beispiel
Betrachten folgende Tabelle mit Studenteninformationen:(Annahme: nur ein Studium pro Student)
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Tabellen:MNr, Vname, Nname, StkzStkz, StudiumLvaNr, LvaMNr, LvaNr, Datum, Note
Die letzte Tabelle enthält Kandidatenschlüssel der ursprünglichenTabelle, also sind wir fertig.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Dritte Normalform
Synthesealgorithmus – Beispiel
Betrachten folgende Tabelle mit Studenteninformationen:(Annahme: nur ein Studium pro Student)
Vname Nname MNr Stkz Studium LvaNr Lva Datum Note
Tabellen:MNr, Vname, Nname, StkzStkz, StudiumLvaNr, LvaMNr, LvaNr, Datum, Note
Die letzte Tabelle enthält Kandidatenschlüssel der ursprünglichenTabelle, also sind wir fertig.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Boyce-Codd Normal Form
Boyce-Codd Normalform
Definition (BCNF)Eine Relation ist in BCNF, wenn sie in 1NF ist und für jede FD α→ βmindestens eine der folgenden eine der folgenden Bedingungen gilt:
1 β ⊆ α, d.h. die FD α→ β ist trivial,2 α ist ein Superschlüssel.
Unterschied zu 3NF:β darf nicht mehr Teil eines Kandidatenschlüssels sein.
Intuition: Wie für 3NF wollen wir für BCNF keine FDs zwischenNichtschlüsselattributen haben (inkl. Attribute, die Teil einesKandidatenschlüssels sind, aber nicht als Primärschlüssel verwendetwerden).
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Boyce-Codd Normal Form
Boyce-Codd Normalform – Beispiel
Beispiel.
MNr LvaNr Semester Semesterabk Datum Note
WS 2015/16 W15
Die Relation zwischen Semester und Semesterabk ist 1:1,sodass { MNr, LvaNr, Semester, Datum } einKandidatenschlüssel ist.Wir haben FDs:
{Semester}→{Semesterabk} und{Semesterabk}→{Semester}
Weder Semster noch Semesterabk ist Superschlüssel, nochsind die FDs trivial. Tabelle ist nicht in BCNF
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Boyce-Codd Normal Form
Boyce-Codd Normalform – Beispiel
Lösung: neue Tabelle für Semester
MNr LvaNr Semesterabk Datum Note
Semesterabk Semester
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Boyce-Codd Normal Form
Dekompositionsalgorithmus für BCNF
Gegeben: Relation R, Menge F von FDsWir wollen: Zerlegung R1, . . . ,Rn in BCNF
Dekompositionsalgorithmus:Initialisiere Z := {R};while (es gibt Ri in Z , das nicht in BCNF) do
1 Finde FD α→ β in Ri mit α ∩ β = ∅ und α 6→ Ri .2 Zerlege Ri in Ri1 := α ∪ β und Ri2 := Ri − β.3 Ersetze Ri in Z durch Ri1 und Ri2, d.h.
Z := (Z − {Ri}) ∪ {Ri1,Ri2}.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Boyce-Codd Normal Form
3NF vs. BCNF
Der Synthesealgorithmus garantiert Zerlegung, dieverlustlos,abhängigkeitserhaltend undin 3NF ist.
Der Dekompositionsalgorithmus garantiert Zerlegung, dieverlustlos undin BCNF ist.
Unglücklicherweise gilt:In einigen Fällen ist eine BCNF Zerlegung nichtabhängigkeitserhaltend. In diesen Fällen gibt man sich mit 3NF zufrieden.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Boyce-Codd Normal Form
3NF vs. BCNF
Der Synthesealgorithmus garantiert Zerlegung, dieverlustlos,abhängigkeitserhaltend undin 3NF ist.
Der Dekompositionsalgorithmus garantiert Zerlegung, dieverlustlos undin BCNF ist.
Unglücklicherweise gilt:In einigen Fällen ist eine BCNF Zerlegung nichtabhängigkeitserhaltend. In diesen Fällen gibt man sich mit 3NF zufrieden.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
Vierte Normalform und mehrwertige Abhängigkeiten
Beispiel:möchten gerne Sprach- und Sportkurse für Studierende in Tabellespeichern:
MNr Sprachkurs Sportkurs
1335335 Italienisch Schifahren
1335335 Spanisch Fechten
1335335 NULL Fußball
Es ist offensichtlich keine gute Idee, zwei (oder mehr) voneinanderunabhängige N : M Relationen in einer Tabelle zu speichern.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
Vierte Normalform – Beispiel
Beispiel.Offenbar ist es besser, die beiden Relationen zu trennen:
MNr Sprachkurs
1335335 Italienisch
1335335 Spanisch
MNr Sportkurs
1335335 Schifahren
1335335 Fechten
1335335 Fußball
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
Vierte Normalform – Beispiel
Ein Join der beiden Relationen gibt für jeden Studenten alleKombinationen von Sport- und Sprachkursen.
MNr Sprachkurs Sportkurs
1335335 Italienisch Schifahren
1335335 Italienisch Fechten
1335335 Italienisch Fußball
1335335 Spanisch Schifahren
1335335 Spanisch Fechten
1335335 Spanisch Fußball
Aufgrund der Verlustlosigkeitsbedingung müssen wir verlangen,dass beim Speichern von mehreren N : M Relationen in einer Tabellejeweils alle Kombinationen von Werten abgelegt werden.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
Vierte Normalform – Beispiel
Ein Join der beiden Relationen gibt für jeden Studenten alleKombinationen von Sport- und Sprachkursen.
MNr Sprachkurs Sportkurs
1335335 Italienisch Schifahren
1335335 Italienisch Fechten
1335335 Italienisch Fußball
1335335 Spanisch Schifahren
1335335 Spanisch Fechten
1335335 Spanisch Fußball
Aufgrund der Verlustlosigkeitsbedingung müssen wir verlangen,dass beim Speichern von mehreren N : M Relationen in einer Tabellejeweils alle Kombinationen von Werten abgelegt werden.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
Mehrwertige Abhängigkeiten
Die Abhängigkeiten{MNr}→→ {Sprachkurs} und{MNr}→→ {Sportkurs}
sind sogenannte mehrwertige Abhängigkeiten (MVDs).
Idee: Bei FD α→ β bestimmt gegebener Wert für α eindeutig einenWert für β. Bei MVD α→→ β bestimmt gegebener Wert für α eindeutigeine Menge von Werten für β.
Definition (MVD)β ist mehrwertig abhängig von α (Notation: α→→ β), wenn es für alleTupel mit identischen α-Werten mehrere Tupel mit vertauschtenβ-Werten gibt.
(MVDs sind eine Verallgemeinerung von FDs.)Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
Mehrwertige Abhängigkeiten
Definition (MVD)β ist mehrwertig abhängig von α (Notation: α→→ β), wenn es für alleTupel mit identischen α-Werten mehrere Tupel mit vertauschtenβ-Werten gibt.
Im Beispiel:Wenn es Zeilen
1335335, Italienisch, Fechten und1335335, Spanisch, Fußball
gibt, dann auch Zeilen1335335, Spanisch, Fechten und1335335, Italienisch, Fußball.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
Vierte Normalform
Idee: Keine Tabelle enthält mehr als eine mehrwertige Relation.
Definition (4NF)Eine Relation R ist in 4NF, wenn sie in 1NF ist und für jede MVDα→→ β mindestens eine der folgenden Bedingungen gilt:
1 die MVD α→→ β ist trivial, d.h. entweder β ⊆ α oder β = R− α,2 α ist ein Superschlüssel von R.
Anmerkung: Jede Relation in 4NF ist auch in BCNF.
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
Vierte Normalform – Beispiel
MNr Sprachkurs Sportkurs
1335335 Italienisch Schifahren
1335335 Italienisch Fechten
1335335 Italienisch Fußball
1335335 Spanisch Schifahren
1335335 Spanisch Fechten
1335335 Spanisch Fußball
MVDs: {MNr}→→ {Sprachkurs} und{MNr}→→ {Sportkurs}
Tabelle nicht in 4NF
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
Vierte Normalform – Beispiel
Beispiel.
MNr Sprachkurs
1335335 Italienisch
1335335 Spanisch
MNr Sportkurs
1335335 Schifahren
1335335 Fechten
1335335 Fußball
ist in 4NF, weil MVDs {MNr}→→ {Sprachkurs} und{MNr}→→ {Sportkurs} in den beiden Tabellen R1 und R2 trivial:{Sprachkurs} = R1 − {MNr} und{Sportkurs} = R2 − {MNr}
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
4NF: Beispiel
Achtung!Folgende Tabelle ist in 4NF.
Gast Gasthof Bier
R.Ortner Gösserbräu Gösser
F.Huber Zur Post Gösser
R.Ortner Zur Post Murauer
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
Verallgemeinerter Dekompositionsalgorithmus für 4NF
Gegeben: Relation R, Menge F von MVDsWir wollen: Zerlegung R1, . . . ,Rn in 4NF
Verallgemeinerter Dekompositionsalgorithmus:Initialisiere Z := {R};while (es gibt Ri in Z , das nicht in 4NF) do
1 Finde MVD α→→ β in Ri mit α ∩ β = ∅ und α 6→ Ri .2 Zerlege Ri in Ri1 := α ∪ β und Ri2 := Ri − β.3 Ersetze Ri in Z durch Ri1 und Ri2, d.h.
Z := (Z − {Ri}) ∪ {Ri1,Ri2}.
(Nachdem jede Relation in 4NF auch in BCNF ist, gibt es Fälle, woeine 4NF Zerlegung nicht abhängigkeitserhaltend ist.)
Ronald Ortner
Organisatorisches Zur Erinnerung: Funktionale Abhängigkeit Datenbank-Normalisierung Normalisierung
Vierte Normalform
SQL: Korrelierte Subqueries
Heute:
Korrelierte Subqueries
Ronald Ortner