Relationale Entwurfstheorie (Teil 2)

Ähnliche Dokumente
Informationssysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Sommersemester

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

Kapitel 11: Relationale Entwurfstheorie

Normalisierung II. Ziele

8. Tutorübung zu Grundlagen: Datenbanken

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

Kapitel 6 Relationale Entwurfstheorie. Funktionale Abhängigkeiten Normalformen Synthesealgorithmus Dekomposition Mehrwertige Abhängigkeiten

Zerlegung einer Relation

Datenbanken 6: Normalisierung

9. Relationale Entwurfstheorie. Vorlesung "Informationssysteme" Sommersemester 2017

Übung 9. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

3. Normalform. Redundanz: Land mehrfach gespeichert Anomalien?

Rückblick: Relationale Entwurfstheorie

Rückblick: Relationales Modell

Datenbanken 6: Normalisierung

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

5. Relationale Entwurfstheorie

Normalisierung I. Ziele

Grundlagen: Datenbanken

Übung Datenbanksysteme Normalformen

Aufgabe 7. Sei die Schema R(A, B, C, D, E) mit folgenden fkt. Abh.:

Kapitel DB:VII (Fortsetzung)

Entwurfstheorie relationaler Datenbanken 7. Entwurfstheorie relationaler Datenbanken

Themenübersicht Relationale Entwurfstheorie. Inhalt

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

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

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

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

Kapitel 7: Normalformen

Kapitel 7: Normalformen

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

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

S.Müllenbach Datenbanken Informationsanalyse Normalformen- 1. Kurse. Name TNR ...

Datenbanken Unit 5: Funktionale Abhängigkeit

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

2. Übungsblatt 3.0 VU Datenmodellierung

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

Datenbanken Unit 7: Normalisierung ctd.

2. Übungsblatt 3.0 VU Datenmodellierung

Wiederholung VU Datenmodellierung

Kapitel 7: Normalformen

Relationale Entwurfstheorie. Kapitel / 510

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

9. Logischer DB-Entwurf

Wiederholung VU Datenmodellierung

Datenhaltung. Sommersemester Relationale Algebra Join Entity Relationship Model Kardinalitäten... 2

7.1.2 Membership-Test - fortgesetzt

Kapitel 3: Datenbanksysteme

Normalisierung (Dekomposition)

Eigenschaften von Datenbanken, insbesondere

Wie sieht ein gutes konzeptionelles Schema der Datenbank aus? Wie kann die Güte eines Datenbankschemas beurteilt werden?

Wir haben folgende Ausprägung der Relation Studenten:

Datenbanken und SQL. Kapitel 3. Datenbankdesign Teil 1: Normalformen. Edwin Schicker: Datenbanken und SQL

Grundlagen: Datenbanken

Kapitel 7: Formaler Datenbankentwurf

Datenbanksysteme 1 Sommersemester Juni 2006

Introduction to Data and Knowledge Engineering

Normalformen. Was sind Kriterien eines guten Entwurfs? So wenig Redundanz wie möglich. Keine Einfüge-, Lösch-, Änderungsanomalien

2.4 Einführung in die Design Theorie

Transkript:

Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken (Teil 2) Dr. Gerd Gröner Wintersemester 2013/14

Gliederung Funktionale Abhängigkeiten Dekomposition der Relationenschemata: Verlustlosigkeit und Abhängigkeitsbewahrung Normalformen Erste Normalform Zweite Normalform Dritte Normalform, Zerlegung mit dem Synthesealgorithmus Boyce Codd Normalform (BCNF), Dekompositions- Algorithmus 2 2

Wozu Normalformen? Bisherige Beobachtungen: Auftreten von Anomalien Unnötiger Speicherbedarf Redundanzen Mögliche Probleme: Änderungen führen zu inkonsistenten Daten Idee: Normalisierung Aufteilung von Attributen einer Relation auf mehrere Relationen Vorgehensweise: Normalisierungsregeln Ansatz (nach Codd): Redundanzen sind vermeidbar, wenn FDs nur noch von Schlüsselkandidaten ausgehen 3

Normalformen: informeller Überblick 1NF: Das Modell ist strikt relational 2NF: 3NF: BCNF: Keine Abhängigkeiten von Teilschlüsseln Keine Kettenabhängigkeiten Keine Abhängigkeiten von Teilschlüssel, auch nicht in Kandidatenschlüssel 4NF: 5NF: Beschreibt mehrwertige Abhängigkeiten Relation lässt sich nicht weiter aufspalten, ohne dass Information verloren geht 4

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

Exkurs: NF2-Relationen Non-First Normal-Form-Relationen Geschachtelte Relationen (Oracle: Nested Tables) Eltern Vater Mutter Kinder Johann Johann Heinz Martha Maria Martha KName Else 5 Lucie 3 Theo 3 Josef 1 Cleo 9 KAlter 6

