Skip to main content

Normalisierungsformen (NF1 - NF3)

Einleitung

Wenn wir Datenbanken einrichten, wollen wir die Daten haben, die zu keinem Problem führen. Wenn wir eine Datenbank erstellen, deren Tabellen alle 3 Normalisierungsformen erfüerfüllen, haben wir Tabellen, die uns die höchste Performance und ZuverläZuverlässigkeit bietet. Daher sollte man versuchen, die Datenbanktabellen nach diesen Regeln anzulegen. 

Die Regeln müssen nach und nach erfüerfüllt werden, das bedeutet es muss erst die NF1, dann die NF2 und zum Schluss die NF3 erfüerfüllt sein. Also eine Tabelle, die sich in der Normalisierungsform 2 befindet, hat automatisch die Anforderungen der Normalisierungsform 1 erfüerfüllt. 

Normalform 0 (0NF)

Eine Tabelle liegt in der "Nullten Normalform" vor, wenn die Daten sich einfach in der Tabelle befinden. Das bedeutet, die Daten sind nicht atomar. Das bedeutet wir haben Redundanzen in der Datenbank ohne signifikanten Informationsgewinn. Dadurch ist unsere Tabelle durch sogenannte Anomalien gefägefährdet. 

In dem ersten Beispiel haben wir eine Tabelle mit Kundendaten mit den Bestellungen, die diese getägetätigt haben. Es gibt in der Tabelle Redundanzen, z.B. DHL => Deutsche Post DHL Group als auch im Merkmal / Attribut Adresse bei der Postleitzahl mit der Ortsangabe. Im Weiteren haben wir Probleme, wenn wir z.B. Kunden nach Nachnamen sortieren wollen. Dies ist laut unserer aktuellen Tabelle nicht möglich. 

Normalform0.png

Normalform 1 (1NF)

Die Tabelle in der ersten Normalform existiert, wenn folgende Bedingungen erfüerfüllt sind:

  1. Jedes Merkmal atomar ist
  2. Nicht weiter unterteilbar ist
  3. Listen aufgelöaufgelöst sind

Es befinden sich in der Tabelle dennoch weiterhin Redundanzen, da diese noch nicht entfernt werden. In der 1. Normalisierungsform werden die Daten nur aufgeteilt, dass wir eine reine Tabelle erhalten, in dem wir die entsprechenden Daten in einzelnen Merkmalen aufgeteilt haben. 

Ab wann ein Wert atomar ist, hängt vom Nutzungskontext ab. Wenn man gewisse Teilungen nicht benöbenötigt, ist dies nicht unbedingt nötig. In der Praxis empfiehlt sich trotzdem alles möglichst klein aufzuteilen.

Normalform1.png

Normalform 2 (2NF)

In der zweiten Normalform muss die Tabelle in der ersten Normalform vorliegen, und alle NichtschlüNichtschlüsselmerkmale voll funktional vom PrimärschlüPrimärschlüssel abhäabhängen. Unterm Strich bedeutet dies, dass jedes NichtschlüNichtschlüsselmerkmal aus dem PrimärschlüPrimärschlüssel ableitbar ist. Merkmale, die von einem TeilschlüTeilschlüssel abhäabhängig sind, müssen in eine eigene Tabelle geschrieben werden. Hier teilen wir also die Tabellen in einzelne Tabellen auf.

Um jetzt eine Tabelle in die zweite Normalform zu üübernehmen, müssen wir folgende Schritte durchfüdurchführen:

  1. Alle NichtschlüNichtschlüsselmerkmale, die von einem TeilschlüTeilschlüssel funktional abhäabhängig sindsind, bestimmen. 
  2. Aus den TeilschlüTeilschlüsseln mit allen funktional abhäabhängigen NichtschlüNichtschlüsselmerkmalen eigene Tabellen bilden. 
  3. Im letzten Schritt entfernen wir alle nicht voll funktional abhäabhängigen NichtschlüNichtschlüsselmerkmale. 

Normalform2.png

Normalform 3 (3NF)

Im letzten Schritt entfernen wir die letzten Redundanzen. Laut der Definition ist eine Tabelle in der Normalform 3, wenn jedes SchlüSchlüsselmerkmal nicht transitiv vom PrimärschlüPrimärschlüssel abhäabhängig ist. 

Im Weiteren bedeutet Transitiv, dass ein Merkmal einen Umweg nutzen kann, um funktional abhäabhängig von einem anderen Merkmal abhäabhängig ist. Unterm Strich sollen alle Merkmale nur von einem PrimärschlüPrimärschlüssel abhäabhängig sein. 

Um eine Tabelle in die dritte Normalform zu üübernehmen, verwenden wir folgende Schritte:

  1. Alle NichtschlüNichtschlüsselmerkmale, die transitiv vom SchlüSchlüssel abhäabhängen, bestimmen.
  2. Im nächsten Schritt sollen aus diesen transitiv abhäabhängigen NichtschlüNichtschlüsselmerkmalen und den NichtschlüNichtschlüsselmerkmalen, von denen diese funktional abhäabhängig sind, eigene Tabellen bilden.
  3. Im letzten Schritt entfernen wir alle transitiv abhäabhängigen NichtschlüNichtschlüsselmerkmale aus der Ursprungstabelle. Normalform3.png