Datenbanken Normalisierung

database-02Wenn 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)

About Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Speak Your Mind

*