Relationaler Datenbankentwurf (II) Normalformenlehre 1
Funktionale Abhängigkeiten (1) X, Y Teilmengen von Attributen einer Relation R. Y heißt funktional abhängig von X, wenn für alle Tupel r, s aus R gilt aus ProjX(s) = ProjX(r) folgt stets: ProjY(s) = ProjY(r) oder anders: Alle Zeilen, deren Wert in X übereinstimmt, stimmen auch bezüglich ihres Wertes in Y überein. X Y liest man “X bestimmt Y”, Y ist funktional abhängig von X ProjX(s) bezeichnet die Projektion von s auf X.
Funktionale Abhängigkeiten (2)
Eindeutiger Schlüssel
Eindeutiger Schlüssel
Eindeutiger Schlüssel
Andere Schlüsselbegriffe (1) Eindeutiger Schlüssel Primärschlüssel Jede Relation besitzt genau einen Primärschlüssel ein eindeutiger Schlüssel wird auserwählt Fremdschlüssel ist Primärschlüssel in einer anderen Relation Zweitschlüssel dienen zum schnellen Zugriff über Spalten, die nicht zum Primärschlüssel gehören Suchbedingungen Join-Spalten
Andere Schlüsselbegriffe (2)
Erläuterungen zu den Schlüsseln Künstliche Schlüssel- Surrogate Keys Performancegewinne und Verluste durch Zweitschlüssel Gewinne beim Lesen Verluste beim Schreiben Größe der Tabellen bei Zweitschlüsseln: > 10.000 Tupel Fremdschlüssel oft Zweitschlüssel
Potentielle Inkonsistenz schwer zu handhaben Einfügeanomalien Normalformen Schlechte Datenbankschemas sind gekennzeichnet durch: Viele Redundanzen Unübersichtlichkeit Potentielle Inkonsistenz schwer zu handhaben Einfügeanomalien Löschanomalien
Normalformen (2)
1. Normalform (1NF) Eine Relation R ist (1NF), wenn alle Attribute nur atomare Werte enthalten.
2. Normalform (2NF) Eine Relation R mit Primärschlüssel S ist (2NF), wenn sie (1NF) ist und jedes Nicht-Schlüssel-Attribut funktional abhängig vom Primärschlüssel S ist.
Beispiel zu 2NF
Transitive Abhängigkeit X, Y und Z paarweise verschiedene Attributkombinationen einer Relation Z heißt transitiv abhängig von X, wenn Y funktional abhängig von X und Z funktional abhängig von Y ist, aber X nicht funktional abhängig von Y ist. Also X Y Z, aber nicht Y X. Ang_Nr Abt_Nr Abt_Name
Eine Relation R ist 3 NF, wenn sie 3. Normalform (3NF) Eine Relation R ist 3 NF, wenn sie (1NF) und (2NF) ist kein Nicht-Schlüsselattribut transitiv abhängig von einem Schlüsselattribut ist. 1NF 2NF 3NF
3. Normalform
Beispiel: 3. Normalform
Nachteile bei Verletzung der Normalformen unnötiger Speicherplatzverbrauch Änderungsanomalie Einfügeanomalie Fehlerhäufigkeit ist erhöht Gefahr von Inkonsistenz
Nutzen und Grenzen des Normalisierungsverfahrens Normalisierung geht von vorhandenem Datenvolumen aus. R-Modell ist intuitiv oft schon in dritter Normalform Gut für Reorganisation Performanceverluste durch große Anzahl von Tabellen Widerspricht der Objektorientierung manchmal ist Verletzung der Normalformen gewollt kein Dogma