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.
