Relationale Entwurfstheor

Ähnliche Dokumente
Kapitel 6 Relationale Entwurfstheorie. Funktionale Abhängigkeiten Normalformen Normalisierung durch Dekomposition

Relationale Entwurfstheorie

Relationale Entwurfstheorie

Relationale Entwurfstheorie (Teil 2)

Datenbanken. Relationale Entwurfstheorie. Ralf Möller, Marc Stelzner Universität zu Lübeck Institut für Informationssysteme

Informationssysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Sommersemester

Relationale Entwurfstheorie

Datenbanksysteme 2015

Relationale Entwurfstheorie. Kapitel / 510

Datenbanken 6: Normalisierung

Kapitel DB:VII. VII. Entwurfstheorie relationaler Datenbanken

Kapitel 7: Normalformen

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Kapitel 7: Formaler Datenbankentwurf

Einführung in Datenbanksysteme

Grundlagen: Datenbanken WS 15/16

5. Normalisierung von Relationen

Funktionale Abhängigkeiten

Vorlesung Datenbanktheorie. Church-Rosser-Eigenschaft der Verfolgungsjagd. Berechnung von chase(t, t, Σ) Vorlesung vom Mittwoch, 05.

2. Übungsblatt 3.0 VU Datenmodellierung

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 18. Juni 2007

Rückblick: Datenbankentwurf

Datenbanksysteme Übungsblatt 1

Grundlagen des relationalen l Modells

Design Theorie für relationale Datenbanken

Kapitel 3: Datenbanksysteme

4. Normalisierung von Relationenschemata

2. Übungsblatt 3.0 VU Datenmodellierung

Teil 9: Einführung in relationale Normalformen

Vorlesung Datenbank-Entwurf Klausur

Normalformen: Sinn und Zweck

Logischer DB-Entwurf. Prof. Dr. T. Kudraß 1

Datenbanksysteme SS 2007

Grundlagen des relationalen Modells

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Grundlagen des relationalen Modells

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Musterlösung zur Finalklausur Datenbanksysteme am

Das relationale Modell

9. Normalformen / Erweiterungen 9.1 Vorbemerkung, Zielsetzung, Inhalt Datenmodellierung und Integritätsaspekte

Datenbanken. Rückblick: Datenbank-Entwurfsprozess. Semantische Datenmodellierung (vgl. Kapitel 2)

Referentielle Integrität

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Datenbanksysteme SS 2007

2. Übungsblatt 3.0 VU Datenmodellierung

5. Normalisierung von Relationen

Referentielle Integrität

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

3. Übungszettel (Musterlösung)

Grundlagen des relationalen Modells

Datenbanken und Informationssysteme Sommersemester 2012 Probeklausur

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Kapitel 11: Relationale Entwurfstheorie

Datenbanken 1 Sommersemester 2014/

Software-Engineering

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Einführung in Datenbanken - Wiederholung Normalformen - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung

3. Das Relationale Datenmodell

Handout zur Unit Datenmodellierung Web-Technologien Datenmodellierung Prof. Dr. rer. nat. Nane Kratzke

Kommunikation und Datenhaltung

Rückblick: Entity-Relationship-Modell

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

Datenbanken: Relationales Datenbankmodell RDM

Entwurf redundanzfreier Datenbankschemata

Datenbanksysteme I Relationaler Datenbankentwurf Felix Naumann

Grundlagen von Datenbanken SS 2010

Einführung in Datenbanken. - Lernskript-

Kapitel 3: Datenbanksysteme

Lineare Algebra I. Auswahlaxiom befragen. (Wer schon im Internet danach sucht, sollte das auch mal mit dem Begriff

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Aufgabe 1: Kanonische Überdeckung

Das relationale Modell

Datenintegrität. Bisherige Integritätsbedingungen

14. Rot-Schwarz-Bäume

Logische Datenmodelle

Tag 4 Inhaltsverzeichnis

Software-Engineering Einführung

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Tag 4 Inhaltsverzeichnis

VO Datenmodellierung. Katrin Seyr

Einführung in Datenbanken (DBS1)

Formale Sprachen. Script, Kapitel 4. Grammatiken

Objektorientierte Datenbanken

Aufgabe 1) Übung 4: 1.2

1. Ziel des Datenbankentwurfs

Aufgabe 1 Indexstrukturen

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Klausur PI Datenbanken II vom Name: Praktische Informatik (Krägeloh)

Friihjahr. Erste Staatsprüfilrg für ein Lehramt an öffentlichen Schulen.Prüfurgsaufgaben- Prüfungsüeilnehmer Prüfungsüermin Einzelprüfungsnummer

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Mathematische Logik Zermelo-Fränkel Axiome der Mengenlehre

