Ziele der relationalen Entwurfstheorie  Bewertung der Qualität eines Relationenschemas  Redundanz  Einhaltung von Konsistenzbedingungen  Funktionaler.

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 6 Relationale Entwurfstheorie
Advertisements

Organisatorisches Kapitel 6 Relationale Entwurfstheorie Funktionale Abhängigkeiten Normalformen Normalisierung durch Dekomposition.
Mehrwertige Abhängigkeiten (1)
Prof. Dr. T. Kudraß1 Logischer DB-Entwurf. Prof. Dr. T. Kudraß2 Entwurf eines relationalen DB-Schemas Ziel: –Regeln für die Umsetzung eines ER-Modells.
Relationaler Datenbankentwurf (II)
Normalisierung II Lehr- und Forschungseinheit Datenbanken und Informationssysteme.
[01] - ERM Modellierung I Basiselemente von E-R-Diagrammen kennen
Kapitel 6 Relationale Entwurfstheorie
Relationale Entwurfstheorie
Grundlagen Datenbanken
Übung 6.1Turing-Maschine 1.Machen Sie sich mit der Funktionsweise des Busy Beaver-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tabelle.
Kapitel 11: Relationale Entwurfstheorie
Kapitel 11: Relationale Entwurfstheorie
Relationentheorie AIFB SS Algorithmen zur Bildung von 3NF-Relationsschemata Algorithmen zur Bildung von 3NF-Relationsschemata (2|8) (2)Synthese.
Grundsätzliche Resultate Theorem: Für jeden Relationstyp R(A 1,...,A n ) und jede Menge von FDs über {A 1,...,A n } gibt es: –eine verlustlose (aber nicht.
Algorithmus zur Zerlegung in 3NF (1)
Zerlegung und Konstruktion Frage 2: Welche Zerlegungen sind korrekt? Zerlegung ersetzt Relationstyp R(A 1,...,A n ) und Menge von assoziierten Abhängigkeiten.
SS 2013 – IBB4B Datenmanagement Fr 17:00 – 18:30 R Vorlesung #5 Relationale Entwurfstheorie.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Kapitel 6 Relationale Entwurfstheorie
SS 2011 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #5 Relationale Entwurfstheorie.
SS 2009 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung Normalformen.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Normalisierungsprozess
Dritte Normalform Relationstyp R(A1,...,An) und Menge  von FDs und MVDs für R sei im Folgenden fest vorgegeben. R ist in dritter Normalform (3NF), wenn.
Relationentheorie  AIFB SS Zerlegung Zerlegung (1|6) 1.Die funktionalen Abhängigkeiten müssen erhalten bleiben („fA-erhaltend“). 2.Die.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #5 Relationale Entwurfstheorie.
IS: Datenbanken, © Till Hänisch 2000 Entwurfstheorie Normalisierung oder "Wie man sich Ärger erspart"
Übungsart: Seite: Bearbeitet von: Siegbert Rudolph Lesemotivationstraining Titel: Quelle: Nächste Seite 1 Bedienungshinweise: Mit einem Klick geht es immer.
Datenbanken Relationale Entwurfstheorie Ralf Möller Universität zu Lübeck Institut für Informationssysteme.
Kapitel 6 Relationale Entwurfstheorie Funktionale Abhängigkeiten Normalformen Normalisierung durch Dekomposition.
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
SZ Neustadt, Delmestraße 141B, Bremen 1 Datenbanken Datenbank = Datenbankprogramm + Daten Datenbankprogramm = Datenbankmanagementsystem (DBMS) = System,
Anomalien und Normalformen. Was ist ein gutes Datenbankschema?
FIEGE INNOVATION CHALLENGE Fragebogen. FIEGE INNOVATION CHALLENGE - FRAGEBOGEN Vision – Kurzbeschreibung der Geschäftsidee Wie geht‘s und was ist zu beachten?
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #5 Relationale Entwurfstheorie
Das Problem des Handlungsreisenden
Logisches Datenmodell
Deterministische Kellerautomaten und das Wortproblem
Abiturprüfung Mathematik 2012 Baden-Württemberg Allgemeinbildende Gymnasien Pflichtteil Lösungen
Titel: Quelle: Übungsart: Titel: Quelle: Silbenübung Nina lernt lesen
Ihre Firmenbroschüre Dies ist ein großartiger Platz für Ihre Leitlinien. Sie können diese frische, professionelle Broschüre wie vorliegend verwenden.
Relationale Datenbankmanagement-Systeme
Vorlesung #5 Überführung (Fortsetzung) / Normalformen
Datenbanken Das Relationale Datenmodell
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Kapitel 6 Relationale Entwurfstheorie
Einführung in die Differentialrechnung
Wiederholung Breitensuche BFS mit Startknoten s Tiefensuche
Einführung in die Differentialrechnung
Titel: Quelle: Übungsart: Titel: Quelle: Uhr Die Uhr lesen lernen
Arten von Kontrollstrukturen
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
9. Vererbung und Polymorphie
Studiengang BWL FHDW Vorlesung: Betriebliche Informationssysteme II
Pflichtteil 2016 Aufgabe 6: Gegeben ist die Gerade
Das Vektorprodukt Wir definieren erneut eine Multiplikation zwischen zwei Vektoren, das Vektorprodukt, nicht zu verwechseln mit dem Skalarprodukt. Schreibe.
Wissenschaftliches Projekt
Das Mayonaisenglas + der Kaffee
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
Lage, Schnitte und Schnittwinkel
§11 Skalarprodukt. Euklidische Räume
Spiegelungen Punkt an Gerade Punkt an Ebene Gerade an Ebene
Amateur Radio Direction Finding
Abiturprüfung Mathematik 2015 Baden-Württemberg Allgemeinbildende Gymnasien Wahlteil Analytische Geometrie / Stochastik Aufgabe B 2.1 und B Lösungen.
Zusammengesetzte Ereignisse
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Ziele der relationalen Entwurfstheorie  Bewertung der Qualität eines Relationenschemas  Redundanz  Einhaltung von Konsistenzbedingungen  Funktionaler Abhängigkeiten  Normalformen als Gütekriterium  Verbesserung eines bestehenden Relationenschemas  Durch den Synthesealgorithmus  Durch den Dekompositionsalgorithmus  Konstruktion eines guten Relationenschemas  Ausgangspunkt: Universelle Relation  Verbesserung durch Synthese-/Dekompositionsalgorithmus

Funktionale Abhängigkeiten  Schema  R = {A, B, C, D}  Ausprägung R  Seien  R,  R   genau dann wenn  r, s  R mit r.  = s.   r.  = s.  R ABCD a4b2c4d3 a1b1c1d1 a1b1c1d2 a2b2c3d2 a3b2c4d3 {A}  {B} {C, D }  {B} Nicht: {B}  {C} Notationskonvention: CD  B

Beispiel Stammbaum KindVaterMutterOpaOma SofieAlfonsSabineLotharLinde SofieAlfonsSabineHubertLisa NiklasAlfonsSabineLotharLinde NiklasAlfonsSabineHubertLisa... LotharMartha ……………

Beispiel  Kind  Vater,Mutter  Kind,Opa  Oma  Kind,Oma  Opa Stammbaum KindVaterMutterOpaOma SofieAlfonsSabineLotharLinde SofieAlfonsSabineHubertLisa NiklasAlfonsSabineLotharLinde NiklasAlfonsSabineHubertLisa... LotharMartha ……………

Schlüssel   R ist ein Super-Schlüssel, falls Folgendes gilt:   R   ist voll funktional abhängig von  genau dann, wenn gilt:   und   kann nicht mehr verkleinert werden, d.h.   A   folgt, dass (  nicht gilt, oder kürzer   A   (   Notation für volle funktionale Abhängigkeit:      R ist ein Kandidaten-Schlüssel, falls folgendes gilt:     R

Schlüsselbestimmung  Kandidaten-schlüssel von Städte:  {Name,BLand}  {Name,Vorwahl}  Beachte, dass 2 kleinere Städte dieselbe Vorwahl haben können Städte NameBLandVorwahlEW FrankfurtHessen FrankfurtBrandenburg MünchenBayern PassauBayern

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}

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

Bestimmung funktionaler Abhängigkeiten (zusätzliche Übung)

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 

Beweis Vereinigungsregel  Voraussetzung:  und   Behauptung:   Beweis:  (Voraussetzung)  (Verstärkung)  (Voraussetzung)  (Verstärkung)  (Transitivität mit (4) und (2)) qed

Bestimmung der Hülle einer Attributmenge  Eingabe: eine Menge F von FDs und eine Menge von Attributen   Ausgabe: die vollständige 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  Übung: Beweis, dass Algo terminiert und deterministisch ist.

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

Beispiel: Hülle von PLZ (Folie 8)

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.

Berechnung der kanonischen Überdeckung 1.Führe für jede FD   F die Linksreduktion durch, also:  Ü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, also:  Ü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 mittels der Vereinigungsregel FDs der Form       n zusammen, so dass   (  ...   n) verbleibt.

Korrektheit des Algorithmus (Ausschnitt für Linksreduktion)  Vor.:   AttrH(F,  - A)  Beh.:  AttrH(F-{  }  (  - A) ,  - A)  AttrH(F,  - A)  Bew.: sei   AttrH(F-{  }  (  - A) ,  - A)   AttrH(F,  - A  ) (Anwendung der FD (  - A)  )   AttrH(F,  - A) (Anwendung der Vor.) qed

„Schlechte“ Relationenschemata  Update-Anomalien  Sokrates zieht um, von Raum 226 in R Was passiert?  Einfüge-Anomalien  Neue/r Prof ohne Vorlesungen?  Löschanomalien  Letzte Vorlesung einer/s Profs wird gelöscht? Was passiert? ProfVorl PersNrNameRangRaumVorlNrTitelSWS 2125SokratesC Ethik4 2125SokratesC Mäeutik2 2125SokratesC Logik PopperC Der Wiener Kreis2 2137KantC474630Die 3 Kritiken4

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 R1,..., Rn der neuen Relationenschemata R 1,.., R n rekonstruierbar sein. 2.Abhängigkeitserhaltung  Die für R geltenden funktionalen Anhängigkeiten müssen auf die Schemata R 1,..., R n übertragbar sein.

Kriterien für die Verlustlosigkeit einer Zerlegung  R = R 1  R 2  R1 := Π R 1 (R)  R2 := Π R 2 (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 = R1 A R2  Hinreichende Bedingung für die Verlustlosigkeit einer Zerlegung  ( R 1  R 2)  R 1 oder  ( R 1  R 2)  R 2  Übung: Beweis!  Welche „Richtung“ ist schwieriger? R R 1   R 2 

Biertrinker-Beispiel Biertrinker KneipeGastBier KowalskiKemperPils KowalskiEicklerHefeweizen InnstegKemperHefeweizen

„Verlustige“ Zerlegung Biertrinker KneipeGastBier KowalskiKemperPils KowalskiEicklerHefeweizen InnstegKemperHefeweizen Besucht KneipeGast KowalskiKemper KowalskiEickler InnstegKemper Trinkt GastBier KemperPils EicklerHefeweizen KemperHefeweizen  Gast, Bier  Kneipe, Gast

Biertrinker KneipeGastBier KowalskiKemperPils KowalskiEicklerHefeweizen InnstegKemperHefeweizen Besucht KneipeGast KowalskiKemper KowalskiEickler InnstegKemper Trinkt GastBier KemperPils EicklerHefeweizen KemperHefeweizen .... Besucht A Trinkt KneipeGastBier KowalskiKemperPils KowalskiKemperHefeweizen KowalskiEicklerHefeweizen InnstegKemperPils InnstegKemperHefeweizen 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?)

Verlustfreie Zerlegung Eltern VaterMutterKind JohannMarthaElse JohannMariaTheo HeinzMarthaCleo Väter VaterKind JohannElse JohannTheo HeinzCleo Mütter MutterKind MarthaElse MariaTheo MarthaCleo  Mutter, Kind  Vater, Kind

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 (~Normalform) ist

Abhängigkeitsbewahrung  R ist zerlegt in R 1,..., R n  F R = (F R 1 ...  F R n ) bzw F R + = (F R 1 ...  F R n )+  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]}

