Normalisieren einer Datenbank

Ein Hauptgrund für das Normalisieren einer Datenbank, liegt in der Vermeidung von Redundanzen. Redundanzen fühen zu erhötem Speicherbedarf, probleme beim suchen von Daten und können zu inkosistenzen beim aktualisieren der Daten führen. Bei der Normalisierung von Datenbanken bzw. dem Entwurf einer Datenbank werden 5 Stufen der Normalisierung unterschieden, die hier kurz erläutert werden sollen.

1. Normalform (1NF)

Atomare Attribute

Die 1NF besagt, dass jedes Attribut (jede Spalte) Atomar ist. Dies besagt, dass die enthaltenen Elemente sich nicht weiter unterteilen lassen.

Nachfolgend eine Beispieltabelle, die nicht der 1. Normalform entspricht:

Name Adresse Telefonnummer
Max Mustermann Musterstraße 14 55555 Bad-Musterstadt 0243335354
Theresa Hille Halterstrasse 44 35789 Woauchimer 0258775125
Joseph Hintermann Birkenweg 36 11155 Tuppeldorf 078543784

Es sei dem Autor vergeben, dass alle angegebenen Daten Phanasiedaten sind. Auch Postleitzahl und Ort stehen in keinem Verhältnis zur realen Welt.

Die obige Tabelle widerspricht der 1.NF. Der Name kann noch in Vorname und Nachname unterteilt werden, die Spalte ist demnach nicht atomar. Gleiches gilt für die Adresse, welche in Straß, Hausnumer, Postleitzahl und Ort unterteilt werden kann.

Ob die Telefonnummer in Vorwahl und Nummer (evtl. auch Ländercode) unterteilt werden sollte hängt vom Verwendungszweck ab. Der einfachheit halber soll hier die Telefonnummer als atomarer Wert behandelt werden.

Die nachfolgende Tabelle zeigt die vorherige Tabelle so, dass sie der ersten Normalform entspricht.

Vorname
Nachname Starße Hausnummer Postleitzahl Ort Telefonnummer
Max Mustermann Musterstraße 14 55555 Bad-Musterstadt 0243335354
Theresa Hille Halterstrasse 44 35789 Woauchimmer 0258775125
Joseph Hintermann Birkenweg 36 11155 Tuppeldorf 078543784

2. Normalform (2NF)

Voll funktionale Äbgigkeit der Attribute von jedem Schlüsselkanditaten

Bedingung für die 2NF ist, dass die Tabellen (Relationen) sich in der 1NF befindet. Weiterhin ist jedes Element voll funktional von jedem Schlüsselkandidaten abhänig.

3. Normalform (3NF)

Kein Nichtschlüssel ist transitiv abhängig von einem Schlüsselkandidaten

Bedingung für die 3NF ist, dass die 2NF gegeben ist. Weiterhin muss gegeben sein, dass kein Element von Nichtschlüsselelementen abhängig ist.

4. Normalform (4NF)

Keine paarweise, mehrwertige Abhängigkeit von Nichtschlüsselelementen

Bedingung für die 4NF ist, dass die 3NF gegeben ist. Weiterhin sind nur noch triviale mehrwetige Abhängigkeiten zu Nichtschlüsselelementen erlaubt.

5. Normalform (5NF)

Die Relationen lassen sich nicht in einfachere Relationen, ohne Informationsverlust, unterteilen

Bedingung für die 5NF ist, dass die 4NF gegeben ist. Die vorhandenen Tabellen (Relationen) lassen sich nicht mehr in weitere Relationen mit unterschiedlichen Schlüsseln aufteilen, ohne dass Informationen verloren gehen.

Links

de.wikipedia.org
Normalisierung (Datenbank)
http://de.wikipedia.org/wiki/Normalisierung_%28Datenbank%29

Christoph Reeg
DSP: Datenbank, MySQL und PHP - Datenbanken entwickeln
http://reeg.junetz.de/DSP/main.html
http://reeg.junetz.de/DSP/node7.html