Normalformen

Eine Datenbank zu normalisieren bedeutet, Redundanzen und Inkonsistenten in einer Datenbank zu entfernen. Dafür gibt es verschiedene Ergebnisformen, die als "Normalformen" bezeichnet werden.

Die "erste Normalform" ist der erste vorgenommene Schritt in der Normalisierung. Jede Spalte hat dann einen "atomaren" (eigenständigen, wiederholungsfreien) Wertebereich.

Die Methode dafür, eine Datenbank in die erste Normalform zu bringen, ist zunächst, nicht atomare Werte in atomare Werte aufzuspalten.

eine funktionale Abhängigkeit besteht, wenn von zwei Attribute oder auch Attributkombinationen in einer Datenbank sich ein Wert (Determinante) immer aus dem anderen bzw. einer Attributkombination ergibt. Die Abhängigkeit kann mathematisch sein oder logisch nach einem vorgegebenen Muster. Ergeben sich die Werte jeweils aufgrund des anderen, ist die Abhängigkeit symmetrisch, ansonsten assymetrisch.

Für die zweite Normalform ist die Anwendung der ersten Normalform Vorraussetzung. Desweiteren werden funktionale Abhängigkeiten durch Auslagern der voneinander abhängigen Attributen aus der Tabelle entfernt. Dadurch werden Redundanzen entfernt. Es werden Abhändigkeiten von Teilen des Schlüssels ausgelagert, aber nicht vom ganzen Schlüssel.

Abhängigkeiten können trivial oder auch voll sein. Triviale Abhängigkeiten sind für Redundanzen nicht von Bedeutung, denn sie erschließen sich von sich selbst (z.B. A und B sind abhängig von A, B und C). Volle Abhängigkeiten existieren, wenn ich das, von dem etwas abhängig ist, nicht mehr um eine Variable verringern kann. (z.B. wenn C aus A und B folgt, aber C allein schon aus A, dann wäre "C folgt aus A und B" nicht voll, wohingegen "C folgt aus A" voll wäre.

Für die dritte Normalform werden Inhalte ausgelagert, die abhängig von Attributen sind, die nicht der Schlüssel sind

Normalisierung
NormalformZielVorraussetzungMethode
1NFatomare Wertebereichemehrere Werte in einem FeldAufteilung von Spalten in mehrere Spalten (bei funktionsunterschiedlichen Werten) oder mehrere Zeilen (bei funktionsgleichen Werten).
2NFkeine partiellen funktionale Abhängigkeiten (einzelner Spalten vom Schlüssel)eine oder mehrere partielle (nur von einem Teil des Schlüssels) funktionale Abhängigkeiten einer SpalteErstellen einer neuen Tabelle, 1. mit dem Teilschlüssel (er wird Primärschlüssel in der neuen Tabelle) und 2. dem oder der davon abhängigen Werte, und Entfernen des abhängigen Werts aus der Ausgangstabelle
3NFkeine transitiven Abhängigkeiten (einzelner Spalten von anderen, einseitig vom Schlüssel abhängigen Nicht-Schlüsseln)eine oder mehrere transitiven AbhängigkeitenErstellen einer neuen Tabelle mit 1. dem Spalte, von der eine weitere abhängig ist (sie bleibt in der ursprünglichen Tabelle bestehen und ist der Primärschlüssel der neuen Tabelle), und 2. der abhängigen Spalte (sie wird in der ursprünglichen Tabelle entfernt)