Relationaler Datenbankentwurf

Nicht Relationale Datenbanken. Nachteile des Relationenmodells

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Architektur eines DBMS Logische Optimierung

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Inhalt. 2.1 Datenbankentwurf. 2.2 Relationales Modell. 2.3 Relationale Entwurfstheorie. 2.4 Relationale Algebra. 2.5 Structured Query Language (SQL)

Transkript:

Relationale Entwurfstheor Funktionale Abhängigkeiten Normalformen Normalisierung durch Dekomposition Kapitel 6 1

Ziele der relationalen Entwurfstheorie Bewertung der Qualität eines Relationenschemas Redundanz Einhaltung von Konsistenzbedingungen Funktionale Abhängigkeiten Normalformen als Gütekriterium Ggf. Verbesserung eines Relationenschemas durch den Synthesealgorithmus durch Dekomposition 2

Funktionale Abhängigkeiten Def.: Sei R ein Schema, und α, β R. Die funktionale Abhängigkeit α β gilt, wenn für alle möglichen Ausprägungen R von R und alle r, s R mit r.α = s.α gilt, dass r.β = s.β. Funktionale Abhängigkeit wird i.w. mit FD (functional dependency) abgekürzt. Bsp.: Schema R = {A, B, C, D} mit einer Ausprägung R: A B R C D {A} {B} {C, D} {B} a4 a1 b2 b1 c4 c1 d3 d1 Nicht: {B} {C} a1 a2 a3 b1 b2 b2 c1 c3 c4 d2 d2 d3 Notationskonvention: CD B statt {C, D} {B} 3

FD: Maximal ein Tupel in ( ( R) ) σ β α = c Für jeden möglichen Wert c von α 4

Funktionale Abhängigkeiten Def.: Sei R ein Schema, und α, β R. Die funktionale Abhängigkeit α β gilt, wenn für alle möglichen Ausprägungen R von R und alle r, s R mit r.α = s.α gilt, dass r.β = s.β. Name Frankfurt Frankfurt München Passau Städte BLand Vorwahl Hessen 069 Brandenburg 0335 Bayern 089 Bayern 0851 EW 650000 84000 1200000 50000 5

Beispiel Stammbaum Kind Sofie Vater Alfons Mutter Sabine Opa Lothar Oma Linde Sofie Alfons Sabine Hubert Lisa Niklas Alfons Sabine Lothar Linde Niklas Alfons Sabine Hubert Lisa Lothar Martha 6

Beispiel Stammbaum Kind Sofie Vater Alfons Mutter Sabine Opa Lothar Oma Linde Sofie Alfons Sabine Hubert Lisa Niklas Alfons Sabine Lothar Linde Niklas Alfons Sabine Hubert Lisa Lothar Martha Kind Vater,Mutter Kind,Opa Oma Kind,Oma Opa 7

Schlüssel α R ist ein Super-Schlüssel, falls folgendes gilt: α R β ist voll funktional abhängig von α genau dann wenn α β gilt und α nicht mehr verkleinert werden kann, d.h. für kein A α gilt (α {Α}) β. Notation für volle funktionale Abhängigkeit: α. β α R ist ein Kandidaten-Schlüssel, falls α. R gilt. 8

Schlüsselbestimmung Name Frankfurt Frankfurt München Passau Städte BLand Vorwahl Hessen 069 Brandenburg 0335 Bayern 089 Bayern 0851 EW 650000 84000 1200000 50000 Kandidaten-Schlüssel von Städte: {Name,BLand} {Name,Vorwahl} Beachte, dass zwei kleinere Städte dieselbe Vorwahl haben können 9

Schlüssel α R ist ein Super-Schlüssel, falls folgendes gilt: α R β ist voll funktional abhängig von α genau dann wenn α β gilt und α nicht mehr verkleinert werden kann, d.h. für kein A α gilt (α {Α}) β. Notation für volle funktionale Abhängigkeit: α. β α R ist ein Kandidaten-Schlüssel, falls α. R gilt. Städte Kandidaten-Schlüssel {Name,BLand} {Name,Vorwahl} Name Frankfurt Frankfurt München Passau BLand Hessen Brandenburg Bayern Bayern Vorwahl 069 0335 089 0851 von Städte: EW 650000 84000 1200000 50000 Beachte, dass zwei kleinere Städte dieselbe Vorwahl haben können 10

