Unter Normalisierung verstehen wir die Zerlegung eines Relationenschemas in die Relationenschemata 1,2,...Rn, die jeweils nur eine Teilmenge der Attribute von aufweisen, d. h. i . Verlangt werden hierbei
Wir betrachten die Zerlegung in zwei Relationenschemata. Dafür muß gelten =R1 2. Für eine Ausprägung R von definieren wir die Ausprägung R1 von 1 und R2 von 2 wie folgt:
Eine Zerlegung von in
1 und
2 heißt
verlustlos, falls für jede gültige Ausprägung R von gilt:
Es folgt eine Relation Biertrinker, die in zwei Tabellen zerlegt wurde. Der aus den Zerlegungen gebildete natürliche Verbund weicht vom Original ab. Die zusätzlichen Tupel (kursiv gesetzt) verursachen einen Informationsverlust.
Biertrinker | ||
Kneipe | Gast | Bier |
Kowalski | Kemper | Pils |
Kowalski | Eickler | Hefeweizen |
Innsteg | Kemper | Hefeweizen |
|
|
Besucht Trinkt | ||
Kneipe | Gast | Pils |
Kowalski | Kemper | Pils |
Kowalski | Kemper | Hefeweizen |
Kowalski | Eickler | Hefeweizen |
Innsteg | Kemper | Pils |
Innsteg | Kemper | Hefeweizen |
Eine Zerlegung von in 1, ..., n heißt abhängigkeitsbewahrend (auch genannt hüllentreu) falls die Menge der ursprünglichen funktionalen Abhängigkeiten äquivalent ist zur Vereinigung der funktionalen Abhängigkeiten jeweils eingeschränkt auf eine Zerlegungsrelation, d. h.
Es folgt eine Relation PLZverzeichnis, die in zwei Tabellen zerlegt wurde. Fettgedruckt sind die jeweiligen Schlüssel.
PLZverzeichnis | |||
Ort | BLand | Straße | PLZ |
Frankfurt | Hessen | Goethestraße | 60313 |
Frankfurt | Hessen | Galgenstraße | 60437 |
Frankfurt | Brandenburg | Goethestraße | 15234 |
|
|
Es sollen die folgenden funktionalen Abhängigkeiten gelten:
Die Zerlegung ist verlustlos, da PLZ das einzige gemeinsame Attribut ist und {PLZ} {Ort, BLand} gilt.
Die funktionale Abhängigkeit {Straße, Ort, BLand} {PLZ} ist jedoch keiner der beiden Relationen zuzuordnen, so daß diese Zerlegung nicht abhängigkeitserhaltend ist.
Folgende Auswirkung ergibt sich: Der Schlüssel von Straßen ist {PLZ, Straße} und erlaubt das Hinzufügen des Tupels [15235, Goethestraße].
Der Schlüssel von Orte ist {PLZ} und erlaubt das Hinzufügen des Tupels [Frankfurt, Brandenburg, 15235]. Beide Relationen sind lokal konsistent, aber nach einem Join wird die Verletzung der Bedingung {Straße, Ort, BLand} {PLZ} entdeckt.