Normalformen

Aus IV1

Bei der Aufgabe, eine Datenbank anzulegen, wird man mit mehreren Problemen konfrontiert.

  • Wie viele Tabellen sind sinnvoll?
  • Was soll darin dargestellt werden?
  • Wie viele Spalten sollen in welcher Tabelle angelegt werden?

Die Antwort auf diese Fragen gibt mitunter die sogenannte Normalisierung. Mit Hilfe der Regeln der Normalisierung wird es möglich, die Datenbank ideal zu strukturieren. Dadurch werden Redundanzen vermieden: Diese erfordern nämlich nicht nur einen größeren Speicherbedarf, sondern führen auch zu einer erhöhten Fehleranfälligkeit, beispielsweise bei Wartungstätigkeiten. Sollen Daten, die an mehr als einem Speicherort vorhanden sind, geändert werden, müssen diese Änderungen an allen Speicherorten auf exakt die gleiche Art und Weise vorgenommen werden. So ist beispielsweise die Änderung einer Studentenadresse wesentlich einfacher, wenn die betreffenden Daten nur in der Tabelle Student gespeichert sind und nicht auch noch an anderen Orten innerhalb der Datenbank.

Normalisieren der Tabellen

Bei der Überführung der Objektklassen in Tabellen sind diese daraufhin zu prüfen, ob sie Abhängigkeiten der Felder untereinander bzw. Redundanzen aufweisen, die meist zu Disintegritäten führen. Normalisiert wird, indem man schrittweise überprüft, ob die gebildeten Tabellen den Bedingungen der Normalformen entsprechen. Im Verlaufe dieses Normalisierungsprozesses kommt es zu einer Reduzierung der Redundanzen, parallel dazu jedoch auch zu einer Vermehrung der Anzahl der Tabellen. Immer dann, wenn Redundanzen entdeckt werden, führt dies zur Bildung neuer Tabellen, die über die Schlüsselfelder miteinander verbunden werden. Die Anpassung der Tabellen an die Normalformen dient auch der mengentheoretischen Grundlage von SQL. Die Anwendung von drei Normalformen wird aus Gründen des Antwortzeitverhaltens der Datenbank empfohlen. Es gibt zwar insgesamt fünf Normalformen, aber die vierte Normalform, die auch als Boyce Codd-Normalform (BCNF) bezeichnet wird, sowie die fünfte Normalform werden in der Praxis nur selten angewendet.

Normalisierung anhand des Buchhandlungs-Beispiels

Dies ist ein Auszug aus dem vorliegenden Buchhandlungs-Beispiel, aufgrund der Übersichtlichkeit werden die Normalformen anhand ausgewählter Felder erklärt - es werden bewusst nicht alle Felder der Originaldatenbank verwendet.

Die nicht normalisierte Tabelle könnte etwa so aussehen:

Auszug aus der Tabelle mit Büchern und Verlagen
Nr Titel Kurzbezeichnung Name Preis
14 Fachkunde für Tischler 2 oev Oesterreichischer BUNDESVERLAG Ges.m.b.H. 17
2 Elektrotechnik - Fachkunde 2 oev Oesterreichischer BUNDESVERLAG Ges.m.b.H. 19
23 Fachkunde für Tischler 3 oev Oesterreichischer BUNDESVERLAG Ges.m.b.H. 28
166 Mathematik 3 bm Wilhelm BRAUMÜLLER Verlagsges.m.b.H. 13

Um die Daten nun in die geeignete Form zu bringen, sind Normalisierungsschritte notwendig.

1. Normalform: Entfernen von Wiederholgruppen

a