Bestimmung funktionaler Abhängigkeiten Professoren: {[PersNr, Name, Rang, Raum, Ort, Straße, PLZ, Vorwahl, Bland, EW, Landesregierung]} {PersNr} {PersNr, Name, Rang, Raum, Ort, Straße, PLZ, Vorwahl, Bland, EW, Landesregierung} {Ort,BLand} {EW, Vorwahl} {PLZ} {Bland, Ort, EW} {Bland, Ort, Straße} {PLZ} {Bland} {Landesregierung} {Raum} {PersNr} Zusätzliche Abhängigkeiten, die aus obigen abgeleitet werden können: {Raum} {PersNr, Name, Rang, Raum, Ort, Straße, PLZ, Vorwahl, Bland, EW, Landesregierung} {PLZ} {Landesregierung} 11

Graphische Darstellung der funktionalen Abhängigkeiten Rang PersNr Raum Name Straße Ort BLand Landesregierung PLZ Vorwahl EW 12

Herleitung funktionaler Abhängigkeiten: Armstrong-Axiome Reflexivität Falls β eine Teilmenge von α ist (β α ) dann gilt immer α β. Insbesondere gilt immer α α. Verstärkung Falls α β gilt, dann gilt auch αγ βγ. Hierbei stehe z.b. αγ für α γ. Transitivität Falls α β und β γ gilt, dann gilt auch α γ. Diese drei Axiome sind vollständig und korrekt. Zusätzliche Axiome erleichtern die Herleitung: Vereinigungsregel: Wenn α β und α γ gelten, dann gilt auch α βγ Dekompositionsregel: Wenn α βγ gilt, dann gelten auch α β und α γ Pseudotransitivitätsregel: Wenn α β und γβ δ, dann gilt auch αγ δ 13

Bestimmung der Hülle einer Attributmenge Eingabe: eine Menge F von FDs, eine Menge α von Attributen. Ausgabe: die größte Menge α + von Attributen, für die α α + gilt. AttrHülle(F,α) Erg := α While (Änderungen an Erg) do Foreach FD β γ in F do If β Erg then Erg := Erg γ Ausgabe α + = Erg 14

Äquivalenz Zwei Mengen F und G von funktionalen Abhängigkeiten heißen genau dann äquivalent wenn F G F + = G + 15

Kanonische Überdeckung Fc heißt kanonische Überdeckung von F, wenn die folgenden drei Kriterien erfüllt sind: 1. Fc F, d.h. Fc + = F + 2. In Fc existieren keine FDs, die überflüssige Attribute enthalten. D.h. es muß folgendes gelten: A α: (Fc (α β) ((α {Α}) β)) Fc B β: (Fc (α β) (α (β {Β}))) Fc 3. Jede linke Seite einer funktionalen Abhängigkeit in Fc ist einzigartig. Dies kann durch sukzessive Anwendung der Vereinigungsregel auf FDs der Art α β und α γ erzielt werden, so dass die beiden FDs durch α βγ ersetzt werden. 16

Berechnung der kanonischen Überdeckung 1. Führe für jede FD α β F die Linksreduktion durch: Überprüfe für alle A α, ob A überflüssig ist, d.h., ob β AttrHülle(F, α -A) gilt. Falls dies der Fall ist, ersetze α β durch (α - A) β. 2. Führe für jede (verbliebene) FD die Rechtsreduktion durch: Überprüfe für alle B β, ob B AttrHülle(F (α β) (α (β Β)), α ) gilt. Falls dies der Fall ist, ist B auf der rechten Seite überflüssig und kann eliminiert werden, d.h. ersetze α β durch α (β B). 3. Entferne die FDs der Form α, die im 2. Schritt möglicherweise entstanden sind. 4. Fasse FDs der Form α β 1,, α β n zusammen, so dass α (β 1 β n ) verbleibt. 17

Beispiel Beispiel: F={A B, B C, AB C} 1. Linksreduktion: Ersetze AB C durch A C, da {C} AttrHülle({ A B, B C, A C} +,{A}) 2. Rechtsreduktion: Ersetze A C durch A, da C AttrHülle({A B, B C, A } +,{A}) 3. Eliminiere A 4. Zusammenfassung hier nicht nötig, deswegen Resultat: F c ={A B, B C} 18

Schlechte Relationenschemata PersNr 2125 2125 2125 2132 2137 Name Sokrates Sokrates Sokrates Popper Kant Rang C4 C4 C4 C3 C4 ProfVorl Raum VorlNr 226 5041 226 5049 226 4052 52 5259 7 4630 Titel Ethik Mäeutik Logik Der Wiener Kreis Die 3 Kritiken SWS 4 2 4 2 4 Update-Anomalien Sokrates zieht um, von Raum 226 in R. 338. Was passiert? Einfüge-Anomalien Neue/r Prof ohne Vorlesungen? Löschanomalien Letzte Vorlesung einer/s Profs wird gelöscht? Was passiert? 19