Zerlegung der Relation PLZverzeichnis PLZverzeichnis OrtBLandStraßePLZ FrankfurtHessenGoethestraße60313 FrankfurtHessenGalgenstraße60437 FrankfurtBrandenburgGoethestraße15234 Straßen PLZStraße 15234Goethestraße 60313Goethestraße 60437Galgenstraße Orte OrtBLandPLZ FrankfurtHessen60313 FrankfurtHessen60437 FrankfurtBrandenburg15234  Stadt,Bland,PLZ  PLZ,Straße Die FD {Straße, Ort, BLand}  {PLZ} ist im zerlegten Schema nicht mehr enthalten  Einfügen inkonsistenter Tupel möglich

Einfügen zweier Tupel, die die FD Ort,Bland,Straße  PLZ verletzen PLZverzeichnis OrtBLandStraßePLZ FrankfurtHessenGoethestraße60313 FrankfurtHessenGalgenstraße60437 FrankfurtBrandenburgGoethestraße15234 Straßen PLZStraße 15234Goethestraße 60313Goethestraße 60437Galgenstraße 15235Goethestrasse Orte OrtBLandPLZ FrankfurtHessen60313 FrankfurtHessen60437 FrankfurtBrandenburg15234 FrankfurtBrandenburg15235  Stadt,Bland,PLZ  PLZ,Straße

