Datenbanken 6: Normalisierung 27 III 2017
Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form
SQL Nachbesprechung Zwischentest korrelierte Subqueries
Nachbesprechung Zwischentest unvollständiges GROUP BY Subquery statt WHERE Bedingungen in Subquery
Datenbankdesign bisher: zeichne Entitäten, Relationen, und Attribute in ein ER-Diagramm leite aus dem ER-Diagramm ein Datenbankschema ab Nun beschäftigen wir uns mit einem verfeinerten Zugang ( Normalisierung ) Die Grundlage dafür ist der Begriff der funktionalen Abhängigkeit
Funktionale Abhängigkeit Zur Erinnerung: Definition (funktionale Abhängigkeit) Gegeben sei ein abstraktes relationales Datenbankschema R sowie (Mengen von) Attribute(n) α, β in R Wir sagen, dass β funktional abhängig von α ist (α β), wenn für alle Realisierungen R of R: Immer wenn zwei Tupel (Zeilen) dieselben Werte für α haben, so haben sie auch gleiche Werte für β Idee: Legt man einen Wert für α fest, so ist auch der Wert für β festgelegt α β bedeutet, dass β durch α eindeutig bestimmt wird
Funktionale Abhängigkeit Zur Erinnerung: Definition (funktionale Abhängigkeit) Gegeben sei ein abstraktes relationales Datenbankschema R sowie (Mengen von) Attribute(n) α, β in R Wir sagen, dass β funktional abhängig von α ist (α β), wenn für alle Realisierungen R of R: Immer wenn zwei Tupel (Zeilen) dieselben Werte für α haben, so haben sie auch gleiche Werte für β Achtung: Für unsere Belange ist nur diese Art von Abhängigkeit relevant Andere Formen von Abhängigkeit (zb Korrelation) spielen keine Rolle und dürfen nicht mit funktionaler Abhängigkeit verwechselt werden!
Anomalien in schlecht designten Datenbankschemata Betrachten das folgende Datenbankschema zum Speichern von Studenteninformation: M_Nr Name Lva_Nr Lva Note 1335123 Franz Huber 150420 Datenbanken 2 1335123 Franz Huber 150111 IT I 4
Anomalien in schlecht designten Datenbankschemata Betrachten das folgende Datenbankschema zum Speichern von Studenteninformation: M_Nr Name Lva_Nr Lva Note 1335123 Franz Huber 150420 Datenbanken 2 1335123 Franz Huber 150111 IT I 4 Das ist ein schlecht designtes Datenbankschema, weil
Update-Anomalie Das ist ein schlecht designtes Datenbankschema, weil wenn Studenteninformation aktualisiert wird, müssen mehrere Zeilen geändert werden: M_Nr Name Lva_Nr Lva Note 1335123 Franz Huber 150420 Datenbanken 2 1335123 Franz Huber 150111 IT I 4
Update-Anomalie Das ist ein schlecht designtes Datenbankschema, weil wenn Studenteninformation aktualisiert wird, müssen mehrere Zeilen geändert werden: M_Nr Name Lva_Nr Lva Note 1335123 Adolf Huber 150420 Datenbanken 2 1335123 Adolf Huber 150111 IT I 4 fehleranfällig schlechtere Performance bei Aktualisierungen speichert redundante Information
Einfüge-Anomalie Das ist ein schlecht designtes Datenbankschema, weil wenn neue Studenteninformation eingefügt wird, ist keine entsprechende Lehrveranstaltungsinformation verfügbar: M_Nr Name Lva_Nr Lva Note 1335123 Franz Huber 150420 Datenbanken 2 1335123 Franz Huber 150111 IT I 4 1635001 Anna Schmied NULL NULL NULL
Lösch-Anomalie Das ist ein schlecht designtes Datenbankschema, weil wenn Informationen von Studenten gelöscht werden, gehen Informationen über Lehrveranstaltungen verloren und umgekehrt: M_Nr Name Lva_Nr Lva Note 1335123 Franz Huber 150420 Datenbanken 2 1335123 Franz Huber 150111 IT I 4
Lösch-Anomalie Das ist ein schlecht designtes Datenbankschema, weil wenn Informationen von Studenten gelöscht werden, gehen Informationen über Lehrveranstaltungen verloren und umgekehrt: M_Nr Name Lva_Nr Lva Note Das passiert auch, wenn zb Informationen von alten Prüfungen gelöscht werden
Zerlegung von Relationen Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form
Zerlegung von Relationen Zerlegung von Relationen Anomalien treten auf, wenn Informationen, die nicht zusammenpassen, in dieselbe Tabelle/Relation gesteckt werden Idee der Normalisierung: Zerlege Relation R in kleinere Relationen R 1, R n
Zerlegung von Relationen Zerlegung von Relationen Anomalien treten auf, wenn Informationen, die nicht zusammenpassen, in dieselbe Tabelle/Relation gesteckt werden Idee der Normalisierung: Zerlege Relation R in kleinere Relationen R 1, R n Dabei soll die Zerlegung gewisse Eigenschaften erfüllen: Verlustfreiheit: R kann aus R 1, R n rekonstruiert werden Erhaltung von FDs: Die funktionalen Abhängigkeiten von R bleiben in R 1, R n erhalten
Zerlegung von Relationen Verlustfreiheit Betrachten Zerlegung von R in zwei Relationen R 1, R 2 Um Verlustfreiheit zu haben, benötigen wir zumindest R = R 1 R 2 Darüber hinaus möchten wir: Definition (Verlustfreiheit) Die Zerlegung von R in R 1, R 2 ist verlustfrei, wenn für Realisierungen R von R (und für entsprechende Zerlegungen R 1, R 2 ): R ist der natürliche Join von R 1 und R 2, dh R = R 1 R 2
Zerlegung von Relationen Verlustfreiheit: Beispiel Betrachten die folgende Relation/Tabelle: Gast Gasthof Bier ROrtner Gösserbräu Gösser FHuber Zur Post Gösser ROrtner Zur Post Murauer
Zerlegung von Relationen Verlustfreiheit: Beispiel Betrachten die folgende Relation/Tabelle: Gast Gasthof Bier ROrtner Gösserbräu Gösser FHuber Zur Post Gösser ROrtner Zur Post Murauer Betrachten folgende Zerlegung: Besucher: {[Gast, Gasthof]} Getränke: {[Gast, Bier]}
Zerlegung von Relationen Verlustfreiheit: Beispiel Betrachten die folgende Relation/Tabelle: Gast Gasthof Bier ROrtner Gösserbräu Gösser FHuber Zur Post Gösser ROrtner Zur Post Murauer Besucher: Gast ROrtner FHuber ROrtner Gasthof Gösserbräu Zur Post Zur Post
Zerlegung von Relationen Verlustfreiheit: Beispiel Betrachten die folgende Relation/Tabelle: Gast Gasthof Bier ROrtner Gösserbräu Gösser FHuber Zur Post Gösser ROrtner Zur Post Murauer Getränke: Gast ROrtner FHuber ROrtner Bier Gösser Gösser Murauer
Zerlegung von Relationen Verlustfreiheit: Beispiel Der Join der beiden Relationen Besucher und Getränke enthält zwei zusätzliche (falsche) Einträge: Gast Gasthof Bier ROrtner Gösserbräu Gösser ROrtner Gösserbräu Murauer FHuber Zur Post Gösser ROrtner Zur Post Murauer ROrtner Zur Post Gösser
Zerlegung von Relationen Verlustfreiheit: Beispiel Der Join der beiden Relationen Besucher und Getränke enthält zwei zusätzliche (falsche) Einträge: Gast Gasthof Bier ROrtner Gösserbräu Gösser ROrtner Gösserbräu Murauer FHuber Zur Post Gösser ROrtner Zur Post Murauer ROrtner Zur Post Gösser Diese Zerlegung ist nicht verlustfrei
Zerlegung von Relationen Ein Kriterium für Verlustfreiheit Man kann ein Kriterium für Verlustfreiheit über funktionale Abhängigkeiten(FDs) angeben: Kriterium für Verlustfreiheit Eine Zerlegung von R mit FDs F in R 1, R 2 ist verlustlos, wenn zumindest eine der beiden folgenden Bedingungen gilt: (R 1 R 2 ) R 1 ist in F +, (R 1 R 2 ) R 2 ist in F + In unserem Beispiel gibt es nur die FD {Gast} {Gasthof,Bier}, aber es gelten weder {Gast} {Gasthof} noch {Gast} {Bier}
Zerlegung von Relationen Verlustfreiheit: Weiteres Beispiel Betrachten folgende Relation: Vater Mutter Kind Die Zerlegung in Relationen Väter: {[Vater, Kind]} Mütter: {[Mutter, Kind]} ist verlustlos, da beide FDs {Kind} {Vater} und {Kind} {Mutter} gelten
Zerlegung von Relationen Erhaltung von Abhängigkeiten Gegeben: Relation R mit FDs F und Zerlegung in R 1,, R n Im Prinzip können FDs auch dann überprüft werden, wenn diese durch die Zerlegung auseinandergerissen werden: Bilde Join der Realisierungen R 1, R n Überprüfe FDs Besser ist allerdings: FDs können in den Relationen R 1,, R n überprüft werden
Zerlegung von Relationen Abhängigkeitserhaltung Dh, wir hätten gerne: Definition (Abhängigkeitserhaltung) Gegeben sei eine Relation R mit FDs F und eine Zerlegung von R in R 1,, R n, wobei jedes R i die FDs F i hat Diese Zerlegung ist abhängigkeitserhaltend, wenn F (F 1 F n )
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 gleichen Bundesland Die PLZ ändert sich nicht innerhalb derselben Straße Verschiedene Städte haben unterschiedliche PLZ Städte gehören eindeutig zu einem Bundesland
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]} Straßen: {[PLZ, Straße]} Diese Zerlegung ist verlustlos, da FD {PLZ} {Stadt, Bundesland} gilt Allerdings, kann die FD {Stadt,Bundesland,Straße} {PLZ} keiner der neuen Relationen zugeordnet werden Diese Zerlegung ist nicht abhängigkeitserhaltend
Zerlegung von Relationen Normalisierung: Ausblick Wir kennen inzwischen: funktionale Abhängigkeiten (FDs) Eigenschaften guter Zerlegungen (Verlustlosigkeit, Abhängigkeitserhaltung)
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 Relationen zu zerlegen
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 Relationen zu zerlegen Wir machen dies über: Schritt-für-Schritt Normalisierung Mit jedem Schritt erreichen wir eine höhere Normalisierungsstufe (1 bis 4)
Zerlegung von Relationen Normalisierung: Ausblick Wir hätten gerne: guten Weg, um eine gegebene Relation R in kleinere Relationen zu zerlegen Wir machen dies über: Schritt-für-Schritt Normalisierung Mit jedem Schritt erreichen wir eine höhere Normalisierungsstufe (1 bis 4) Normalisierung erreicht: verlustlose Zerlegung manchmal auch abhängigkeitserhaltende Zerlegung In den entstehenden Relationen gibt es nur mehr interessante FDs zwischen Schlüssel- und Nichtschlüsselattributen
Zerlegung von Relationen Normalisierung Alternatives Material zu Normalisierung: Kapitel 2 von Andreas Meier: Relationale und postrelationale Datenbanken, Springer (innerhalb der MUL frei als pdf zum Download)
Erste Normalform Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form
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}
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
Zweite Normalform Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form
Zweite Normalform Zweite Normalform Definition (2NF) Eine Relation ist in 2NF, wenn sie in 1NF ist und jedes Nichtschlüsselattribut voll funktional abhängig von jedem Kandidatenschlüssel ist (Zur Erinnerung: β ist voll funktional abhängig von α, wenn α β mit α minimal) Intuition: Jedes Attribut im Schlüssel ist wichtig
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? Dh welche Werte müssen festgelegt werden, um eine Zeile eindeutig zu identifizieren?
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? Dh welche Werte müssen festgelegt werden, um eine Zeile eindeutig zu identifizieren? Legt man Matrikelnummer, Lehrveranstaltungsnummer sowie Datum fest, kann es zu den gegebenen Werten nur eine Zeile in der Tabelle geben {MNr,LvaNr,Datum} bildet (Super-)Schlüssel der Tabelle
Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: Nname: Stkz: Studium: Lva: Note:
Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: Stkz: Studium: Lva: Note:
Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: Studium: Lva: Note:
Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: MNr Studium: Lva: Note:
Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: MNr Studium: MNr Lva: Note:
Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: MNr Studium: MNr Lva: LvaNr Note:
Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen es voll funktional abhängt: Vname: MNr Nname: MNr Stkz: MNr Studium: MNr Lva: LvaNr Note: MNr, LvaNr, Datum
Zweite Normalform Zweite Normalform Beispiel Vname Nname MNr Stkz Studium LvaNr Lva Datum Note Listen für jedes Nichtschlüsselattribut jene Schlüsselattribute auf, von denen 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!
Zweite Normalform Zweite Normalform Beispiel bekommen 2NF, indem Attribute, die von derselben Menge von Schlüsselattributen abhängen, in einer Tabelle zusammengefasst werden: MNr Vname Nname Stkz Studium LvaNr Lva MNr LvaNr Datum Note Falls es kein Nichtschlüsselattribut gibt, das vom gesamten Schlüssel abhängt, gibt es eine zusätzliche Tabelle, die nur die Schlüsselwerte enthält!
Dritte Normalform Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form
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 β α, dh 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 zwischen Attributen gibt, die nicht Teil eines (Kandidaten-/Super-)Schlüssels sind Intuition: wollen keine FDs zwischen Nichtschlüsselattributen
Dritte Normalform Dritte Normalform Beispiel Beispiel MNr Vname Nname Stkz Studium LvaNr Lva MNr LvaNr Datum Note
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
Dritte Normalform Dritte Normalform Beispiel Beispiel Zerlegung, die 3NF erfüllt: MNr Vname Nname Stkz Stkz Studium LvaNr Lva MNr LvaNr Datum Note
Dritte Normalform Synthesealgorithmus für 3NF Gegeben: Relation R, Menge F von FDs Wir wollen: verlustlose und abhängigkeitserhaltende Zerlegung R 1,, R n, sodass jedes R i in 3NF ist Algorithmus: 1 Bestimme kanonische Überdeckung F c von F (siehe Unit 5) 2 Lege für jede FD α β in F c 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 einen Kandidatenschlüssel κ von R an (mit F κ = ) 4 Lösche Relationen R α, die in anderen Relationen R α enthalten sind, dh R α R α
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, Studium Stkz Studium LvaNr Lva MNr, LvaNr, Datum Note
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, Stkz Stkz Studium LvaNr Lva MNr, LvaNr, Datum Note
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, Stkz Stkz, Studium LvaNr, Lva MNr, LvaNr, Datum, Note
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, Stkz Stkz, Studium LvaNr, Lva MNr, LvaNr, Datum, Note Die letzte Tabelle enthält Kandidatenschlüssel der ursprünglichen Tabelle, also sind wir fertig
Boyce-Codd Normal Form Outline 1 SQL 2 Überblick Datenbankdesign 3 Anomalien 4 Datenbank Normalisierung Zerlegung von Relationen 5 Normalisierung Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd Normal Form
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 β α, dh 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 zwischen Nichtschlüsselattributen haben (inkl Attribute, die Teil eines Kandidatenschlüssels sind, aber nicht als Primärschlüssel verwendet werden)
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 } ein Kandidatenschlüssel ist Wir haben FDs: {Semester} {Semesterabk} und {Semesterabk} {Semester} Weder Semster noch Semesterabk ist Superschlüssel, noch sind die FDs trivial Tabelle ist nicht in BCNF
Boyce-Codd Normal Form Boyce-Codd Normalform Beispiel Lösung: neue Tabelle für Semester MNr LvaNr Semesterabk Datum Note Semesterabk Semester
Boyce-Codd Normal Form Dekompositionsalgorithmus für BCNF Gegeben: Wir wollen: Relation R, Menge F von FDs Zerlegung R 1,, R n in BCNF Dekompositionsalgorithmus: Initialisiere Z := {R}; while (es gibt R i in Z, das nicht in BCNF) do 1 Finde FD α β in R i mit α β = und α R i 2 Zerlege R i in R i1 := α β und R i2 := R i β 3 Ersetze R i in Z durch R i1 und R i2, dh Z := (Z {R i }) {R i1, R i2 }
Boyce-Codd Normal Form 3NF vs BCNF Der Synthesealgorithmus garantiert Zerlegung, die verlustlos, abhängigkeitserhaltend und in 3NF ist Der Dekompositionsalgorithmus garantiert Zerlegung, die verlustlos und in BCNF ist
Boyce-Codd Normal Form 3NF vs BCNF Der Synthesealgorithmus garantiert Zerlegung, die verlustlos, abhängigkeitserhaltend und in 3NF ist Der Dekompositionsalgorithmus garantiert Zerlegung, die verlustlos und in BCNF ist Unglücklicherweise gilt: In einigen Fällen ist eine BCNF Zerlegung nicht abhängigkeitserhaltend In diesen Fällen gibt man sich mit 3NF zufrieden