Zerlegung (Dekomposition) von Relationen Es gibt zwei Korrektheitskriterien für die Zerlegung von Relationenschemata: 1. Verlustlosigkeit Die in der ursprünglichen Relationenausprägung R des Schemas R enthaltenen Informationen müssen aus den Ausprägungen R 1,, R n der neuen Relationenschemata R 1,.., R n rekonstruierbar sein. 1. Abhängigkeitserhaltung Die für R geltenden funktionalen Anhängigkeiten müssen auf die Schemata R 1,, R n übertragbar sein. 20

Kriterien für die Verlustlosigkeit einer Zerlegung R = R1 R2 R1 := Π R1 (R) R2 := Π R2 (R) Die Zerlegung von R in R1 und R2 ist verlustlos, falls für jede mögliche (gültige) Ausprägung R von R gilt: R = R1 A R2 Hinreichende Bedingung für die Verlustlosigkeit einer Zerlegung (R1 R2) R1 oder (R1 R2) R2 R R1 R2 α β γ 21

Biertrinker-Beispiel Kneipe Biertrinker Gast Bier Kowalski Kowalski Innsteg Kemper Eickler Kemper Pils Hefeweizen Hefeweizen 22

Verlustige Zerlegung Kneipe Kowalski Kowalski Innsteg Biertrinker Gast Bier Kemper Pils Eickler Hefeweizen Kemper Hefeweizen Π Kneipe, Gast Π Gast, Bier Besucht Kneipe Gast Kowalski Kemper Kowalski Eickler Innsteg Kemper Trinkt Gast Kemper Eickler Kemper Bier Pils Hefeweizen Hefeweizen 23

24 Hefeweizen Kemper Innsteg Hefeweizen Eickler Kowalski Pils Kemper Kowalski Bier Gast Kneipe Biertrinker Kemper Innsteg Eickler Kowalski Kemper Kowalski Gast Kneipe Besucht Hefeweizen Kemper Hefeweizen Eickler Pils Kemper Bier Gast Trinkt Π. Hefeweizen Kemper Kowalski Hefeweizen Kemper Innsteg Pils Kemper Innsteg Hefeweizen Eickler Kowalski Pils Kemper Kowalski Bier Gast Kneipe Besucht A Trinkt A

Erläuterung des Biertrinker-Beispiels Unser Biertrinker-Beispiel war eine verlustige Zerlegung und dementsprechend war die hinreichende Bedingung verletzt. Es gilt nämlich nur die eine nicht-triviale funktionale Abhängigkeit {Kneipe,Gast} {Bier} Wohingegen keine der zwei möglichen, die Verlustlosigkeit garantierenden FDs gelten {Gast} {Bier} {Gast} {Kneipe} Das liegt daran, dass die Leute (insbes. Kemper) in unterschiedlichen Kneipen unterschiedliches Bier trinken. In derselben Kneipe aber immer das gleiche Bier (damit sich die KellnerInnen darauf einstellen können?) 25

Verlustfreie Zerlegung Vater Johann Johann Heinz Eltern Mutter Martha Maria Martha Kind Else Theo Cleo Π Vater, Kind Π Mutter, Kind Väter Vater Kind Johann Else Johann Theo Heinz Cleo Mütter Mutter Kind Martha Else Maria Theo Martha Cleo 26

Erläuterung der verlustfreien Zerlegung der Eltern-Relation Eltern: {[Vater, Mutter, Kind]} Väter: {[Vater, Kind]} Mütter: {[Mutter, Kind]} Verlustlosigkeit ist garantiert Es gilt nicht nur eine der hinreichenden FDs, sondern gleich beide {Kind} {Mutter} {Kind} {Vater} Also ist {Kind} natürlich auch der Schlüssel der Relation Eltern. Die Zerlegung von Eltern ist zwar verlustlos, aber auch ziemlich unnötig, da die Relation in sehr gutem Zustand ist. 27

Abhängigkeitsbewahrung R ist zerlegt in R 1,, R n F R = (F R1 F Rn ) bzw F R+ = (F R1 F Rn ) + Beispiel für Abhängigkeitsverlust PLZverzeichnis: {[Straße, Ort, Bland, PLZ]} Annahmen Orte werden durch ihren Namen (Ort) und das Bundesland (Bland) eindeutig identifiziert Innerhalb einer Straße ändert sich die Postleitzahl nicht Postleitzahlengebiete gehen nicht über Ortsgrenzen und Orte nicht über Bundeslandgrenzen hinweg Daraus resultieren die FDs {PLZ} {Ort, BLand} {Straße, Ort, BLand} {PLZ} Betrachte die Zerlegung Straßen: {[PLZ, Straße]} Orte: {[PLZ, Ort, BLand]} 28

