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.

Abwägung gegen Denormalisierung

Normalisierung beseitigt Duplikate, doch durch die Aufteilung der Tabellen sind bei jeder Suche Joins nötig. In Datenbanken, die überwiegend zum Lesen und Aggregieren dienen, werden Tabellen aus Leistungsgründen manchmal absichtlich zusammengeführt und Duplikate wieder zugelassen; das ist Denormalisierung. Dann ist ein Mechanismus nötig, der die doppelt gehaltenen Daten konsistent aktualisiert. Datenbanken für die Transaktionsverarbeitung mit vielen Änderungen werden in der Regel bis zur dritten Normalform normalisiert.

Jetzt üben: Fragen zu Normalisierung

Was ist der Hauptzweck der Normalisierung von Tabellen in einer relationalen Datenbank?

  1. ADie Zahl der Tabellen zu verringern, damit jede Suche ohne Joins schnell ausgeführt werden kann
  2. BDaten zu verschlüsseln, damit Unbefugte sie nicht lesen können
  3. CDoppelt gespeicherte Daten zu beseitigen und Anomalien zu verhindern, etwa dass Inhalte nach einer Änderung widersprüchlich werden
Antwort und Erläuterung anzeigen

Antwort: C. Doppelt gespeicherte Daten zu beseitigen und Anomalien zu verhindern, etwa dass Inhalte nach einer Änderung widersprüchlich werden

Die Normalisierung ist ein Entwurfsverfahren, das Tabellen anhand funktionaler Abhängigkeiten zwischen Spalten (eine Beziehung, bei der der Wert einer Spalte den Wert einer anderen eindeutig festlegt) aufteilt, damit dieselbe Tatsache nicht an mehreren Stellen gespeichert wird. 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). Weitere Probleme entstehen: 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 Abteilungstabelle ausgelagert, muss ein Abteilungsname nur an einer Stelle korrigiert werden. Andererseits erfordert die Aufteilung beim Suchen mehr Joins, sodass Normalisierung Suchen nicht unbedingt beschleunigt.

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.

„Normalisierung“ in den Erläuterungen

Fragen mit „Normalisierung“ (2)

  1. Was ist der Hauptzweck der Normalisierung von Tabellen in einer relationalen Datenbank?
  2. In einer Datenbank, die überwiegend zum Lesen und Aggregieren dient, werden normalisierte Tabellen manchmal absichtlich zu einer zusammengeführt, sodass dieselben Daten mehrfach gehalten werden (Denormalisierung). Welche Kombination aus Vorteil und Nachteil dieses Entwurfs ist richtig?

Verwandte Begriffe

ACID-Eigenschaften Dritte Normalform (3NF) E-R-Diagramm (Entity-Relationship-Diagramm) Fremdschlüssel Index (Datenbankindex) Isolationslevel NoSQL Primärschlüssel Relationale Datenbank SQL

Zur Glossarübersicht