450 likes | 605 Vues
Kapitel 7. Relationale Entwurfstheorie. Lernziele. . Charakterisierung "guter" relationaler Schemata: jede Relation entspricht genau einer Objektmenge - eventuell unter Einbezug von N:1- oder 1:1-Relationships - oder genau einer Relationship-Menge zwischen Objekten
E N D
Kapitel 7 Relationale Entwurfstheorie
Lernziele • Charakterisierung "guter" relationaler Schemata: • jede Relation entspricht genau einer Objektmenge - eventuell unter Einbezug von N:1- oder 1:1-Relationships - oder genau einer Relationship-Menge zwischen Objekten - Redundanz ist eliminiert, alle Informationen sind repräsentierbar, und es treten keinerlei "Änderungsanomalien" auf a) Änderungen können bei Beachtung der Primärschlüssel- und Fremdschlüsselbedingung keine Inkonsistenzen hervorrufen b) alle Informationen lassen sich unter Wahrung der Primärschlüssel- und Fremdschlüsselbedingung (ohne "Kunstgriffe") einfügen c) Informationen können einzeln wieder gelöscht werden, ohne die Primärschlüssel oder Fremdschlüsselbedingung zu verletzen • Ausnahmen wenn „schlechte“ Schemata sinnvoll sind Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Erste Beispiel: „Schlechtes“ Datenbankschema • Warum ist das eine schlechte Idee? • Jeder für sich mit Zettel und Stift; 5 min Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Zu wenig Struktur • Pro Zelle darf immer nur ein Fakt stehen, sonst können diese nicht einzeln abgefragt werden. • … sonst können sie nicht einzeln referenziert werden. • … sonst können keine Zusatzinformationen zu den Fakten gespeichert werden. • … sonst werden Einfüge- und Löschoperationen einzelner Fakten zu komplexen Stringoperationen. • (Siehe auch die Probleme, die bei Aufgabenblatt 1 entstanden sind) • Wenn in jeder Zelle nur ein Fakt steht, heißt das • 1. Normalform Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Wie komme ich in die Erste Normalform? • Beispiel (falsch): • In 1 NF Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Aber … • … manchmal kann es sinnvoll sein, die Daten doch einfach so zu speichern. Zum Beispiel: • Die einzelnen Fakten stehen getrennt gar nicht zur Verfügung • müssten erst aufwändig getrennt werden • werden getrennt nicht benötigt (Achtung!!! Könnte sich ändern) • Weiterhin: • Im letzten Kapitel haben wir gesehen, dass es einen Mismatch zwischen relationalem Datenmodell und objektorientierten Datenmodell besteht. • Es gibt Datenbanken (objektrelationale), die es erlauben direkt Objekte und Listen zu speichern und dann auch darauf zuzugreifen. • Nachteil: Unterobjekte können nicht mehr direkt zugegriffen werden, es muss über die Oberobjekte navigiert werden. Das Schema wird komplexer, Anfragen werden schwieriger... Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Exkurs: NF2-Relationen • Non-First Normal-Form-Relationen • Geschachtelte Relationen (Oracle: Nested Tables) Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Beispiel 2: "Schlechte" Relationenschemata Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Beispiel 2: "Schlechte" Relationenschemata • 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? Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Beispiel 2: „Bessere" Relationenschemata • Sokrates zieht um, von Raum 226 in R. 338. Was passiert? Neue/r Prof ohne Vorlesungen? Letzte Vorlesung einer/s Profs wird gelöscht? Was passiert? • Mit den aufgeteilten Relationen treten die Anomalien nicht mehr auf. • Woher kann man wissen wann man aufteilen muss und wie und wann nicht? Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Funktionale Abhängigkeiten • Schema R= {A, B, C, D} • Ausprägung Q • Seien a R, b R • a b (gesprochen: a bestimmt b) genau dann wenn {A}{B} {C, D} {B} Nicht: {B}{C} Notationskonvention: CD B Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Beispiel Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Beispiel • Kind Vater, Mutter • Kind, Opa Oma • Kind, Oma Opa Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Bestimmung funktionaler Abhängigkeiten • Professoren: { PersNr, Name, Rang, Raum, Ort, Straße, PLZ, Vorwahl, Bland, EW, Landesregierung } • {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 } • Falle: • {Straße} {PLZ} gilt nicht, auch wenn es im konkreten Datensatz giltBeispiel: Hauptstraße • Funktionale Abhängigkeiten gelten nicht nur für den konkreten Datensatz, sondern sind von der Semantik der Relation abhängig • Weiteres Beispiel: {Vorname} {Geschlecht} • Gegenbeispiel: Kim Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Graphische Darstellung der funktionalen Abhängigkeiten Rang Name PersNr PLZ Straße Raum Ort BLand Vorwahl EW Landesregierung Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Normalformen: informeller Überblick • 1NF: „Geometrische Form“ der Tupel Die Zahl der Attribute in allen Tupeln der Relation ist identisch • 2NF, 3NF: Beziehungen zwischen Schlüsselattributen und Nicht-Schlüsselattributen (funktionale Abhängigkeiten) 2NF: verletzt, wenn ein nicht-Schlüsselattribut nicht von allen Schlüsselattributen funktional abhängt (Der Schlüssel ist aufteilbar) 3NF: verletzt, wenn ein nicht-Schlüsselattribut funktionale Abhängigkeit von einem anderen Nicht-Schlüsselattribut aufweist (Es gibt Unterschlüssel) 2NF und 3NF sind erfüllt, wenn jedes Attribut entweder Teil des Schlüssels ist oder funktional von dem ganzen Schlüssel (und nur von ihm) abhängt • BCNF: Verschärfung, um Anomalien durch teilweise überlappende Schlüsselkandidaten (möglich in 3NF) auszuschließen jede Determinante (Menge von Attributen, von denen einige anderen Attribute voll funktional abhängen) ist Schlüsselkandidat • 4NF: beschreibt mehrwertige Abhängigkeiten Es darf nicht mehrere, voneinander unabhängige, 1:n-Beziehungen in einer Relation geben • 5NF: Relation lässt sich nicht weiter aufspalten, ohne dass Information verloren geht Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Schlüssel • a Rist ein Super-Schlüssel, falls folgendes gilt: • a R • b ist voll funktional abhängig von a genau dann wenn gilt • a b und • a kann nicht mehr verkleinert werden, d.h. • Notation für volle funktionale Abhängigkeit: a b • a Rist ein Kandidaten-Schlüssel, falls folgendes gilt: • a R • Attribut B heißt Schlüsselattribut, wenn B in einem von Kandidaten-Schlüsseln a Rvorkommt Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Schlüsselbestimmung • Kandidaten-schlüssel von Städte: • {Name,BLand} • {Name,Vorwahl} • Keine Kandidaten-Schlüssel: {Vorwahl}, {Name} Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Zweite Normalform (2NF) • Eine Relation Rmit zugehörigen FDs FR ist in zweiter Normalform, falls jedes Nichtschlüssel-Attribut ARvoll funktional abhängig ist von jedem Kandidatenschlüssel der Relation. • Informell: Jedes Attribut hängt vom ganzen Schlüssel ab. • Studentenbelegung ist nicht in 2NF • {MatrNr} {Name} • {MatrNr} {Semester} • {MatrNr,VorlNr} {Name, Semester} Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Zweite Normalform: Beispiel • 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 beide 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 – erfüllen sogar noch „höhere“ Gütekriterien ~ Normalformen. MatrNr Name VorlNr Semester Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Dritte Normalform (3NF) • Ein RelationenschemaR ist in dritter Normalform, wenn für jede für Rgeltende funktionale Abhängigkeit der Form a Bmit B Rmindestens eine von drei Bedingungen gilt: • B a, d.h., die FD ist trivial oder • Das Attribut B ist ein Schlüsselattribut oder • a ist Superschlüssel von R • Informell: Die Nicht-schlüssel dürfen nicht untereinander abhängig sein. • Studenten ist nicht in 3NF • {Fachbereich} {Standort} Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Wie kann man die 3NF immer erreichen? • Ziel: • Zerlegung von R mit vorgegebenen FDs Fin R1, ..., Rn , wobei folgende Kriterien erfüllt sind: • Zerlegung von R in R1, ..., Rn erfolgt verlustlos. • Zerlegung R1, ..., Rn ist abhängigkeitserhaltend. • Alle R1, ..., Rn sind in 3NF • Synthesealgorithmus Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Zerlegung (Dekomposition) von Relationen • Korrektheitskriterien für die Zerlegung von Relationenschemata: • Verlustlosigkeit • Die in der ursprünglichen Relationenausprägung Q des Schemas R enthaltenen Informationen müssen aus den Ausprägungen Q1, ..., Qn der neuen Relationenschemata R1, .., Rnrekonstruierbar sein. • Abhängigkeitserhaltung • Die für R geltenden funktionalen Anhängigkeiten müssen auf die Schemata R1, ..., Rn übertragbar sein. Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Kriterien für die Verlustlosigkeit einer Zerlegung • Die Zerlegung von R in R1 und R2 ist verlustlos, falls für jede mögliche (gültige) Ausprägung Q gilt: • Hinreichende Bedingung für die Verlustlosigkeit einer Zerlegung R R1 • R2 g a b Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Biertrinker-Beispiel Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Biertrinker-Beispiel: Verlustige Zerlegung Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
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 • {Lokal,Gast} {Bier} • Wohingegen keine der zwei möglichen, die Verlustlosigkeit garantierenden FAs gelten • {Gast} {Bier} • {Gast} {Lokal} • Das liegt daran, dass die Leute (insbesondere Gniffke) in unterschiedlichen Lokalen unterschiedliches Bier trinken. In demselben Lokal aber immer das gleiche Bier • (damit sich die Kellner darauf einstellen können?) Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Verlustfreie Zerlegung Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
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 FAs, 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 Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Abhängigkeitsbewahrung • R ist zerlegt in R1, ..., Rn • FR = (FR1 ... FRn) bzw.FR+ = (FR1 ... FRn)+ • 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]} Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Zerlegung der Relation PLZverzeichnis • Die FD {Straße, Ort, BLand} {PLZ} ist im zerlegten Schema nicht mehr enthalten Einfügen inkonsistenter Tupel möglich Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Zerlegung der Relation PLZverzeichnis Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Zerlegung der Relation PLZverzeichnis Die FD {Straße, Ort, BLand} {PLZ} wird verletzt Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Boyce-Codd-Normalform (BCNF) • BCNF = eine weitere Verschärfung der 3NF. • Ein Relationenschema R mit FDs F ist in BCNF, wenn für jede für Rgeltende funktionale Abhängigkeit der Form a b F gilt: • entweder b a , d.h., die Abhängigkeit ist trivial, • oder a ist ein Superschlüssel von R • Man kann jede Relation verlustlos in BCNF-Relationen zerlegen • Manchmal lässt sich dabei die Abhängigkeiterhaltung aber nicht erzielen Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Beispiel: Relation 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} Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Dekomposition der Relation Städte in BCNF-Relationen • Städte: {[Ort, BLand, Ministerpräsident/in, EW]} • Geltende FAs: • {BLand} {Ministerpräsident/in} • {Ort, BLand} {EW} • {Ministerpräsident/in} {BLand} • Ri1: • Regierungen: {[BLand, Ministerpräsident/in]} • Ri2: • Städte: {[Ort, BLand, EW]} • Zerlegung ist verlustlos und auch abhängigkeitserhaltend Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
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 • Orte: {[PLZ, Ort, BLand]} • Straßen: {[PLZ, Straße]} • Diese Zerlegung • ist verlustlos aber • Nicht abhängigkeitserhaltend • {Straße, Ort, BLand} {PLZ} wird weder in Orte noch in Straßen komplett erfasst Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Zerlegung der Relation PLZverzeichnis Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Zerlegung der Relation PLZverzeichnis Die FA {Straße, Ort, BLand} {PLZ} wird verletzt Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Aber… • … manchmal möchte man doch, dass die Fakten in einer Relation zusammen stehen. • Warum??? Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Data Warehouse (ganz kurz) • Das Data Warehouse dient dem Reporting von wirtschaftsrelevanten Daten an z.B. das Management. • Ziel: Zu bestimmten Zeitpunkten alle relevanten Daten aus der Datenbank zu ziehen und dann für statistische Untersuchungen zur Verfügung zu stellen • Diese Daten werden typischerweise in nur ganz wenige Relationen geschrieben (Stichwort Sternschema), • da sie sich nicht ändern werden • da man sich so Joins bei den Abfragen spart • da man so automatisch statische Analysen laufen lassen kann Aus Wikipedia (Stern_Schema) Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Triplifizierung (vereinfacht) • Vor- und Nachteile? • Es ist alles in einer Tabelle • Es ist alles maximal normalisiert Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Triplifizierung (vereinfacht) • Woher weiß ich, ob die Daten überhaupt stimmen? • Woher weiß ich, was Daten sind und was zur Struktur gehört? Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Triplifizierung (und verwandte Methoden z.B. DOM) • Wird eingesetzt, wenn die Datenstruktur nicht bekannt ist oder sich noch ändern kann • Eindeutiger Vorteil ist die Vernetzbarkeit. Jemand anders kann seinen eigenen TripleStore einfach ankoppeln und schon hat man doppelt so viele Daten • Ein Nachteil ist die Überprüfung von Konsistenz • Was ist in dem Zusammenhang überhaupt eine Inkonsistenz? • A istInstanzVon B und B istInstanzVon A (schwierig) • A istKindVon B und B istKindVon C und C istKindVon A(schwierig zu berechnen) • Das Problem ist verwandt mit Logik • Weiterer Nachteil ist die Navigierbarkeit: • Beispiel: Gib alle Personen aus (erfordert transitive Hülle) • Es ist deutlich einfacher, wenn man die Prädikate und Typen von vornherein festlegt, leider auch weniger flexibel Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie
Fazit • Vorteile der Normalisierung • Es können keine Anomalien auftreten • Nachteil der Normalisierung • Unter Umständen werden Anfragen langsamer, da mehr Joins notwendig sind • Es gibt verschiedene Standardmodelle, die nicht normalisiert oder sogar übernormalisiert sind • Vor- und Nachteile sind im Einzelfall abzuwägen • ImNormalfall (z.B. in der Prüfung) gilt 3 NF ist am Besten Datenbanken für Mathematiker, WS 11/12 Kapitel 7: Relationale Entwurfstheorie