Zerlegung der Relation PLZverzeichnis Ort Frankfurt Frankfurt Frankfurt PLZverzeichnis BLand Straße Hessen Goethestraße Hessen Galgenstraße Brandenburg Goethestraße PLZ 60313 60437 15234 PLZ 15234 60313 60437 Π PLZ,Straße Straßen Straße Goethestraße Goethestraße Galgenstraße Ort Frankfurt Frankfurt Frankfurt Π Stadt,Bland,PLZ Orte BLand Hessen Hessen Brandenburg PLZ 60313 60437 15234 Die FD {Straße, Ort, BLand} {PLZ} ist im zerlegten Schema nicht mehr enthalten Einfügen inkonsistenter Tupel möglich 29

Einfügen zweier Tupel, die die FD Ort,Bland,Straße PLZ verletzen Ort Frankfurt Frankfurt Frankfurt PLZverzeichnis BLand Straße Hessen Goethestraße Hessen Galgenstraße Brandenburg Goethestraße PLZ 60313 60437 15234 Π PLZ,Straße Π Stadt,Bland,PLZ Straßen PLZ Straße 15234 Goethestraße 60313 Goethestraße 60437 Galgenstraße 15235 Goethestrasse Ort Frankfurt Frankfurt Frankfurt Frankfurt Orte BLand Hessen Hessen Brandenburg Brandenburg PLZ 60313 60437 15234 15235 30

Einfügen zweier Tupel, die die FD Ort,Bland,Straße PLZ verletzen PLZ 15234 60313 60437 15235 Ort Frankfurt Frankfurt Frankfurt Frankfurt Straßen Straße Goethestraße Goethestraße Galgenstraße Goethestrasse PLZverzeichnis BLand Hessen Hessen Brandenburg Brandenburg A Straße Goethestraße Galgenstraße Goethestraße Goethestraße Ort Frankfurt Frankfurt Frankfurt Frankfurt Orte PLZ 60313 60437 15234 15235 BLand Hessen Hessen Brandenburg Brandenburg PLZ 60313 60437 15234 15235 31

Erste Normalform Nur atomare Domänen Vater Johann Johann Heinz Eltern Mutter Kinder Martha {Else, Lucie} Maria {Theo, Josef} Martha {Cleo} 1 NF Vater Johann Johann Johann Johann Heinz Eltern Mutter Martha Martha Maria Maria Martha Kind Else Lucie Theo Josef Cleo 32

Exkurs: NF 2 -Relationen Non-First Normal-Form-Relationen Geschachtelte Relationen Vater Johann Johann Heinz Mutter Martha Maria Martha Eltern Kinder KName Else Lucie Theo Josef Cleo KAlter 5 3 3 1 9 33

Zweite Normalform In einer Relation soll immer nur ein Konzept modelliert werden. Jedes Nichtschlüssel-Attribut soll einen Fakt zu dem durch den gesamten(!) Schlüssel identifizierten Konzept beschreiben. Def.: Eine Relation R mit zugehörigen FDs F R ist in zweiter Normalform, falls jedes Nichtschlüssel-Attribut A R voll funktional abhängig ist von jedem Kandidatenschlüssel der Relation. 34

Zweite Normalform Def. (Wdh.): Eine Relation R mit zugehörigen FDs F R ist in zweiter Normalform, falls jedes Nichtschlüssel-Attribut A R voll funktional abhängig ist von jedem Kandidatenschlüssel der Relation. MatrNr 26120 27550 27550 28106 28106 28106 28106 StudentenBelegung VorlNr Name 5001 Fichte 5001 Schopenhauer 4052 Schopenhauer 5041 Carnap 5052 Carnap 5216 Carnap 5259 Carnap Semester 10 6 6 3 3 3 3 Schlüssel {MatrNr,VorlNr} Studentenbelegung ist nicht in zweiter NF {MatrNr} {Semester} {MatrNr} {Name} Linksreduktion von {MatrNr,VorlNr} {Semester} 35