Einfügen zweier Tupel, die die FD Ort,Bland,Straße  PLZ verletzen PLZverzeichnis OrtBLandStraßePLZ FrankfurtHessenGoethestraße60313 FrankfurtHessenGalgenstraße60437 FrankfurtBrandenburgGoethestraße15234 FrankfurtBrandenburgGoethestraße15235 Straßen PLZStraße 15234Goethestraße 60313Goethestraße 60437Galgenstraße 15235Goethestrasse Orte OrtBLandPLZ FrankfurtHessen60313 FrankfurtHessen60437 FrankfurtBrandenburg15234 FrankfurtBrandenburg15235 A

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

Erste Normalform  Nur atomare Domänen  1 NF (implementierbar in SQL92) Eltern VaterMutterKinder JohannMartha{Else, Lucie} JohannMaria{Theo, Josef} HeinzMartha{Cleo} Eltern VaterMutterKind JohannMarthaElse JohannMarthaLucie JohannMariaTheo JohannMariaJosef HeinzMarthaCleo

Exkurs: NF 2 -Relationen  Non-First Normal-Form-Relationen  Geschachtelte Relationen  (Unterstützt von einigen moderen DB Produkten! Doch für die Theorie sollten wir das jetzt ignorieren.) Eltern VaterMutterKinder KNameKAlter JohannMarthaElse5 Lucie3 JohannMariaTheo3 Josef1 HeinzMarthaCleo9