Zweite Normalform (2NF) Eine Relation R mit zugehörigen FDs F R ist in zweiter Normalform, falls kein Nichtschlüssel-Attribut A R voll funktional abhängig ist von einer Teilmenge eines Kandidatenschlüssels. α R ist StudentenBelegung Kandidatenschlüssel: α R MatrNr VorlNr Name Semester (ist minimal) 26120 5001 Fichte 10 27550 5001 Schopenhauer 6 27550 4052 Schopenhauer 6 28106 5041 Carnap 3 28106 5052 Carnap 3 28106 5216 Carnap 3 28106 5259 Carnap 3......... Studentenbelegung ist nicht in 2NF, denn es gilt: {MatrNr} {Name} {MatrNr} {Semester} ABER: {MatrNr, VorlNr} ist Kandidatenschlüssel (minimal), nicht {MatrNr} 7

Zweite Normalform: Beispiel 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? Lösung: Zerlegung in zwei Relationen hören: {[MatrNr, VorlNr]} Studenten: {[MatrNr, Name, Semester]} Beide Relationen sind in 2NF 8

Dritte Normalform (3NF) Ein Relationenschema R ist in dritter Normalform, wenn es in 2NF ist und kein Nichtschlüsselattribut transitiv von einem Schlüsselkandidaten abhängt. Dies bedeutet: 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 oder Das Attribut B ist ein Schlüsselattribut oder α ist Superschlüssel von R 9

Dritte Normalform (3NF) Studenten MatrNr Fachbereich Standort Name Semester 26120 Informatik Koblenz Fichte 4 27550 Informatik Koblenz Meyer 8 27551 Psychologie Landau Carnap 5 Studenten ist nicht in 3NF {Fachbereich} {Standort} 10

Bsp. für Nicht 3NF (Wdh.) ProfessorenAdr: {[PersNr, Name, Rang, Raum, Ort, Straße, PLZ, Vorwahl, BLand, EW, Landesregierung]} Rang PersNr Name Straße PLZ Raum Ort Kandidatenschlüssel? BLand Vorwahl - {PersNr} - {Raum} Landesregierung EW 11

Zerlegung von R Synthesealgorithmus Ziel: Zerlegung von R mit vorgegebenen FDs F in R 1,..., R n, wobei folgende Kriterien erfüllt sind: Zerlegung von R in R 1,..., R n erfolgt verlustlos Zerlegung R 1,..., R n ist abhängigkeitserhaltend Alle R 1,..., R n sind in 3NF 12

Synthesealgorithmus 1) Bestimme die kanonische Überdeckung Fc 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 α β Fc: Sei R α := α β Ordne R α die FDs F α := {α' β' Fc α' β' R α } zu. 3) Falls eines der in Schritt 2. erzeugten Schemata einen Kandidatenschlüssel von R bzgl. Fc enthält, sind wir fertig. Sonst wähle einen Kandidatenschlüssel k R aus und definiere folgendes Schema: R k := k F k := 4) Eliminiere diejenigen Schemata R α, die in einem anderen Relationenschema Rα' enthalten sind, d.h., R α R α' d.h. aus jeder FD wird ein Schema UND Zuordnung von FDs d.h. erzeuge ein Schema zum Verknüpfen der Teilschemata 13

Anwendung Synthesealgorithmus ProfessorenAdr: {[PersNr, Name, Rang, Raum, Ort, Straße, PLZ, Vorwahl, BLand, EW, Landesregierung]} FDs von F C (nach Schritt 1): fd1: {PersNr} {Name, Rang, Raum, Ort, Straße, BLand} fd2: {Raum} {PersNr} fd3: {Straße, BLand, Ort} {PLZ} fd4: {Ort, BLand} {EW, Vorwahl} fd5: {BLand} {Landesregierung} fd6: {PLZ} {BLand, Ort In Schritt 2 werden diese 6 FDs sukzessive behandelt: Aus fd1 folgt Schemata: Professoren: {[PersNr, Name, Rang, Raum, Ort, Straße, BLand]} Mit fd1 und fd2 (fd2 selbst liefert keine neuen FDs (sind hier schon enthalten)) Aus fd3 folgt: PLZverzeichnis: {[Straße, BLand, Ort, PLZ]} Mit zugeordneten Fds fd3 und fd6 Aus fd4 resultiert: OrteVerzeichnis: {[Ort, BLand, EW, Vorwahl]} (mit nur einer zugeordneten FD nämlich fd 4 selbst) Aus fd5 folgt: Regierungen: {[BLand, Landesregierung]} Mit nur dieser FD selbst fd 6 liefert nichts neues (alle Attribute in fd6 kommen bereits in Relation PLZverzeichnis vor) In Schritt 3 passiert nichts neues. Kandidatenschlüssel {PersNr} (oder {Raum}) ist bereits Schlüssel in einer der Relationen (nämlich in Professoren). 14

Boyce-Codd-Normalform (BCNF) BCNF ist eine weitere Verschärfung der 3NF Ziel: Informationseinheiten (Fakten) nur einmal zu speichern. Ein Relationenschema R mit FDs F ist in BCNF, wenn für jede für R geltende funktionale Abhängigkeit der Form α β F gilt: entweder β α, d.h., die Abhängigkeit ist trivial, oder α ist ein Superschlüssel von R D.h. in BCNF gilt, dass alle FDs durch Schlüssel impliziert sind. Man kann jede Relation verlustlos in BCNF-Relationen zerlegen Manchmal lässt sich dabei die Abhängigkeiterhaltung aber nicht erzielen 15

Beispiel: Relation in 3NF, aber nicht in BCNF Städte: {[Ort, BLand, Ministerpräsident, EW]} Geltende FDs: fd1: {Ort, BLand} {EW} fd2: {BLand} {Ministerpräsident} fd3: {Ministerpräsident} {BLand} Kandidatenschlüssel: {Ort, BLand} {Ort, Ministerpräsident} Die rechten Seiten von fd2 und fd3 sind bereits in Schlüsselkandidaten enthalten. ABER: linke Seiten von fd2 und fd3 sind keine Superschlüssel! Diese FDs werden nicht durch Schlüssel impliziert Folge: Wir könnten mehrfach abspeichern, wer welches BLand regiert! 16

Zerlegung in BCNF-Teilrelationen 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 17

Dekompositionsalgorithmus 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 } 18