Zweite Normalform MatrNr Name VorlNr Semester Einfügeanomalie: Was macht man mit Studenten, die keine Vorlesungen hören? Updateanomalien: Wenn z.b. Carnap ins vierte Semester kommt, muss man sicherstellen, dass alle vier Tupel geändert werden. Löschanomalie: Was passiert wenn Fichte ihre einzige Vorlesung absagt? Zerlegung in zwei Relationen hören: {[MatrNr, VorlNr]} Studenten: {[MatrNr, Name, Semester]} Beide Relationen sind in 2 NF erfüllen sogar noch höhere Gütekriterien ~ Normalformen. 36

Dritte Normalform Derselbe Fakt soll nicht mehrfach gespeichert werden. D.h., kein Nichtschlüssel-Attribut soll einen Fakt einer Attributmenge darstellen, die kein Schlüssel ist. Def.: Ein Relationenschema R ist in dritter Normalform, wenn für jede für R geltende funktionale Abhängigkeit der Form α B mit B R mindestens eine von drei Bedingungen gilt: B α, d.h., die FD ist trivial. α ist Superschlüssel von R. Das Attribut B ist in einem Kandidatenschlüssel von R enthalten d.h. B ist prim. 37

Beispiel ProfessorenAdr: {[PersNr, Name, Rang, Raum, Ort, Straße, PLZ, Vorwahl, BLand, EW, Landesregierung]} mit den FDs 1. {PersNr} {Name, Rang, Raum, Ort, Straße, BLand} 2. {Raum} {PersNr} 3. {Straße, BLand, Ort} {PLZ} 4. {Ort,BLand} {EW, Vorwahl} 5. {BLand} {Landesregierung} 6. {PLZ} {BLand, Ort} ist nicht in 3NF, da z.b. {Ort,BLand} {Vorwahl} keine der drei Bedingungen der Definition erfüllt. 38

1. {PersNr} {Name, Rang, Raum, Ort, Straße, BLand} o.k., da {PersNr} ist (Super-)Schlüssel von R 2. {Raum} {PersNr} o.k., da {Raum} ist (Super-)Schlüssel von R und PersNr prim 3. {Straße, BLand, Ort} {PLZ} nicht o.k., da α kein (Super-)Schlüssel von R und PLZ nicht prim 4. {Ort,BLand} {EW, Vorwahl} nicht o.k., da α kein (Super-)Schlüssel von R und weder EW noch Vorwahl prim 5. {BLand} {Landesregierung} (nicht o.k.) 6. {PLZ} {BLand, Ort} (nicht o.k.) 39

Rang PersNr Raum Name Straße Ort BLand Landesregierung PLZ Vorwahl EW 40

Zerlegung mit dem Synthesealgorithmus Der Synthesealgorithmus ermittelt zu einem gegebenen Relationenschema R mit funktionalen Abhängigkeiten F eine Zerlegung in R 1,, R n, die die drei folgenden Kriterien erfüllt: R 1,, R n ist eine verlustlose Zerlegung von R. Die Zerlegung R 1,, R n ist abhängigkeitserhaltend. Alle R 1,, R n sind in dritter Normalform. 41

Synthesealgorithmus 1. Bestimme die kanonische Überdeckung F c zu F. (Wiederholung: a. Linksreduktion b. Rechtsreduktion c. Entfernung von FDs der Form α d. Zusammenfassung gleicher linker Seiten) 2. Für jede funktionale Abhängigkeit α β F c : Kreiere ein Relationenschema R α := α β Ordne R α die FDs F α := {α` β` F c α` β` R α } zu. 3. Falls eines der in Schritt 2. erzeugten Schemata einen Kandidatenschlüssel von R bzgl. F c enthält, sind wir fertig. Sonst wähle einen Kandidatenschlüssel κ R aus und definiere zusätzlich folgendes Schema: R κ := κ F κ := 4. Eliminiere diejenigen Schemata R α, die in einem anderen Relationenschema R α ` enthalten sind, d.h. für die R α R α` gilt. 42

Anwendung des Synthesealgorithmus ProfessorenAdr: {[PersNr, Name, Rang, Raum, Ort, Straße, PLZ, Vorwahl, BLand, EW, Landesregierung]} 1. 1. {PersNr} {Name, Rang, Raum, Ort, Straße, BLand} 2. {Raum} {PersNr} 3. {Straße, BLand, Ort} {PLZ} 4. {Ort,BLand} {EW, Vorwahl} 5. {BLand} {Landesregierung} 6. {PLZ} {BLand, Ort} 2. Professoren: {[PersNr, Name, Rang, Raum, Ort, Straße, BLand]} PLZverzeichnis: {[Straße, BLand, Ort, PLZ]} OrteVerzeichnis: {[Ort, BLand, EW, Vorwahl]} Regierungen: {[Bland, Landesregierung]} 43

