Normalisierung

Der Begriff der Normalisierung wird im Zusammenhang mit relationalen Datenbank-Modellen verwendet und kennzeichnet die stufenorientierte Vorgehensweise beim Entwurf der Struktur einer relationalen Datenbank. Dabei werden die Relationen so zerlegt, dass Anomalien nicht auftreten können und Redundanzen vermieden werden. Die Relationen enthalten die logisch zusammengehörenden Daten.


Das Ziel der Normalisierung ist es einen übersichtlichen und möglichst transparenten Aufbau einer Datenstruktur zu generieren, die Inkonsistenzen und Mehrdeutigkeiten vermeidet und eine einfache Pflege der Daten unterstützt. Für den Normalisierungsprozess sind bis zu fünf Regeln - die Normalisierungen - zu unterscheiden. Sofern all diese Regeln bei der Generierung der Datenstrukturen beachtet werden, spricht man in diesem Zusammenhang auch von voll normalisierten Datenstrukturen, welche jedoch eine erhöhte Systembelastung zur Folge haben. Die Normalisierung unterstützt den Erhalt der Integrität einer Datenbank - das bezieht sich auf die Richtigkeit einer Datenstruktur.

Sofern man es bildlich betrachtet, werden bei der Normalisierung die Relationen - auch Tabellen - mit vielen Attributen von einem höheren Grad in mehrere Tabellen - die dann jeweils einen niedrigeren Grad haben - aufgespalten. Damit werden dann sowohl Redundanzen als auch Schwierigkeiten beim Ändern, Einfügen und Löschen sogenannter Anomalien vermieden. Eine Relation wird als unnormalisiert bezeichnet, wenn sie Attribute mit Attributwerten aufweist, die sich aus mehreren Elementen beispielsweise einer Werteliste zusammensetzt. So ist die Normalisierung umgekehrt als die Beseitigung von Abhängigkeiten zwischen den Attributen einer Relation zu definieren. Dabei werden funktionale und transitive Abhängigkeiten differenziert.

Die Normalisierung eines relationalen Schemas

Mehrere Schritte kennzeichnen die Normalisierung eines relationalen Schemas. Dabei müssen die Relationen in jedem Schritt gewissen Regeln - auch Bedingungen - genügen. Somit wird dann die sogenannte Normalform des Relationenschemas gebildet. Dieser Prozess der Normalisierung kann bis zu fünf Schritte beinhalten - sinnvoll ist es jedoch zumeist nur den ersten drei Bedingungen zu genügen. Da durch den Normalisierungsprozess viele kleine Relationen entstehen können, wird die Verwaltung der Datenbank bei weiteren Normalisierungs-Schritten häufig zu komplex. Der Vorgang der Normalisierung wird häufig auch als Dekomposition oder Zerlegung bezeichnet. Je höher der Grad der Dekomposition einer Relation ist, umso aufwendiger gestaltet sich eine Datenbankoperation - hier ist auch der Gesichtspunkt der Performance einer Datenbank zu beachten. Häufig werden in diesem Zusammenhang sogar kontrollierte Redundanzen wie im Fall der mehrfachen Existenz von Attributen - häufig auch Schlüsselattributen - erlaubt. Das sogenannte Dualitätsprinzip gibt vor, dass nach der Normalisierung die ursprüngliche Relation wiederherstellbar sein muss - der Normalisierungsprozess muss daher in jedem Fall frei von Verlusten sein.

1. Normalform. Die erste Normalform (1NF) liegt dann vor, wenn keine Attribute mit Attributwerten vorliegen, die sich aus mehreren Elementen zusammensetzen. Relationen in der 1NF zeichnen sich dadurch aus, dass sie ein zweidimensionales Gebilde aus Zeilen und Spalten sind. Umgekehrt bedeutet dies, dass in der 1NF alle Mehrfacheinträge in einem Attribut zu entfernen sind und jedem Attribut damit nur höchstens einen Wert haben kann.

2. Normalform. Die zweite Normalform (2NF) wird dadurch gebildet, dass die Relation in kleinere Relationen zerlegt wird, so dass in jeder Relation alle Nicht-Schlüsselfelder nur noch vom Primärschlüssel abhängen. Zu beachten ist, dass die Attribute jeweils von einem gesamten Schlüsselfeld abhängig sind. Dabei wird geprüft, ob ein Primärschlüssel aus mehreren Attributen besteht, wo dann die Attribute nur von einem Teil des Primärschlüssels abhängen. Sofern dies zutrifft, wird dieser Teil des Primärschlüssels mit seinen Attributen in eine neue Relation überführt.

3. Normalform. Die 3NF setzt voraus, dass alle Datenfelder (Attribute) einer Tabelle unabhängig voneinander sind und nur vom gesamten Schlüssel abhängen. Damit ist jedes nicht dem Schlüssel angehörende Attribut funktional abhängig nur vom gesamten Schlüssel. Als transitive Abhängigkeit wird der Zustand bezeichnet, wenn ein Nicht-Schlüsselfeld nur über ein anderes Nicht-Schlüsselfeld identifizierbar ist. Die Folgen von transitiven Abhängigkeiten sind Redundanz und Inkonsistenz von Datenstrukturen. Somit müssen für die 3NF durch Dekomposition von Relationen alle transitiven Abhängigkeiten entfernt werden. In den so entstehenden Relationen sind dann alle Nicht-Schlüsselfelder direkt vom gesamten Schlüsselfeld abhängig.

Boyce-Codd-Normalform (BCNF). Beseitigt die Abhängigkeiten von einzelnen Schlüsseln oder Schlüsselattributen untereinander. Dies wird in der 3NF nicht berücksichtigt. Der BCNF genügt eine Relation genau dann, wenn kein Attribut funktional abhängig von einer Attributgruppe ohne Schlüsseleigenschaft ist. Hier spricht man auch von sogenannten minimalen Schlüsseln - das sind nicht zusammengesetzte Schlüssel. Relationen, die mehrere überlappende, minimale Schlüssel besitzen, erzeugen eine funktionale Abhängigkeit und führen wiederum zu Redundanzen.

4. Normalform. Dieser genügen Relationen, die sich in der 3NF befinden und keine mehrwertigen Abhängigkeiten der Attribute enthalten. Von mehrwertiger Abhängigkeit wird dann gesprochen, wenn mehrere Nichtschlüssel-Attribute direkt vom Schlüssel abhängig sind, jedoch nicht voneinander.

5. Normalform. Ist eine Dekomposition in der 4NF nicht mehr verlustfrei möglich, fügt die 5. Normalform (5NF) weitere Primärschlüssel hinzu. Dies wird fortgeführt, bis nur noch Einzelabhängigkeiten der Attribute von einem oder mehreren Primärschlüsseln bestehen.

Die letzten beiden Normalformen haben in der Praxis weniger Bedeutung, da hier sowohl Relationen hinzukommen als das auch Redundanzen generiert werden. Mit jeder Erhöhung der Anzahl der Relationen kommt es häufig zu Schwierigkeiten in der Performance bei Abfragen und Transaktionen.

Informationen zum Artikel
Deutsch: Normalisierung
Englisch: normalization
Veröffentlicht: 27.10.2013
Wörter: 895
Tags: #Datenbanken
Links: Abfrage, Anomalie, Attribut, Daten, Datenfeld