Was ist Normalisierung?
Entwurfsverfahren, das Tabellen einer relationalen Datenbank anhand funktionaler Abhängigkeiten zwischen Spalten aufteilt, damit dieselbe Tatsache nicht an mehreren Stellen gespeichert wird. Es beseitigt doppelt gespeicherte Daten und verhindert Änderungs-, Einfüge- und Löschanomalien. Zu den Stufen gehören die erste bis dritte Normalform und die Boyce-Codd-Normalform.
Japanische Bezeichnung: 正規化
„Normalisierung“ kommt in 2 Übungsfragen aus 1 Themen vor, z. B. Grundlagen der Datenbanken.
Fachgebiet: Grundlagen der Datenbanken
Anomalien, die die Normalisierung verhindert
In einer nicht normalisierten Tabelle wird dieselbe Tatsache in vielen Zeilen wiederholt gespeichert. Steht zum Beispiel in jeder Zeile einer Mitarbeitertabelle auch der Abteilungsname, müssen bei der Umbenennung einer Abteilung alle Zeilen ihrer Mitarbeiter geändert werden, und wird eine übersehen, sind die Inhalte widersprüchlich (Änderungsanomalie). Eine Abteilung ohne Mitarbeiter lässt sich noch nicht erfassen (Einfügeanomalie), und das Löschen des letzten Mitarbeiters einer Abteilung löscht auch die Angaben zur Abteilung (Löschanomalie). Werden die Abteilungsangaben in eine eigene Tabelle ausgelagert, wird jede Tatsache nur an einer Stelle gespeichert, und diese Anomalien werden verhindert.
Von der ersten bis zur dritten Normalform
Die erste Normalform ist der Zustand, in dem jede Spalte nur einen einzelnen, nicht wiederholten Wert enthält. Die zweite Normalform ist die erste Normalform ohne Spalten, die nur von einem Teil des Primärschlüssels abhängen (keine partielle funktionale Abhängigkeit); das betrifft Tabellen, deren Primärschlüssel aus mehreren Spalten besteht. Die dritte Normalform ist die zweite Normalform ohne Spalten, die über eine Nicht-Schlüsselspalte bestimmt werden (keine transitive funktionale Abhängigkeit). Gibt es etwa eine Abhängigkeit wie AuftragsNr → KundenNr → Kundenname, werden KundenNr und Kundenname in eine eigene Tabelle ausgelagert. Die Aufteilung erfolgt so, dass ein Join über die gemeinsamen Spalten die ursprüngliche Tabelle ohne Informationsverlust wiederherstellt.
Häufige Fragen
Was ist der Unterschied zwischen zweiter und dritter Normalform?
Die zweite Normalform hat keine Spalte, die nur durch einen Teil des Primärschlüssels bestimmt wird (keine partielle funktionale Abhängigkeit). Die dritte Normalform hat zusätzlich keine Spalte, die über eine Nicht-Schlüsselspalte bestimmt wird (keine transitive funktionale Abhängigkeit). Eine Tabelle mit einspaltigem Primärschlüssel ist automatisch in zweiter Normalform, wenn sie in erster Normalform ist.
Werden Suchen durch Normalisierung schneller?
Nicht unbedingt. Zweck der Normalisierung ist, Duplikate zu beseitigen und Anomalien beim Ändern zu verhindern; durch die Aufteilung der Tabellen braucht man für Suchen mehr Joins. Ist die Leseleistung wichtig, wird manchmal absichtlich denormalisiert.