Anwendung des Synthesealgorithmus Rang PersNr Raum Name Straße Ort BLand Landesregierung PLZ Vorwahl EW 44

Boyce-Codd-Normalform Die Boyce-Codd-Normalform (BCNF) ist eine Verschärfung der 3 NF. Sie soll vermeiden, dass Information mehrfach abgespeichert wird. Ein Relationenschema R mit FDs F ist in BCNF, wenn für jede für R geltende funktionale Abhängigkeit der Form α β F mindestens eine der zwei Bedingungen gilt: β α, d.h., die Abhängigkeit ist trivial α ist Superschlüssel von R. Man kann jede Relation verlustlos in BCNF-Relationen zerlegen. Manchmal lässt sich dabei die Abhängigkeitserhaltung aber nicht erzielen. (Deswegen ist neben BCNF auch die 3NF noch interessant.) 45

Städte ist in 3NF, aber nicht in BCNF Städte: {[Ort, BLand, Ministerpräsident/in, EW]} Geltende FDs: {Ort, BLand} {EW} (Super-)Schlüssel {BLand} {Ministerpräsident/in} Kandschlüssel! {Ministerpräsident/in} {BLand} Kandschlüssel! Schlüsselkandidaten: {Ort, BLand} {Ort, Ministerpräsident/in} Redundanz von wer regiert welches Bundesland! 46

Dekomposition Man kann grundsätzlich jedes Relationenschema R mit funktionalen Anhängigkeiten F so in R 1,, R n zerlegen, dass gilt: R 1,, R n ist eine verlustlose Zerlegung von R. Alle R 1,, R n sind in BCNF. Es kann leider nicht immer erreicht werden, dass die Zerlegung R 1,, R n abhängigkeitserhaltend ist. 47

Dekompositions-Algorithmus Starte mit Z = {R} Solange es noch ein Relationenschema R i in Z gibt, das nicht in BCNF ist, mache folgendes: Es gibt also eine für R i geltende nicht-triviale funktionale Abhängigkeit (α β) mit α β = (α R ) i Finde eine solche FD. Man sollte sie so wählen, dass β alle von α funktional abhängigen Attribute B (R i - α) enthält, damit der Dekompositionsalgorithmus möglichst schnell terminiert. Zerlege R i in R i1 := α β und R i2 := R i - β Entferne R i aus Z und füge R i1 und R i2 ein, also Z := (Z {R i }) {R i1 } {R i2 } 48

Veranschaulichung der Dekomposition Ri1 R i R i 2 β α γ = R i (α β) 49

Dekomposition der Relation Städte in BCNF-Relationen Städte: {[Ort, BLand, Ministerpräsident/in, EW]} Geltende FDs: {BLand} {Ministerpräsident/in} {Ort, BLand} {EW} {Ministerpräsident/in} {BLand} R i1 : Regierungen: {[BLand, Ministerpräsident/in]} R i2 : Städte: {[Ort, BLand, EW]} Diese Zerlegung ist verlustlos (und auch abhängigkeitserhaltend) 50

Dekomposition des PLZverzeichnis in BCNF-Relationen PLZverzeichnis: {[Straße, Ort, Bland, PLZ]} Funktionale Abhängigkeiten: {PLZ} {Ort, BLand} {Straße, Ort, BLand} {PLZ} Betrachte die Zerlegung Straßen: {[PLZ, Straße]} Orte: {[PLZ, Ort, BLand]} Diese Zerlegung ist verlustlos, aber nicht abhängigkeitserhaltend (siehe oben). 51

Mehrwertige Abhängigkeiten (MVDs) R α β γ A1 Ai Ai+1 Aj Aj+1 An t 1 t 2 t 3 t 4 a1 ai a1 ai a1 ai a1 ai ai+1 aj bi+1 bj bi+1 bj ai+1 aj aj+1 an bj+1 bn aj+1 an bj+1 bn Def.: Die mehrwertige Abhängigkeit α β gilt, wenn aus der Existenz zweier Tupel t 1 und t 2 mit gleichen α Werten die Existenz zweier Tupel t 3 und t 4 folgt mit t 3.α = t 4.α = t 1.α = t 2.α a α β γ = R t 3.β = t 1.β, t 4.β = t 2.β t 3.γ = t 2.γ, t 4.γ = t 1.γ 52

Many-Valued Dependencies (MVDs) Jede FD ist auch eine MVD. MVDs heissen auch Tuple-generating dependencies: Man kann eine Relation MVD-konform machen, indem man zusätzliche Tupel einfügt. (Bei FDs geht das nicht, da γ = {}, aber β trotzdem eindeutig sein muss für gegebenes α) 53

