Springe zum Inhalt

Die Normalformen – Normalisierung im relationalen Datenbankschema

Der Normalisierungsprozess wurde erstmalig im Jahre 1972 von Codd vorgschlagen und später von Boyce und Codd um die 4. Normalform (Boyce-Codd Normalform – BCNF) erweitert. Dieser Prozess analysiert die funktionalen Abhängigkeiten zwischen den Attributen im relationalen Datenbankentwurf (siehe hierzu auch mein Artikel: Funktionale Abhängigkeiten im relationalen Schemaentwurf ). Das Ziel der Normalisierung ist zum Einen Redundanzen zu eliminieren und zum Andern die Verhinderung bzw. Minimierung von Anomalien (Einfüge-,Lösch- und Updateanomalien). Es gibt prinzipiell auch noch weitere Normalformen, jedoch wird in der Industrie beim Datenbankentwurf bis zur Boyce-Codd Normalform normalisiert. Daher werde ich auch die NF nur bis zur BCNF behandeln.

Dieser Artikel vermittelt das theoretische Verständnis und die praktischen Fertigkeiten für den Normalisierungsprozess in kompakter und Verständlicher Weise, ohne sich dabei in theoretischen Betrachtungen zu verlieren und führt Sie damit Schritt für Schritt bis zur 4. Normalform.

1. Normalform

Die erste Normalform eliminiert mehrwertige Attribute und zusammengesetzte, also nichtatomare, Attribute. Ein Mehrwertiges Attribut liegt vor wenn ein Attribut in einem Tupel/Datensatz, also einer möglichen Ausprägung r(R) der Extension des realtionalen DB-Schemas R, mehrere Werte gleichzeitig trägt. Ein Beispiel hierfür wäre das Attribut Wohnort einer Person. Die Person kann gleichzeitig mehrere Wohnorte haben. Somit haben wir ein Attribut mit mehrfachwerten welches wir eliminieren müssen um die erste NF zu erreichen.

Vorgehensweise zur Herleitung der 1. Normalform

  1. Prüfung aller Relationanschemata auf Attribute mit Mehrfachwerten
  2. Liegt ein solcher Fall vor gibt es mehrere Möglichkeiten die 1.NF zu erreichen
    1. Entfernen des Attributes welches die 1. NF verletzt und erzeugen einer eigenen Relation. Dann wird der neuen Relation der Primärschlüssel der ursprünglichen Relation als Fremdschlüssel zugewiesen (siehe Beispiel im Screenshot).
    2. Gibt es eine Oberzahl der möglichen Wertausprägungen pro Tupel, dann wäre es auch möglich n Attribute (z.B 3 mal Wohnort) anzulegen. Der Nachteil hieran ist jedoch, dass null-Werte eingeführt werden, da es auch sicher viele Personen gibt die weniger als 3 Worhnorte haben.
  3. Prüfung auf nichtatomare Attribute – als zusammengesetzte Attribute, wie z.B. Name, das sich aus Vorname und Nachname zusammensetzt. Diese werden beseitigt indem einfach nur alle Komponenten übernommen werden.

1. Normalform

Sind diese Fälle beseitigt, liegt die 1. NF vor und Sie können mit der Herleitung der 2. NF beginnen.

2. Normalform

Die zweite Normalform beseitigt partielle funktionale Abhängigkeiten. Diese Analyse muss nur bei Relationen durchgeführt werden die einen zusammengesetzten Primärschlüssel haben. Kann eine funktionale Abhängigkeit eines Nichtschlüssels von einem der Primärschlüsselkandidaten (also einem Teil eines zusammengesetzten Primärschlüssels) festgestellt werden, so muss diese beseitigt werden.

Vorgehensweise zur Herleitung der 2. Normalform

  1. Prüfung ob einer der Nichtschlüssel voll von einem der Primärschlüsselkandidaten abhängt.
  2. Ist dies der Fall werden alle partiell abhängigen Attribute mit identischen Abhängigkeiten mit Ihrem Schlüssel von dem sie bestimmt werden in eine neue Relation überführt. Dabei wird der Teil des ursprünglichen Primärschlüssel der die neue Relation voll bestimmt zum Primärschlüssel der neuen Relation und fungiert gleichzeitig als Fremdschlüssel in der Ursprungsrelation.

2. Normalform

3. Normalform

Die dritte NF eliminiert transitive Abhängigkeiten. Die Transitivität von Funktional-Relationen besagt: wenn A→B und B→C dann gilt auch A→C:

Genauer gesagt werden funktionale Abhängigkeiten zwischen Nichtschlüsselattributen gesucht. Wird ein Nichtschlüsselattribut von einem anderen Nichtschlüssel bestimmt so wird es auch transitiv von dessen Primärschlüssel bestimmt.

 

Vorgehensweise zur Herleitung der 3. Normalform

  1. Finden aller Funktionalen Abhängigkeiten zwischen Nichtschlüsselattributen
  2. Wenn ein oder mehrere Attribute von einem anderen Nichtschlüssel bestimmt werden, werden diese Attribute in eine neue Relation aufgenommen während der neue Primärschlüssel gleichzeitig zum Fremdschlüssel in der ursprünglichen Relation wird.

3. Normalform

 

4. Normalform – Boyce-Codd-Normalform

Die Boyce-Codd-Normalform war ursprünglich als einfachere 3. NF vorgeschlagen worden, es stellte sich jedoch schnell heraus, dass dem nicht so ist und die BCNF tatsächlich strenger als die 3.NF ist. Es kann nämlich nachgewisen werden dass jede Relation in BCNF immer die 3.NF erfüllt, jedoch ist dies umgekehrt eben nicht der Fall. Die Normalisierung bis zur 4.NF ist Standard in der Industrie, daher behandle ich sie an dieser Stelle auch als relevant.

Die BCNF betrachtet funktionale Abhängigkeiten bei denen Nichtschlüssel-Attribute Primärschlüsselkandidaten bestimmen.

Vorgehensweise zur Herleitung der 4. Normalform

  1. Auffinden aller normaler Attribute die einen Primärschlüsselkandidaten funktional bestimmen.
  2. Liegt ein solcher Fall vor, wird eine neue Relation erzeugt die den neuen Schlüssel und die bestimmten Attribute enthält. Der Primärschlüssel bleibt in der alten Relation erhalten und wird zum Fremdschlüssel der die neue Relation referenziert.

Nehmen wir z.B. die Relation R(Ort, Strasse, Hausnummer, PLZ) mit {Ort, Strasse, Hausnummer}->PLZ und PLZ->Ort. Die Relation erfüllt zwar die 3.NF aber nicht die 4.NF. Wir teilen diese Relation in R1(Plz, Ort) und R2(Strasse, Hausnummer, Plz) die beide die 4.NF erfüllen.

Boyce-Codd-Normalform

Veröffentlicht inDatenbankenDatenmodellierungTechnik und Technologie

Sei der Erste der einen Kommentar abgibt

Schreibe einen Kommentar