Normalisierungsformen (NF1 - NF3)
Einleitung
Wenn wir Datenbanken einrichten, wollen wir die Daten haben, die zu keinem Problem füführen. Wenn wir eine Datenbank erstellen, deren Tabellen alle 3 Normalisierungsformen erfüerfüllen, haben wir Tabellen, die uns die höhöchste Performance und ZuverläZuverlässigkeit bietet. Daher sollte man versuchen, die Datenbanktabellen nach diesen Regeln anzulegen.
Die Regeln mü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ömöglich.
Normalform 1 (1NF)
Die Tabelle in der ersten Normalform existiert, wenn folgende Bedingungen erfüerfüllt sind:
- Jedes Merkmal atomar ist
- Nicht weiter unterteilbar ist
- 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ähängt vom Nutzungskontext ab. Wenn man gewisse Teilungen nicht benöbenötigt, ist dies nicht unbedingt nönötig. In der Praxis empfiehlt sich trotzdem alles mömöglichst klein aufzuteilen.
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ü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ümüssen wir folgende Schritte durchfüdurchführen:
- Alle
NichtschlüNichtschlüsselmerkmale, die von einemTeilschlüTeilschlüssel funktionalabhäabhängigsindsind, bestimmen. - Aus den
TeilschlüTeilschlüsseln mit allen funktionalabhäabhängigenNichtschlüNichtschlüsselmerkmalen eigene Tabellen bilden. - Im letzten Schritt entfernen wir alle nicht voll funktional
abhäabhängigenNichtschlüNichtschlüsselmerkmale.
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:
- Alle
NichtschlüNichtschlüsselmerkmale, die transitiv vomSchlüSchlüsselabhäabhängen, bestimmen. - Im
nänächsten Schritt sollen aus diesen transitivabhäabhängigenNichtschlüNichtschlüsselmerkmalen und denNichtschlüNichtschlüsselmerkmalen, von denen diese funktionalabhäabhängig sind, eigene Tabellen bilden. - Im letzten Schritt entfernen wir alle transitiv
abhäabhängigenNichtschlüNichtschlüsselmerkmale aus der Ursprungstabelle.