Mehrwertige Abhängigkeiten R A a a a a B b bb bb b C c cc c cc A B A C Tupel generation 54

Mehrwertige Abhängigkeiten: ein Beispiel PersNr 3002 3002 3002 3002 3005 Fähigkeiten Sprache griechisch lateinisch griechisch lateinisch deutsch Mehrwertige Abhängigkeiten dieser Relation: {PersNr} {Sprache} und {PersNr} {ProgSprache} MVDs führen zu Redundanz und Anomalien ProgSprache C Pascal Pascal C Ada 55

Mehrwertige Abhängigkeiten: ein Beispiel Fähigkeiten PersNr Sprache ProgSprache 3002 griechisch C 3002 lateinisch Pascal 3002 griechisch Pascal 3002 lateinisch C 3005 deutsch Ada ΠPersNr, Sprache PersNr Sprachen Sprache 3002 griechsich 3002 lateinisch 30005 deutsch ΠPersNr, ProgSprache PersNr Sprachen ProgSprache 3002 C 3002 Pascal 30005 Ada 56

Mehrwertige Abhängigkeiten: ein Beispiel PersNr Sprachen Fähigkeiten PersNr Sprache ProgSprache Sprache 3002 griechisch C 3002 lateinisch Pascal 3002 griechisch Pascal 3002 lateinisch C 3005 deutsch Ada 3002 griechsich 3002 C 3002 lateinisch 3002 Pascal 30005 deutsch 30005 Ada A PersNr Sprachen ProgSprache 57

Beispiel (Fortsetzung) Stammbaum Kind Sofie Vater Alfons Mutter Sabine Opa Lothar Oma Linde Sofie Alfons Sabine Hubert Lisa Niklas Alfons Sabine Lothar Linde Niklas Alfons Sabine Hubert Lisa Lothar Martha 58

Beispiel (Fortsetzung) Kind Sofie Sofie Niklas Niklas Vater Alfons Alfons Alfons Alfons Stammbaum Mutter Sabine Sabine Sabine Sabine Opa Lothar Hubert Lothar Hubert Lothar Oma Linde Lisa Linde Lisa Martha Kind Vater,Mutter Kind,Opa Oma Kind,Oma Opa V,M K V,M MVDs Opa,Oma? 59

Beispiel (Fortsetzung) Stammbaum Kind Sofie Vater Alfons Mutter Sabine Opa Lothar Oma Linde Sofie Alfons Sabine Hubert Lisa Niklas Alfons Sabine Lothar Linde Niklas Alfons Sabine Hubert Lisa Lothar Martha Kind Vater,Mutter Kind,Opa Oma Kind,Oma Opa V,M K V,M Opa,Oma 60

Verlustlose Zerlegung bei MVDs: hinreichende + notwendige Bedingung R = R 1 R 2 R 1 := Π R1 (R) R 2 := Π R2 (R) Die Zerlegung von R in R 1 und R 2 ist verlustlos, falls für jede mögliche (gültige) Ausprägung R von R gilt: R = R 1 A R 2 Die Zerlegung von R in R 1 und R 2 ist verlustlos genau dann wenn R = R 1 R 2 und mindestens eine von zwei MVDs gilt: (R 1 R 2 ) R 1 oder (R 1 R 2 ) R 2 61

Inferenzregeln für MVDs 62

Inferenzregeln für MVDs (Forts.) 63

Triviale MVDs Def.: Eine MVD ist trivial, wenn sie von jeder Relationenausprägung erfüllt wird. Satz: Eine MVD α β ist trivial genau dann wenn β αoder β = R - α. 4. Normalform Def.: Eine Relation R ist in 4 NF, wenn für jede MVD α β eine der folgenden Bedingungen gilt: Die MVD ist trivial oder α ist Superschlüssel von R. 64

Dekomposition in 4 NF Starte mit der Menge Z := {R} Solange es noch ein Relationenschema R i in Z gibt, das nicht in 4NF ist, mache folgendes: Es gibt also eine für R i geltende nicht-triviale MVD (α β), für die gilt: α β = (α R i ) Finde eine solche MVD Zerlege R i in R i1 := α β und R i2 := R i - β Entferne R i aus Z und füge R i1 und R i2 ein, also Z := (Z {R i }) {R i1 } {R i2 } 65

Dekomposition in 4 NF 66

Zusammenfassung Die Verlustlosigkeit ist für alle Zerlegungsalgorithmen in alle Normalformen garantiert. Die Abhängigkeitserhaltung kann nur bis zur dritten Normalform garantiert werden. 67