Wenn man sich mit Datenbank beschäftigt stößt man früher oder später auf das Them Datenbank Normalisierung.
Dies schauen wir uns heute mal an.
Gründe für die Datenbanknormalisierung
- Vermeiden unerwünschter Abhängigkeiten bei Anomalien
- Verringerung der Notwendigkeit der Umstrukturierung von Relationen bei Einführung neuer Typen von Daten
- Verlängerung der Lebensdauer von Datenbanken
- Verständigliches Datenmodell für Benutzer und Programmierer
- Eliminations von Redundanzen
- Datenbankdesigner wird gezwungen, sich systematisch und intensiv mit den Daten zu beschäftigent
Bei der Normalisierung eines relationalen Schemas werden die Attribute derart auf Relationen verteilt, dass beim Einfügen, Löschen oder Ändern von Datensätzen kein Inkonsistenzen auftreten.
Die drei Normalformen nach Codd
Erste Normalform
In der ersten Normalform dürfen in jeder Relation nur atomare (nicht weiter zerlegbare) Attribute gespeichert werden.
Zweite Normalform
In der zweiten Normalform befindet sich eine Relation, wenn es in der ersten Normalform ist und jedes Nicht-Schlüsselattribut einer Tabelle voll funktional vom Schlüssel dieser Tabelle abhängt.
Die zweite Normalform kann jedoch nicht verhindern, dass eine Relation Attribute enthält, die nur indirekt vom Schlüssel abhängen und daher konzeptionell in eine eigene Tabelle gehören
Dritte Normalform
In der dritten Normalform befindet sich eine Relation, wenn sie in der ersten und zweiten Normalform ist und kein Nicht-Schlüsselattribut transitiv vom Schlüssel abhängt.
Jede Relation der Normalformen, die lediglich ein einziges Nicht-Schlüsselattribut besitzt, ist bereits in der dritten Normalform.
Wichtige Hinweise
Je höher die Normalform ist, um so mehr Relationen (Tabellen) sind vorhanden
Je höher die Normalform ist, um so weniger Speicherbedarf wird benötigt
Je höher die Normalform ist, um so geringer ist der Pflegeaufwand, da nur ein Eintrag in einer Relation geändet werden muss.
Aber je höher die Normalform ist, um so schlechter kann auch die Performance einer Datenbank sein, da immer wieder Joins ausgeführt werden müssen.
Denormalisierung
In der Praxis muss ein Optimum zwischen Zugriffszeit, Pflegeaufwand und Speicherbedarf gefunden werden.
Deshalb kann es angeraten sein, den Übergang von der zweiten zur dritten Normalform gar nicht erst durchzuführen (Denomralisierung)
Schreibe einen Kommentar