Datenbanken normalisieren

Die zweite Normalform: Der ganze Schlüssel

Für die zweite Normalform muss sichergestellt sein, dass alle Nicht-Schlüssel-Spalten vom ganzen Schlüssel abhängen. Dies richtet sich an Tabellen mit zusammengesetzten Schlüsseln und schreibt vor, dass alle Nicht-Schlüssel-Spalten vom gesamten Schlüssel abhängen. Sieht man sich Abbildung B noch einmal an, erkennt man, dass die Tabelle titleauthor über einen zusammengesetzten Primärschlüssel verfügt. In dieser Tabelle entschieden sich die Designer, die vom Autor verdienten Tantiemen (royaltyper) unter diesem Titel zu speichern. Dies erfüllt das Kriterium, dass die Tantiemen vom „ganzen Schlüssel“ abhängen müssen, denn sie benötigen sowohl die Informationen über den Autor als auch die über den Titel, um eine gültige Beziehung zu bilden.

Die dritte Normalform: Nichts als der Schlüssel

Die dritte Normalform beschäftigt sich mit dem Entfernen der so genannten transitiven Abhängigkeiten, die auftreten, wenn Nicht-Schlüssel-Spalten eigentlich von anderen Nicht-Schlüssel-Spalten abhängen. Ich habe die Tabelle employee so verändert, dass sie eine Spalte job_name enthält (Abbildung F). Mit dieser Ergänzung befindet sich die Tabelle employee definitiv nicht in der dritten Normalform, denn job_name ist von job_id abhängig. Auch Abbildung E enthält ein Beispiel für eine transitive Abhängigkeit, die in vielen Datenbank-Designs auftritt, nämlich die, dass die Daten für Stadt/Bundesstaat/Postleitzahl eigentlich in einer anderen Tabelle abgelegt werden sollten.

Abbildung F
Abbildung F: Abgeändert

Themenseiten: Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

2 Kommentare zu Datenbanken normalisieren

Kommentar hinzufügen
  • Am 9. Februar 2011 um 21:22 von Jörg Friedrich

    Die Erklärung der ersten Normalform ist falsch
    Die erste Normalform hat nichts mit dem Schlüssel zu tun sondern damit, dass in jedem Feld nur atomare Werte stehen dürfen, also z.B. Trennung von Vorname und Name, Straße und Hausnummer…

  • Am 15. Juli 2009 um 9:40 von Pit Zyclade

    Datenbanken normalisieren
    Die Beispiele sind nicht durchweg gut. Einige Sätze werden rekursiv erklärt, also gar nicht. Warum kann man in Beispielen keine deutschen Bezeichnungen wählen, wenn für eine deutschsprachige Leserschaft geschrieben wird?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *