Damit eine Tabelle die Kriterien der ersten Normalform erfüllt, muss der Datenbank-Designer sicherstellen, dass jede Zeile einmalig ist, dass jede Zelle in einer Spalte den gleichen Daten-Typ verwendet und dass jede Zelle nur einen Wert enthält. Normalerweise muss sich der Designer darauf konzentrieren, alle sich wiederholenden Datengruppen zu entfernen, damit ein Datenbank-Schema der ersten Normalform entspricht.
Zur Illustration von sich wiederholenden Datengruppen habe ich der Tabelle employee in Abbildung D Gebäude-Informationen hinzugefügt. Man kann erkennen, dass die Gebäudenummer (building_num), der Gebäudename (building_name) und der Ort des Gebäudes (building_location) für jeden neu eingegebenen Angestellten wiederholt werden würde. Muss man nun einen Gebäudenamen ändern, müsste man den Datensatz jedes Angestellten aktualisieren, der diese Gebäudeinformation enthält. Auch weitere Anomalien sind denkbar. Die Konsolidierung dieser wiederholten Informationen in einer neuen Tabelle und das Einrichten einer Fremdschlüssel-Beziehung würde für die Anwendung ein besseres Design darstellen.
Abbildung D: Sich wiederholende Gruppen
Ein Beispiel aus dem wahren Leben
Kürzlich dachte ich über eine Integrationsbrücke zwischen einer Anwendung, die ich gerade baue, und einer Anwendung, auf die ein Kunde migrieren wird, nach. Mir wurde gesagt, der Kunde beabsichtige, Primärschlüssel für den Vertrieb zu erstellen, indem er den Namen des Verkäufers bzw. der Verkäuferin mit seiner oder ihrer territory_id verkettet. Dies würde in etwa wie in Abbildung E aussehen.
Abbildung E: Primärschlüssel
Wie ersichtlich, muss man alle Daten einer Person verdoppeln, mit Ausnahme eines neuen Schlüssels, wenn dieser Person mehr als ein Verkaufsgebiet zugeordnet ist. Dies ist die Handschrift eines Designs, das die Anforderungen der ersten Normalform nicht erfüllt, denn hier gibt es redundante Daten.
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?