Dekompositionsalgorithmus (2) das Prinzip des Dekompositionsalgorithms Zerlegung von Relationenschema R i in R i1 und R i2 entlang der FD α β R i1 R i2 β α R i ( α β) 19

Dekomposition der Relation Städte Städte: {[Ort, BLand, Ministerpräsident, EW]} Geltende FDs: {BLand} {Ministerpräsident} {Ort, BLand} {EW} {Ministerpräsident} {Bland} Zerlegung entlang FD {BLand} {Ministerpräsident}: R i1 : Regierungen: {[BLand, Ministerpräsident]} R i2 : Städte: {[Ort, BLand, EW]} Zerlegung ist verlustlos und auch abhängigkeitserhaltend 20

Dekomposition der Relation Städte veranschaulicht Zerlegung von Relationenschema {[Ort, BLand, Ministerpräsident, EW]} in R i1 und R i2 entlang D Zerlegung entlang FD {BLand} {Ministerpräsident}: R i1 R i2 β α R i ( α β) {Ministerpräsident} {BLand} {Ort, EW} 21

Dekomposition des PLZverzeichnis in BCNF fd2 PLZverzeichnis: {[Straße, Ort, BLand, PLZ]} verletzt BCNF Zerlegung entlang fd2 Funktionale Abhängigkeiten: {PLZ} {Ort, BLand} {Straße, Ort, BLand} {PLZ} Betrachte die Zerlegung Orte: {[PLZ, Ort, BLand]} Straßen: {[PLZ, Straße]} Diese Zerlegung ist verlustlos aber Nicht abhängigkeitserhaltend fd1 oft Abwägung zwischen 3NF und BCNF mit Abhängigkeitsverlust 22

Zerlegung der Relation PLZverzeichnis PLZverzeichnis Ort BLand Straße PLZ Frankfurt Hessen Goethestrasse 60313 Frankfurt Hessen Galgenstrasse 60437 Frankfurt Brandenburg Goethestrasse 15234 Straßen := π [PLZ, Straße] (PLZverzeichnis) PLZ Straße 15234 Goethestrasse 60313 Goethestrasse 15235 Goethestrasse 60437 Galgenstrasse Orte := π [Ort, BLand] (PLZverzeichnis) Ort BLand PLZ Frankfurt Hessen 60313 Frankfurt Hessen 60437 Frankfurt Brandenburg 15234 Frankfurt Brandenburg 15235 23

Zerlegung der Relation PLZverzeichnis Straßen := π [PLZ, Straße] (PLZverzeichnis) PLZ Straße 15234 Goethestrasse 60313 Goethestrasse 15235 Goethestrasse 60437 Galgenstrasse Strassen Orte Orte := π [Ort, BLand] (PLZverzeichnis) Ort BLand PLZ Frankfurt Hessen 60313 Frankfurt Hessen 60437 Frankfurt Brandenburg 15234 Frankfurt Brandenburg 15235 Ort BLand Straße PLZ Frankfurt Hessen Goethestrasse 60313 Frankfurt Hessen Galgenstrasse 60437 Frankfurt Brandenburg Goethestrasse 15235 Frankfurt Brandenburg Goethestrasse 15234 Die Relationale FD Entwurfstheorie {Straße, Ort, BLand} {PLZ} wird verletzt 24

Fragen? groener@uni-koblenz.de http://west.uni-koblenz.de/teaching/ws1314/gldb1314 25