Kapitel DB:VII (Fortsetzung) VII. Entwurfstheorie relationaler Datenbanken Informelle Entwurfskriterien für Relationenschemata Funktionale Abhängigkeiten Normalformen Dekompositionseigenschaften von Relationen Relationale Dekomposition Relationale Synthese Mehrwertige Abhängigkeiten DB:VII-72 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen Herangehensweisen zum Datenbankentwurf Top-Down: 1. Anforderungsanalyse 2. Erstellung eines konzeptuellen Schemas/Modells in einem High-Level-Modell, zum Beispiel im EER-Modell. 3. Abbildung des konzeptuellen Modells auf eine Menge von Relationen. 4. Verfeinerung des relationalen Modells. Bottom-Up: 1. Festlegung einer Menge funktionaler Abhängigkeiten 2. Synthetisierung von Relationenschemata für die bestimmte formale Eigenschaften garantiert werden können. DB:VII-73 Relational Theory STEIN 2004-2018
Bemerkungen: Die Top-Down-Herangehensweise wird auch als Design by Analysis bezeichnet. Die Bottom-Up-Herangehensweise als Design by Synthesis bezeichnet. DB:VII-74 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen Unterscheidung des formalen Instrumentariums 1. Eigenschaften einzelner Relationen insbesondere: (a) Einhaltung einer bestimmten Normalform 2. Dekompositionseigenschaften insbesondere: (a) Abhängigkeitserhaltung (Dependency Preservation) (b) verlustlose Zerlegung bzw. Verlustlosigkeit (Lossless Join Property) DB:VII-75 Relational Theory STEIN 2004-2018
Bemerkungen: Die Theorie der Normalformen ist im Zusammenhang mit beiden Herangehensweisen zum Datenbankentwurf (Top-Down, Bottom-Up) nützlich. Wiederholung: Die Herstellung einer (hohen) Normalform ist kein hinreichendes Kriterium für ein gutes Datenbankdesign. In [Heuer/Saake 2013] werden die Dekompositionseigenschaften als Transformationseigenschaften, die Abhängigkeitserhaltung als Abhängigkeitstreue und die verlustlose Zerlegung als Verbundtreue bezeichnet. DB:VII-76 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen Universalrelation und Dekomposition Definition 9 (Universalrelation) Die Universalrelation genauer: das Universalrelationenschema zu einer Datenbank entsteht durch Zusammenfassung aller in der Datenbank vorhandenen Attribute in einem einzigen relationalen Schema R. Definition 10 (Dekomposition eines Relationenschemas) Sei R ein Relationenschema. Die Aufteilung von R in eine Menge R = {R 1,..., R m } von Relationenschemata heißt Dekomposition oder Zerlegung von R. Attributerhaltung: Die Eigenschaft der Attributerhaltung einer Dekomposition R von R fordert, dass jedes Attribut von R in mindestens einem Relationenschema R i, R i R, auftaucht: m R i = R i=1 DB:VII-77 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (a) Abhängigkeitserhaltung Eine Zerlegung von R mit zugehörigen funktionalen Abhängigkeiten F in die Relationenschemata R 1,..., R m sollte so sein, dass die Überprüfung jeder FD (α β) F lokal auf den R i erfolgen kann. Man muss also keinen Join durchführen, um dann auf der verbundenen Relation die Abhängigkeiten prüfen zu können. Das heißt, jede FD (α β) F kommt entweder direkt in einem R i vor oder kann mit Hilfe der Inferenzregeln abgeleitet werden. DB:VII-78 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (a) Abhängigkeitserhaltung Definition 11 (Einschränkung von FDs, Abhängigkeitserhaltung) Sei R ein Relationenschema mit zugehörigen funktionalen Abhängigkeiten F und sei R i R. Die Einschränkung von F auf R i, in Zeichen: F Ri, ist die Menge von Abhängigkeiten (α β) F + für die (α β) R i gilt. Eine Dekomposition R = {R 1,..., R m } von R ist abhängigkeitserhaltend hinsichtlich F, wenn gilt: F F R1... F Rm bzw. F + = (F R1... F Rm ) + DB:VII-79 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (a) Abhängigkeitserhaltung Definition 11 (Einschränkung von FDs, Abhängigkeitserhaltung) Sei R ein Relationenschema mit zugehörigen funktionalen Abhängigkeiten F und sei R i R. Die Einschränkung von F auf R i, in Zeichen: F Ri, ist die Menge von Abhängigkeiten (α β) F + für die (α β) R i gilt. Eine Dekomposition R = {R 1,..., R m } von R ist abhängigkeitserhaltend hinsichtlich F, wenn gilt: F F R1... F Rm bzw. F + = (F R1... F Rm ) + DB:VII-80 Relational Theory STEIN 2004-2018
Bemerkungen: Abhängigkeitserhaltung garantiert die effiziente Überprüfung von funktionalen Abhängigkeiten (nach dem Hinzufügen, Löschen oder Ändern von Tupeln), weil die Relationenschemata unabhängig voneinander analysiert werden können. Eine abhängigkeitserhaltende Dekomposition wird auch hüllentreue Dekomposition genannt. Abhängigkeitserhaltung erfordert, dass bei der Dekomposition eines Relationenschemas keine linke Seite einer FD zerschnitten wird. Für ein Relationenschema R kann immer eine abhängigkeitserhaltende Dekomposition R = {R 1,..., R m } gefunden werden, so dass jedes R i, R i R, in 3NF ist. Es kann nicht immer eine Dekomposition gefunden werden, die alle Abhängigkeiten erhält und bei der jedes R i in BCNF ist. DB:VII-81 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (a) Abhängigkeitserhaltung: Beispiel PLZverzeichnis Ort BLand Strasse PLZ Frankfurt Hessen Goethestrasse 60313 Frankfurt Hessen Schillerstrasse 60437 Frankfurt Brandenburg Goethestrasse 15234 {PLZ} {Ort, BLand} {Ort, BLand, Strasse} {PLZ} A B C D DB:VII-82 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (a) Abhängigkeitserhaltung: Beispiel PLZverzeichnis Ort BLand Strasse PLZ Frankfurt Hessen Goethestrasse 60313 Frankfurt Hessen Schillerstrasse 60437 Frankfurt Brandenburg Goethestrasse 15234 {PLZ} {Ort, BLand} {Ort, BLand, Strasse} {PLZ} A B C D Durch folgende Zerlegung geht die FD {Ort, BLand, Strasse} {PLZ} verloren: Orte Ort BLand PLZ Frankfurt Hessen 60313 Frankfurt Hessen 60437 Frankfurt Brandenburg 15234 Strassen Strasse PLZ Goethestrasse 60313 Schillerstrasse 60473 Goethestrasse 15234 A B D C D DB:VII-83 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (a) Abhängigkeitserhaltung: Beispiel PLZverzeichnis Ort BLand Strasse PLZ Frankfurt Hessen Goethestrasse 60313 Frankfurt Hessen Schillerstrasse 60437 Frankfurt Brandenburg Goethestrasse 15234 {PLZ} {Ort, BLand} {Ort, BLand, Strasse} {PLZ} A B C D Durch folgende Zerlegung geht die FD {Ort, BLand, Strasse} {PLZ} verloren: Orte Ort BLand PLZ Frankfurt Hessen 60313 Frankfurt Hessen 60437 Frankfurt Brandenburg 15234 Strassen Strasse PLZ Goethestrasse 60313 Schillerstrasse 60473 Goethestrasse 15234 A B D C D Lokal konsistentes Update der Relationen: Orte Ort BLand PLZ Frankfurt Hessen 60313 Frankfurt Hessen 60437 Frankfurt Brandenburg 15234 Frankfurt Brandenburg 15235 Strassen Strasse PLZ Goethestrasse 60313 Schillerstrasse 60473 Goethestrasse 15234 Goethestrasse 15235 DB:VII-84 Relational Theory STEIN 2004-2018
Bemerkungen: Das Schema PLZverzeichnis ist in 3NF, aber nicht in BCNF, denn es existiert die transitive Abhängigkeit {PLZ} {Ort, BLand} (Formulierung 2) bzw. {PLZ} ist nicht Superschlüssel (Formulierung 1). Durch Elimination der abhängigen Attributmenge {Ort, BLand} und Erstellung eines weiteren Schemas bestehend aus {Ort, BLand, PLZ} wird die BCNF hergestellt. Die Zerlegung ist nicht abhängigkeitserhaltend. Die Verletzung der FD {Ort, BLand, Strasse} {PLZ} ist erst nach einem Join (Join-Attribut ist PLZ ) erkennbar. Obwohl {Ort, BLand, Strasse} Schlüssel sein sollte, existieren nach einem Join u.a. folgende Tupel: (Frankfurt, Brandenburg, Goethestrasse, 15234) (Frankfurt, Brandenburg, Goethestrasse, 15235) Das Relationenschema Strassen enthält nur noch triviale Abhängigkeiten; der Schlüssel von Strassen besteht deshalb aus der Menge aller Attribute des Schemas. Vorgriff: Weil {PLZ} einen Schlüssel in einer der beiden neuen Relationen darstellt, ist die Zerlegung verlustlos. DB:VII-85 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (b) Verlustlose Zerlegung bzw. Verbundtreue Eine Zerlegung von R mit zugehörigen funktionalen Abhängigkeiten F in die Relationenschemata R 1,..., R m sollte so sein, dass die in einer Ausprägung r des Relationenschemas R enthaltene Information aus den Ausprägungen r 1,..., r m der Relationenschemata R 1,..., R m konstruierbar ist. Definition 12 (verlustlose Zerlegung) Sei R ein Relationenschema mit zugehörigen funktionalen Abhängigkeiten F. Eine Zerlegung R = {R 1,..., R m } von R ist verlustlos bzw. verbundtreu hinsichtlich F, wenn für jede Ausprägung r des Relationenschemas R, die F erfüllt, gilt: r = π R1 (r)... π Rm (r) DB:VII-86 Relational Theory STEIN 2004-2018
Bemerkungen: Eine Zerlegung ist dann nicht verlustlos, wenn nach dem Join zusätzliche (spurious) Tupel entstanden sind. Zusätzliche Tupel bedeuten einen Informationsverlust, weil durch sie eindeutige Zuordnungen verloren gegangen sind. Oft ist es ausreichend, sich bei der Dekomposition von R auf den binären Fall zu beschränken. Es gilt nämlich: Ist {R 1,..., R m } eine verlustlose Zerlegung von R hinsichtlich F und ist {R i1,..., R ik } eine verlustlose Zerlegung von R i hinsichtlich F Ri, so ist auch {R 1,..., R i 1, R i1,..., R ik, R i+1,..., R m } eine verlustlose Zerlegung von R hinsichtlich F. DB:VII-87 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (b) Verlustlose Zerlegung: Beispiel Biertrinker Kneipe Gast Bier Kowalski Kemper Pils Kowalski Eickler Hefeweizen Innsteg Kemper Hefeweizen A B C Zerlegung in die Relationenschemata Besucht und Trinkt : Besucht Kneipe Gast Kowalski Kemper Kowalski Eickler Innsteg Kemper Trinkt Gast Bier Kemper Pils Eickler Hefeweizen Kemper Hefeweizen A B B C DB:VII-88 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (b) Verlustlose Zerlegung: Beispiel Biertrinker Kneipe Gast Bier Kowalski Kemper Pils Kowalski Eickler Hefeweizen Innsteg Kemper Hefeweizen A B C Zerlegung in die Relationenschemata Besucht und Trinkt : Besucht Kneipe Gast Kowalski Kemper Kowalski Eickler Innsteg Kemper Trinkt Gast Bier Kemper Pils Eickler Hefeweizen Kemper Hefeweizen A B B C Die Bildung des natürlichen Verbundes zeigt, dass die Assoziation von Biersorten und Gästen relativ zur Kneipe verloren gegangen ist: Besucht Trinkt Besucht Trinkt Kneipe Gast Bier Kneipe Gast Gast Bier Kowalski Kemper Pils Kowalski Kemper Kemper Pils Kowalski Kemper Hefeweizen Kowalski Eickler Eickler Hefeweizen Kowalski Eickler Hefeweizen Innsteg Kemper Kemper Hefeweizen Innsteg Kemper Pils Innsteg Kemper Hefeweizen DB:VII-89 Relational Theory STEIN 2004-2018
Bemerkungen: Im Beispiel gilt nur die FD {Kneipe, Gast} {Bier}. Die Existenz von einer der folgenden FDs würde Verlustlosigkeit garantieren: {Gast} {Bier}, {Gast} {Kneipe} DB:VII-90 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (b) Verlustlose Zerlegung (Fortsetzung) Formulierung 1: Eine Zerlegung von R mit zugehörigen funktionalen Abhängigkeiten F in die Relationenschemata R 1 und R 2 ist verlustlos, wenn mindestens eine der folgenden Bedingungen gilt: ((R 1 R 2 ) R 1 ) F + ((R 1 R 2 ) R 2 ) F + DB:VII-91 Relational Theory STEIN 2004-2018
Dekompositionseigenschaften von Relationen (b) Verlustlose Zerlegung (Fortsetzung) Formulierung 1: Eine Zerlegung von R mit zugehörigen funktionalen Abhängigkeiten F in die Relationenschemata R 1 und R 2 ist verlustlos, wenn mindestens eine der folgenden Bedingungen gilt: ((R 1 R 2 ) R 1 ) F + ((R 1 R 2 ) R 2 ) F + Formulierung 2: Sei R = α β γ, R 1 = α β, und R 2 = α γ mit paarweisen disjunkten Attributmengen α, β und γ. Eine Zerlegung von R mit zugehörigen funktionalen Abhängigkeiten F in die Relationenschemata R 1 und R 2 ist verlustlos, wenn mindestens eine der folgenden Bedingungen gilt: β AttributeClosure(F, α) γ AttributeClosure(F, α) DB:VII-92 Relational Theory STEIN 2004-2018
Bemerkungen: Die Attributmenge im Schnitt der beiden Relationenschemata, R 1 R 2, bestimmt mindestens eines der beiden Relationenschemata funktional, ist also (Super-)Schlüssel für eines der beiden Relationenschemata. Das macht auch den Zusammenhang zur Verlustlosigkeit klar: Zu jeder Schlüsselausprägung gibt es höchstens ein Tupel, und somit besteht keine Möglichkeit, bei einem Join zusätzliche (= falsche) Tupel dazu zu kombinieren. DB:VII-93 Relational Theory STEIN 2004-2018
Relationale Dekomposition Algorithm: Input: Output: RelDecomposition R. Universalrelation. F. Menge funktionaler Abhängigkeiten für R. R. Verlustlose Zerlegung von R mit Schemata in BCNF. 1. R = {R} 2. WHILE R : (R R R not in BCNF) DO 3. Find FD (α β) F R that violates BCNF 4. Decompose R into R 1 = R β and R 2 = α β 5. R = (R {R }) {R 1, R 2} 6. ENDDO 7. RETURN(R) Vergleiche Schritt 5 mit der Illustration der Boyce-Codd-Normalform. DB:VII-94 Relational Theory STEIN 2004-2018
Bemerkungen: Schritt 3. Wie man eine BCNF-verletzende FD in der While-Schleife findet: Ist ein Relationenschema R nicht in BCNF, so existiert in R eine FD α β mit α β = und α R. Schritt 4. Die Dekomposition garantiert Verlustlosigkeit: R 1 R 2 = α mit α R 2 Eine durch den Algorithmus RelDecomposition erzeugte Dekomposition ist nicht notwendigerweise abhängigkeitserhaltend. DB:VII-95 Relational Theory STEIN 2004-2018
Relationale Dekomposition Illustration der Zerlegung eines Relationenschemas R in die Schemata R 1 und R 2 entlang der funktionalen Abhängigkeit α β: R' R' 1 R' 2 R' (α β) α β [Kemper/Eickler 2011] DB:VII-96 Relational Theory STEIN 2004-2018
Relationale Dekomposition Beispiel: R Grundstuecke = {SteuerNr, Landkreis, GrundstNr, GrundstGroesse, Preis, Steuersatz} F D 1 : {SteuerNr} {Landkreis, GrundstNr, GrundstGroesse, Preis, Steuersatz} F D 2 : {Landkreis, GrundstNr} {SteuerNr, GrundstGroesse, Preis, Steuersatz} F D 3 : {Landkreis} {Steuersatz} F D 4 : {GrundstGroesse} {Preis} Grundstuecke SteuerNr Landkreis GrundstNr GrundstGroesse Preis Steuersatz FD 4 FD 3 FD 2 FD 1 A B C D E F TAFEL DB:VII-97 Relational Theory STEIN 2004-2018
Relationale Synthese Algorithm: Input: Output: RelSynthesis R. Universalrelation. F. Menge funktionaler Abhängigkeiten für R. R. Verlustlose und abhängigkeitserhaltende Zerlegung von R mit Schemata in 3NF. 1. R = 2. Determine a canonical cover F c of F 3. FOREACH (α β) F c DO 4. Synthesize R α = α β, R = R {R α } 5. F α = {(γ δ) F c (γ δ) R α } 6. ENDDO 7. IF α : ((α β) F c with α R) THEN 8. Determine a candidate key κ R 9. R κ = κ, R = R {R κ }, F κ = 10. ENDIF 11. FOREACH R α, R α R DO IF R α R α THEN R = R {R α } 12. RETURN(R) DB:VII-98 Relational Theory STEIN 2004-2018
Relationale Synthese Algorithm: Input: Output: RelSynthesis R. Universalrelation. F. Menge funktionaler Abhängigkeiten für R. R. Verlustlose und abhängigkeitserhaltende Zerlegung von R mit Schemata in 3NF. 1. R = 2. Determine a canonical cover F c of F 3. FOREACH (α β) F c DO 4. Synthesize R α = α β, R = R {R α } 5. F α = {(γ δ) F c (γ δ) R α } 6. ENDDO 7. IF α : ((α β) F c with α R) THEN 8. Determine a candidate key κ R 9. R κ = κ, R = R {R κ }, F κ = 10. ENDIF 11. FOREACH R α, R α R DO IF R α R α THEN R = R {R α } 12. RETURN(R) DB:VII-99 Relational Theory STEIN 2004-2018
Relationale Synthese Algorithm: Input: Output: RelSynthesis R. Universalrelation. F. Menge funktionaler Abhängigkeiten für R. R. Verlustlose und abhängigkeitserhaltende Zerlegung von R mit Schemata in 3NF. 1. R = 2. Determine a canonical cover F c of F 3. FOREACH (α β) F c DO 4. Synthesize R α = α β, R = R {R α } 5. F α = {(γ δ) F c (γ δ) R α } 6. ENDDO 7. IF α : ((α β) F c with α R) THEN 8. Determine a candidate key κ R 9. R κ = κ, R = R {R κ }, F κ = 10. ENDIF 11. FOREACH R α, R α R DO IF R α R α THEN R = R {R α } 12. RETURN(R) DB:VII-100 Relational Theory STEIN 2004-2018
Relationale Synthese Algorithm: Input: Output: RelSynthesis R. Universalrelation. F. Menge funktionaler Abhängigkeiten für R. R. Verlustlose und abhängigkeitserhaltende Zerlegung von R mit Schemata in 3NF. 1. R = 2. Determine a canonical cover F c of F 3. FOREACH (α β) F c DO 4. Synthesize R α = α β, R = R {R α } 5. F α = {(γ δ) F c (γ δ) R α } 6. ENDDO 7. IF α : ((α β) F c with α R) THEN 8. Determine a candidate key κ R 9. R κ = κ, R = R {R κ }, F κ = 10. ENDIF 11. FOREACH R α, R α R DO IF R α R α THEN R = R {R α } 12. RETURN(R) DB:VII-101 Relational Theory STEIN 2004-2018
Bemerkungen: Schritt 2. Bestimmung einer kanonischen Überdeckung für die Menge der funktionalen Abhängigkeiten. Schritt 3-6. Synthetisierung der Relationenschemata; diese befinden sich per Konstruktion auf Basis der kanonischen Überdeckung in 3NF. Schritt 7-10. Überprüfung, ob eines der generierten Relationenschemata einen Schlüssel für die Universalrelation enthält. Falls nicht, ist ein solcher Schlüssel zu bestimmen und ein aus den Schlüsselattributen bestehendes Relationenschema hinzuzunehmen. Schritt 11. Eliminierung von subsummierten Relationenschemata. DB:VII-102 Relational Theory STEIN 2004-2018
Bemerkungen: (Fortsetzung) Es stellt sich u.a. die Frage, wie wertvoll die Eigenschaft der Verlustlosigkeit ist [Heuer/Saake 2013] : Muss sich die Universalrelation rekonstruieren lassen bzw. hat sie eine aus der Anwendung stammende zwingende Semantik? Ist der natürliche Verbund als Rekonstruktionsoperator das Maß aller Dinge? DB:VII-103 Relational Theory STEIN 2004-2018
Relationale Synthese TAFEL DB:VII-104 Relational Theory STEIN 2004-2018 Beispiel: R MitarbeiterAdr = {PersNr, Name, Gehaltsstufe, Raum, Ort, Strasse, PLZ, Vorwahl, BLand} F D 1 : {PersNr} {Name, Gehaltsstufe, Raum, Ort, Strasse, PLZ, Vorwahl, BLand} F D 2 : {Ort, BLand} {Vorwahl} F D 3 : {PLZ} {Ort, BLand} F D 4 : {Ort, Strasse, BLand} {PLZ} F D 5 : {Raum} {PersNr} MitarbeiterAdr PersNr Name Gehaltsstufe Raum Ort Strasse PLZ Vorwahl BLand FD 5 FD 4 FD 3 FD 2 FD 1 A B C D E F G H I
Mehrwertige Abhängigkeiten Definition 13 (mehrwertig abhängig) Sei R ein relationales Schema und gelte α, β, γ R mit α β γ = R. Dann ist β mehrwertig abhängig von α, in Zeichen: α β, wenn in jeder gültigen Ausprägung von R gilt: Für jedes Paar von Tupeln, t 1, t 2, mit t 1 (α) = t 2 (α) existieren zwei weitere Tupel t 3 und t 4 mit folgenden Eigenschaften: t 1 (α) = t 2 (α) = t 3 (α) = t 4 (α) t 1 (β) = t 3 (β) t 2 (β) = t 4 (β) t 1 (γ) = t 4 (γ) t 2 (γ) = t 3 (γ) DB:VII-105 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Definition 13 (mehrwertig abhängig) Sei R ein relationales Schema und gelte α, β, γ R mit α β γ = R. Dann ist β mehrwertig abhängig von α, in Zeichen: α β, wenn in jeder gültigen Ausprägung von R gilt: Für jedes Paar von Tupeln, t 1, t 2, mit t 1 (α) = t 2 (α) existieren zwei weitere Tupel t 3 und t 4 mit folgenden Eigenschaften: t 1 (α) = t 2 (α) = t 3 (α) = t 4 (α) t 1 (β) = t 3 (β) t 2 (β) = t 4 (β) t 1 (γ) = t 4 (γ) t 2 (γ) = t 3 (γ) Alternative Darstellung (gleiche Farbe entspricht gleichem Wert) [Beispiel] : t 1 (α) t 1 (β) t 1 (γ) t 3 (α) t 3 (β) t 3 (γ) t 4 (α) t 4 (β) t 4 (γ) t 2 (α) t 2 (β) t 2 (γ) DB:VII-106 Relational Theory STEIN 2004-2018
Bemerkungen: Ist β mehrwertig abhängig von α, so kann man in der zugehörigen Relation r bei je zwei Tupeln, die den gleichen α-wert haben, die β-werte vertauschen und es gilt, dass die resultierenden Tupel auch in r enthalten sind. Mehrwertige Abhängigkeiten (Multivalued Dependency, MVD) stellen eine Verallgemeinerung funktionaler Abhängigkeiten (FDs) dar. Die linke Seite einer MVD bestimmt für ihre rechte Seite eine Menge von Werten (Stichwort: mehrwertig). Es gilt: α β α β Eine FD ist eine MVD, bei der höchstens eine Ausprägung von β mit je einer Ausprägung von α verknüpft ist. Eine MVD kann immer dann entstehen, wenn zwei unabhängige 1: N-Beziehungen in einer Relation kombiniert werden. Die Beziehungen können als orthogonal zueinander (= unabhängig voneinander) verstanden werden. Aus der Symmetrie der Definition folgt auch die Komplementregel: α β α γ DB:VII-107 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Beispiel: Faehigkeiten PersNr Sprache ProgSprache 3002 griechisch C 3002 lateinisch Pascal 3002 griechisch Pascal 3002 lateinisch C 3005 deutsch Java In dieser Relation gelten die MVDs {PersNr} {Sprache} und {PersNr} {ProgSprache}. Die Attributmenge {PersNr, Sprache, ProgSprache} bildet den Schlüssel; die Relation ist also in BCNF. DB:VII-108 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Sei R ein relationales Schema und gelte α, β, γ R mit α β γ = R und sei r eine Auprägung von R. Semantisch drückt eine mehrwertige Abhängigkeit die Unabhängigkeit der Attributmengen β und γ voneinander in der Relation r aus: pro α-wert bildet das kartesische Produkt der β- und γ-werte die Menge der βγ-werte für α: α β a {t(α) t r} : π β (σ α=a (r)) π γ (σ α=a (r)) = π βγ (σ α=a (r)) DB:VII-109 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Sei R ein relationales Schema und gelte α, β, γ R mit α β γ = R und sei r eine Auprägung von R. Semantisch drückt eine mehrwertige Abhängigkeit die Unabhängigkeit der Attributmengen β und γ voneinander in der Relation r aus: pro α-wert bildet das kartesische Produkt der β- und γ-werte die Menge der βγ-werte für α: α β a {t(α) t r} : π β (σ α=a (r)) π γ (σ α=a (r)) = π βγ (σ α=a (r)) DB:VII-110 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Sei R ein relationales Schema und gelte α, β, γ R mit α β γ = R und sei r eine Auprägung von R. Semantisch drückt eine mehrwertige Abhängigkeit die Unabhängigkeit der Attributmengen β und γ voneinander in der Relation r aus: pro α-wert bildet das kartesische Produkt der β- und γ-werte die Menge der βγ-werte für α: α β a {t(α) t r} : π β (σ α=a (r)) π γ (σ α=a (r)) = π βγ (σ α=a (r)) Alternative Formulierung für den Spezialfall α = β = γ = 1 : Wenn {b 1,..., b k } und {c 1,..., c l } die β- bzw. γ-werte für einen bestimmten α-wert a in einer Relation r sind, so muss r auch die folgenden k l Tripel enthalten: {a} {b 1,..., b k } {c 1,..., c l } DB:VII-111 Relational Theory STEIN 2004-2018
Bemerkungen: Immer wenn zwei Tupel mit gleichem α-wert und verschiedenem β-wert existieren, so müssen auch Tupel existieren, die für diesen α-wert und jeden β-wert alle Kombinationen von γ-werten beinhalten. Man nennt mehrwertige Abhängigkeiten auch tupelgenerierende Abhängigkeiten: eine Relationenausprägung kann bei Verletzung einer MVD durch das Einfügen zusätzlicher Tupel in einen Zustand überführt werden, der die MVD erfüllt. DB:VII-112 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Vierte Normalform Definition 14 (triviale MVD) Sei R ein relationales Schema, α β R. Eine MVD α β ist trivial hinsichtlich R, falls jede mögliche Ausprägung r von R diese MVD erfüllt. DB:VII-113 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Vierte Normalform Definition 14 (triviale MVD) Sei R ein relationales Schema, α β R. Eine MVD α β ist trivial hinsichtlich R, falls jede mögliche Ausprägung r von R diese MVD erfüllt. Ein Relationenschema R mit zugehöriger Menge F von funktionalen und mehrwertigen Abhängigkeiten ist in vierter Normalform (4NF), wenn für jede MVD (α β) F + mindestens eine der folgenden Bedingungen erfüllt ist: die MVD ist trivial α ist Superschlüssel von R DB:VII-114 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Vierte Normalform Definition 14 (triviale MVD) Sei R ein relationales Schema, α β R. Eine MVD α β ist trivial hinsichtlich R, falls jede mögliche Ausprägung r von R diese MVD erfüllt. Ein Relationenschema R mit zugehöriger Menge F von funktionalen und mehrwertigen Abhängigkeiten ist in vierter Normalform (4NF), wenn für jede MVD (α β) F + mindestens eine der folgenden Bedingungen erfüllt ist: die MVD ist trivial α ist Superschlüssel von R Beispiel [Definition] : nichttriviale MVD α β triviale MVD α β α β γ α β x 1 2 a b a b DB:VII-115 Relational Theory STEIN 2004-2018 x 1 2
Bemerkungen: Man kann zeigen, dass α β genau dann trivial ist, wenn β α oder wenn β = R α gilt. Bei Relationen in der vierten Normalform wird die durch mehrwertige Abhängigkeiten verursachte Redundanz ausgeschlossen: Relationen in 4NF enthalten keine zwei voneinander unabhängigen, mehrwertigen Fakten. Die vierte Normalform erreicht man durch Elimination der rechten Seite einer der beiden mehrwertigen Abhängigkeiten. Der eliminierte Teil bildet zusammen mit der linken Seite der MVD eine neue Relation. Die vierte Normalform ist eine Verschärfung der Boyce-Codd-Normalform. DB:VII-116 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Verlustlose Zerlegung Eine Zerlegung von R mit zugehörigen funktionalen und mehrwertigen Abhängigkeiten F in die Relationenschemata R 1 und R 2 ist genau dann verlustlos, wenn mindestens eine der folgenden Bedingungen gilt: ((R 1 R 2 ) R 1 ) F + ((R 1 R 2 ) R 2 ) F + DB:VII-117 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Verlustlose Zerlegung Eine Zerlegung von R mit zugehörigen funktionalen und mehrwertigen Abhängigkeiten F in die Relationenschemata R 1 und R 2 ist genau dann verlustlos, wenn mindestens eine der folgenden Bedingungen gilt: ((R 1 R 2 ) R 1 ) F + ((R 1 R 2 ) R 2 ) F + Beispiel (Fortsetzung): Faehigkeiten PersNr Sprache ProgSprache 3002 griechisch C 3002 lateinisch Pascal 3002 griechisch Pascal 3002 lateinisch C 3005 deutsch Java Sprachen PersNr Sprache 3002 griechisch 3002 lateinisch 3005 deutsch ProgSprachen PersNr ProgSprache 3002 C 3002 Pascal 3005 Java Die Zerlegung in die Relationenschemata Sprachen und ProgSprachen ist verlustlos: Faehigkeiten = π PersNr,Sprache (Faehigkeiten) π PersNr,ProgSprache (Faehigkeiten) DB:VII-118 Relational Theory STEIN 2004-2018
Mehrwertige Abhängigkeiten Relationale Dekomposition Algorithm: Input: Output: RelDecompositionMVD R. Universalrelation. F. Menge funktionaler Abhängigkeiten für R. R. Verlustlose Zerlegung von R mit Schemata in 4NF. 1. R = {R} 2. WHILE R : (R R R not in 4NF) DO 3. Find nontrivial MVD (α β) F R that violates 4NF 4. Decompose R into R 1 = R β and R 2 = α β 5. R = (R {R }) {R 1, R 2} 6. ENDDO 7. RETURN(R) DB:VII-119 Relational Theory STEIN 2004-2018
Bemerkungen: Der Algorithmus RelDecompostionMVD erzeugt nicht notwendigerweise eine Zerlegung, die abhängigkeitserhaltend ist. Dies folgt aus der Tatsache, das eine Relation in 4NF gleichzeitig auch immer in BCNF ist. DB:VII-120 Relational Theory STEIN 2004-2018
Beziehungen der Normalformen 1NF 2NF 3NF BCNF abhängigkeitserhaltende Zerlegung verlustlose Zerlegung 4NF [Kemper/Eickler 2011] DB:VII-121 Relational Theory STEIN 2004-2018