Kleines Nachschlagewerk Informatik
Normalisierung
Worum geht es?
Beim Design von Datenbanken kann man Fehler machen. So sind später gewisse Abfragen vielleicht nicht möglich, man speichert zu viele Informationen oder diese doppelt bzw. beim Löschen gehen mehr Daten verloren als gewünscht.

Normalisierungen sind Regeln, die man beim Design beachten sollte. Im Allgemeinen sind dies weitere Aufteilungen, so dass neue Tabellen (Relationen) entstehen.

Es werden fünf Normalisierungen beschrieben, praktisch bedeutsam sind die ersten drei.
Erste Normalform (1NF)
Attribute sollten atomisiert werden. So sollten beispielsweise Namen als Vor- und Nachname getrennt gespeichert werden. Ebenso sollte eine Adresse in Ort, PLZ, Straße, Hausnummer etc. zerlegt werden.

Vorher:
IDNameAdresse
1Max MeierEineStadt Hauptstraße 7
.........
Nachher:
IDVornameNachnameOrtStraßeHausnummer
1MaxMeierEineStadtHauptstraße7
..................


Tut man dies nicht, sind z.B. Anfragen an eine Schuldatenbank, ob der Name Meyer an dieser Schule häufiger vorkommt oder ob besonders viele Schüler aus der Al-Bundy-Straße kommen, nicht möglich. Ebenso sind gewisse Sortierungen bei der Abfrage nicht möglich.
Zweite Normalform (2NF)
Zuerst wird gefordert, dass die erste Normalform erfüllt ist.

Attribute, die keine Schlüssel sind, sollten nur vom Gesamtschlüssel, nicht jedoch von Schlüsselteilen abhängen. Verletzungen treten also auf, wenn der Primärschlüssel aus mehreren Teilen besteht und diese Teile nicht für jedes Attribut gebraucht werden.

Personen, die in einer bestimmten Abteilung arbeiten, übernehmen in der Firma automatisch eine bestimmte Position. Diese Position ist abhängig von einer Personal-ID und einer Abteilungs-ID. Folglich bilden die beiden IDs den Primärschlüssel. Speichert man aber in dieser Relation auch noch Daten zur Person oder zur Abteilung, so sind diese Daten nur von der Personal-ID oder der Abteilungs-ID abhängig.

Vorher:
PersIDVornameNachnameAbtIDAbtNameAufgabe
1MaxMeier11EntwicklungAdministration
..................
Zur Lösung des Problems müssen diese Daten also in die Tabellen für Personen bzw. Abteilungen ausgelagert werden.

Nachher:
PersIDVornameNachname
1MaxMeier
.........
AbtIDAbtName
11Entwicklung
......
PersIDAbtIDAufgabe
111Administration
.........
Dritte Normalform (3NF)
Zuerst wird gefordert, dass die Relation in der ersten und zweiten Normalform ist.

Für die dritte Normalform wird gefordert, dass keine Abhängigkeiten zwischen Nichtschlüsselattributen bestehen.

Speichert man zum Beispiel in Schülerdaten nicht nur die Klasse, sondern auch den Klassenleiter, ist die 3NF nicht erfüllt. Das Attribut Klassenleiter hängt von der Klasse ab. Es kann also passieren, dass es zu Inkonsistenzen kommt, wenn aus Versehen ein falscher Klassenleiter eingetragen wird.

Vorher:
SchülerIDVornameNachname...KlasseKlassenleiter
1MaxMeier...10mnFlm
..................


Die Lösung besteht darin, Informationen zur Klasse, wie z.B. den Klassenleiter, in eine neue Relation auszulagern. Die (eindeutige) Klasse könnte dann sogar Primärschlüssel für die neue Relation sein.

Nachher:
SchülerIDVornameNachname...Klasse
1MaxMeier...10mn
...............
KlasseKlassenleiter
10mnFlm
......
Weitere Normalformen
Es werden noch weitere Normalformen beschrieben (4NF, 5NF, BCNF), die für uns jedoch keine Bedeutung haben.