Datenbanktheorie - Normalisierung

„Der Prozess der Normalisierung besteht aus der Analyse von Relationen, um immer strengeren Anforderungen zu genügen, was zu progressiv besseren Gruppierungen oder Normalformen höheren Grades führt“ ([2] S.500)

Eine Datenbank speichert Daten eines Ausschnittes der realen Welt. Um diese Daten jedoch effizient zu verwalten, ist es nötig, die anfallenden Informationen entsprechend ihrer Art auf verschiedene Relationen aufzuteilen, welche wiederum miteinander referenziert werden. Je nach Grad der Normalisierung werden mehrere, aufeinander aufbauende Normalformen unterschieden. In der Praxis ist es jedoch stets ein Mittelweg zwischen dem theoretisch höchst möglichen Normalisierungsgrad und den tatsächlichen Anforderungen welche die Datenbank erfüllen muss, wie Handhabbarkeit, eingesetztes DBMS und Performance.
Grundsätzlich gilt, dass die Semantik des Relationsschemas durch die Normalisierung verdeutlicht wird. So wird deutlich, in welcher Beziehung die Attributwerte zueinander stehen und sie werden entsprechend strukturiert. [2] In Beziehung stehende Relationen werden entsprechend referenziert. Ein weiterer entscheidender Normalisierungsgrund ist die Vermeidung von Redundanz. So soll die Speicherung von identischen Daten innerhalb einer Datenbank nach Möglichkeit völlig ausgeschlossen werden. So werden wiederkehrende Attributwerte nur einmal gespeichert und der Speicherbedarf kann so gegebenenfalls beträchtlich reduziert werden. Außerdem muss das Auftreten von Anomalien vermieden werden, da diese bei falschem Datenbankentwurf durch Einfüge- Update- bzw. Löschoperationen die Konsistenz der Datenbank gefährden können oder Datenverlust nach sich ziehen.

Die Vermeidung von NULL-Werten ist ebenfalls ein Normalisierungsziel. So soll sichergestellt werden, dass NULL bei Attributen nur in Ausnahmefällen zutrifft, um Probleme bei Join- Operationen und Aggregatoperationen zu vermeiden und die unterschiedlichen Interpretationen für NULL auszuschließen.

Die Bildung von unechten Tupeln muss bei der Normalisierung berücksichtigt und ausgeschlossen werden. So sollte es innerhalb des Relationsschemas nicht möglich sein, dass durch das Zusammenfügen mehrerer Relationen mittels eines JOIN mit Gleichheitsbedingungen auf nichtschlüssel-Tupel, Tupel entstehen, welche in der ursprünglichen Datenmenge nicht vorhanden waren und somit ungültig sind, da es stets gewährleistet sein muss, dass aus dem normalisierten Schema alle Daten der Ausgangsdatenmenge ohne Datenverlust oder ungültige Werte wieder hergestellt werden können.