Zweite Normalform  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.  Studentenbelegung ist nicht in zweiter NF  {MatrNr}  {Name}  {MatrNr}  {Semester} StudentenBelegung MatrNrVorlNrNameSemester Fichte Schopenhauer Schopenhauer Carnap Carnap Carnap Carnap3...

Zweite Normalform  Einfügeanomalie: Was macht man mit Studenten, die keine Vorlesungenen 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. MatrNr VorlNr Name Semester

Dritte Normalform  Ein Relationenschema R ist in dritter Normalform, wenn für jede für R geltende funktionale Abhängigkeit der Form  mit B  R und mindestens eine von drei Bedingungen gilt:  B  , d.h., die FD ist trivial  Das Attribut B ist in einem Kandidatenschlüssel von R enthalten – also B ist prim   ist Superschlüssel von R   ist böse   bezeichnet ein Subkonzept von R  Dieses Subkonzept sollte in eine separaten Relation

Beispiel: Keine 3NF (aber in 2NF) Landesregierung Rang Name Straße Ort BLand PersNr Raum Vorwahl PLZ EW

Zerlegung mit dem Synthesealgorithmus  Wir geben jetzt einen sogenannten Synthesealgorithmus an, mit dem zu einem gegebenen Relationenschema R mit funktionalen Anhängigkeiten F eine Zerlegung in R 1,..., R n ermittelt wird, die alle 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.

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:  Kreiere ein Relationenschema 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   R aus und definiere folgendes Schema:  R   F  4.Eliminiere diejenigen Schemata R  die in einem anderen Relationenschema R  ` enthalten sind, d.h.,  R  R  `

