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: Abgeändert
Neueste Kommentare
2 Kommentare zu Datenbanken normalisieren
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
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…
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?