Datenbanken normalisieren

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
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
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.

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 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?

  • 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…

Schreibe einen Kommentar

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