Beispiel für Schritt 3  StudentenBelegung(MatrNr, VorlNr, Name, Semester)  kan. Überdeckung {MatrNr}  {Name, Semester}  Student(MatrNr, Name, Semester)  Schritt 3: hören(MatrNr, VorlNr)

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

Anwendung des Synthesealgorithmus  ProfessorenAdr: {[PersNr, Name, Rang, Raum, Ort, Straße, PLZ, Vorwahl, BLand, EW, Landesregierung]} 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}  Professoren: {[PersNr, Name, Rang, Raum, Ort, Straße, BLand]}  PLZverzeichnis: {[Straße, BLand, Ort, PLZ]}  OrteVerzeichnis: {[Ort, BLand, EW, Vorwahl]}  Regierungen: {[Bland, Landesregierung]}

PLZVerzeichnis(Straße, Bland, Ort, PLZ)  3NF erfüllt?  Kandidatenschlüssel: {Straße,Bland,Ort}, {PLZ,Straße}  Alle Attribute sind prim. Es gibt keine bösen FD!  Zerlegung ist abhängigkeitsbewahrend?  Ja! Alle Abhängikeiten sind weiter ausdrückbar.  Zerlegung ist verlustfrei?  Professoren  PLZVerzeichnis = {Straße,Bland,Ort}  {Straße,Bland,Ort} -> PLZVerzeichnis  Diese Zerlegung ist verlustfrei (s. Kriterium)  Andere Zerlegungen: analog  Ist PLZVerzeichnis redundanzfrei?

Übungen  Zeige: Synthesealgorithmus ist immer abhängigkeitsbewahrend.  Zeige: Synthesealgorithmus ist immer verlustfrei.  Zeige: Synthesealgorithmus liefert immer 3NF.  Zeige: Eine Relation in 3NF ist auch in 2NF.

Boyce-Codd-Normalform  Die Boyce-Codd-Normalform (BCNF) ist nochmals eine Verschärfung der 3 NF.  Ein Relationenschema R mit FDs F ist in BCNF, wenn für jede für R geltende funktionale Abhängigkeit der Form  F und mindestens eine von zwei Bedingungen gilt:  , d.h., die Abhängigkeit ist trivial oder   ist Superschlüssel von R  Man kann jede Relation verlustlos in BCNF-Relationen zerlegen  Manchmal läßt sich dabei die Abhängigkeiterhaltung aber nicht erzielen

PLZVerzeichnis(Straße, Bland, Ort, PLZ)  {PLZ}  {Bland, Ort} // böse  {Straße, Bland, Ort}  {PLZ} // okay  Redundanz in PLZVerzeichnis  (Rämistr., Zürich, Zürich, 8006)  (Univ.str., Zürich, Zürich, 8006)  (Schmid-Str., Zürich, Zürich, 8006)  Es ist mehrfach gespeichert, dass die 8006 zu Zürich gehört  Zerlegung?

Städte ist in 3NF, aber nicht in BCNF  Städte: {[Ort, BLand, Ministerpräsident/in, EW]}  Geltende FDs:  {Ort, BLand}  {EW}  {BLand}  {Ministerpräsident/in}  {Ministerpräsident/in}  {BLand}  Schlüsselkandidaten:  {Ort, BLand}  {Ort, Ministerpräsident/in}  Redundanzfreie und verlustfrei Zerlegung  {Ort, BLand, EW}  {BLand, Ministerpräsident/in} KölnNRWRütgers1mio BonnNRWRütgers200K AachenNRWRütgers200K

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.

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}

Veranschaulichung der Dekomposition RiRi R i 1   R i 2  R i –(  )

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 i 1:  Regierungen: {[BLand, Ministerpräsident/in]}  R i 2:  Städte: {[Ort, BLand, EW]}  Zerlegung ist verlustlos und auch abhängigkeitserhaltend

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

Mehrwertige Abhängigkeiten     gilt genau dann wenn  Wenn es zwei Tupel t1 und t2 mit gleichen  –Werten gibt  Dann muss es auch zwei Tupel t3 und t4 geben mit  t3.  = t4.  = t1.  = t2.   t3.  = t1.  t4.  = t2.   t3.  = t2.  t4.  = t1.  R  A1... Ai  Ai+1... Aj  Aj+1... An a1... aiai+1... ajaj+1... an a1... aibi+1... bjbj+1... bn a1... aibi+1... bjaj+1... an a1... aiai+1... ajbj+1... bn

MVDs  Tuple-generating dependencies  Man kann eine Relation MVD-konform machen, indem man zusätzliche Tupel einfügt  Bei FDs geht das nicht!!

Mehrwertige Abhängigkeiten  A  B  A  C R ABC abc abbcc abbc abcc

Mehrwertige Abhängigkeiten: ein Beispiel  Mehrwertige Abhängigkeiten dieser Relation:  {PersNr}  {Sprache} und  {PersNr}  {ProgSprache}  MVDs führen zu Redundanz und Anomalien Fähigkeiten PersNrSpracheProgSprache 3002griechischC 3002lateinPascal 3002griechischPascal 3002lateinC 3005deutschAda

Mehrwertige Abhängigkeiten: ein Beispiel Fähigkeiten PersNrSpracheProgSprache 3002griechischC 3002lateinPascal 3002griechischPascal 3002lateinC 3005deutschAda Sprachen PersNrSprache 3002griechsich 3002latein 3005deutsch Sprachen PersNrProgSprache 3002C Pascal 3005Ada  PersNr, Sprache  PersNr, ProgSprache

Mehrwertige Abhängigkeiten: ein Beispiel Fähigkeiten PersNrSpracheProgSprache 3002griechischC 3002lateinPascal 3002griechischPascal 3002lateinC 3005deutschAda Sprachen PersNrSprache 3002griechsich 3002latein 3005deutsch Sprachen PersNrProgSprache 3002C Pascal 3005Ada A

Verlustlose Zerlegung bei MVDs: hinreichende + notwendige Bedingung  R = R 1  R 2  R1 := Π R 1 (R)  R2 := Π R 2 (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 = R1 A R2  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

Inferenzregeln für MVDs

Inferenzregeln für MVDs (Forts.)

Triviale MVDs …  … sind solche, die von jeder Relationenausprägung erfüllt werden  Eine MVD    ist trivial genau dann wenn     oder   = R -   Übung: Beweise,    gilt falls  = R - 

Vierte Normalform  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  Übung: Beweise, dass jede funktionale Abhängigkeit auch eine mehrwertige Abhängigkeit ist. (Daraus folgt, jede Relation in 4NF ist auch in BCNF.)

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}

Dekomposition in 4 NF

Beispiel-Zerlegung

Zusammenfassung  Die Verlustlosigkeit ist für alle Zerlegungsalgorithmen in alle Normalformen garantiert  Die Abhängigkeitserhaltung kann nur bis zur dritten Normalform garantiert werden (implementierbar in SQL92) Synthese- algorithmus Dekompositions- algorithmus

Übung: FDs, MVDs, Normalisierung

Weitere Übung: Familie  Familie: {[Opa, Oma, Vater, Mutter, Kind]}  Annahme: [Theo, Martha, Herbert, Maria, Else] bedeutet  Theo und Martha sind Eltern von Herbert oder  Theo und Martha sind Eltern von Maria  Abhängigkeiten:  K  V,M  K,Opa  Oma  K,Oma  Opa  V,M  K  V,M  Opa,Oma MVDs

Weitere Übung: Familie  Familie: {[Opa, Oma, Vater, Mutter, Kind]}  Annahme: [Theo, Martha, Herbert, Maria, Else] bedeutet  Theo und Martha sind Eltern von Herbert oder  Theo und Martha sind Eltern von Maria  Abhängigkeiten:  K  V,M  K,Opa  Oma  K,Oma  Opa  V,M  K  V,M  Opa,Oma

Beispiel  Kind  Vater,Mutter  Kind,Opa  Oma  Kind,Oma  Opa Stammbaum KindVaterMutterOpaOma SofieAlfonsSabineLotharLinde SofieAlfonsSabineHubertLisa NiklasAlfonsSabineLotharLinde NiklasAlfonsSabineHubertLisa TobiasLeoBerthaHubertMartha ……………

Weiteres Beispiel: 1:N & N:M Bez. R AB S CD T EF V GH 1 N N M N M UR: {[ A, B, C, D, E, F, G, H ]}