Skip to main content

Eine Datenbank in die zweite Normalform (2NF) stellen

Was ist eine Datenbank? Was ist ein Datenbankssystem? (March 2024)

Was ist eine Datenbank? Was ist ein Datenbankssystem? (March 2024)
Anonim

Wir haben einige Aspekte der Normalisierung einer Datenbanktabelle untersucht. Zuerst haben wir die Grundprinzipien der Datenbanknormalisierung diskutiert. Beim letzten Mal haben wir die Grundanforderungen der ersten Normalform (1NF) untersucht. Lassen Sie uns nun unsere Reise fortsetzen und die Prinzipien der zweiten Normalform (2NF) behandeln.

Die allgemeinen Anforderungen von 2NF

  • Entfernen Sie Teilmengen von Daten, die sich auf mehrere Zeilen einer Tabelle beziehen, und platzieren Sie sie in separaten Tabellen.
  • Erstellen Sie Beziehungen zwischen diesen neuen Tabellen und ihren Vorgängern mithilfe von Fremdschlüsseln.

Diese Regeln können in einer einfachen Anweisung zusammengefasst werden: 2NF versucht, die Menge der redundanten Daten in einer Tabelle zu reduzieren, indem sie extrahiert, in neue (n) Tabellen eingefügt und Beziehungen zwischen diesen Tabellen erstellt werden.

Schauen wir uns ein Beispiel an. Stellen Sie sich einen Online-Shop vor, der Kundeninformationen in einer Datenbank verwaltet. Sie haben möglicherweise eine einzige Tabelle mit dem Namen Kunden mit den folgenden Elementen:

  • CustNum
  • Vorname
  • Nachname
  • Adresse
  • Stadt
  • Zustand
  • POSTLEITZAHL

Ein kurzer Blick auf diese Tabelle zeigt eine kleine Menge redundanter Daten. Wir speichern die Einträge "Sea Cliff, NY 11579" und "Miami, FL 33157" jeweils zweimal. Nun, dies scheint in unserem einfachen Beispiel nicht viel zu viel Speicher hinzuzufügen, aber stellen Sie sich den verschwendeten Speicherplatz vor, wenn wir Tausende von Zeilen in unserer Tabelle hätten. Wenn sich die Postleitzahl für Sea Cliff ändern würde, müssten wir diese Änderung an vielen Stellen in der Datenbank vornehmen.

In einer 2NF-kompatiblen Datenbankstruktur werden diese redundanten Informationen extrahiert und in einer separaten Tabelle gespeichert. Unsere neue Tabelle (nennen wir sie ZIPs) kann die folgenden Felder enthalten:

  • POSTLEITZAHL
  • Stadt
  • Zustand

Wenn wir sehr effizient sein möchten, können wir diese Tabelle sogar vorab füllen. Die Post stellt ein Verzeichnis aller gültigen Postleitzahlen und ihrer Beziehungen zwischen Stadt und Bundesstaat bereit. Sicher haben Sie eine Situation gefunden, in der diese Art von Datenbank verwendet wurde. Jemand, der eine Bestellung aufnimmt, hat Sie möglicherweise zuerst nach Ihrer Postleitzahl gefragt und wusste dann, in welcher Stadt und in welchem ​​Bundesland Sie angerufen haben. Diese Art der Anordnung reduziert Bedienerfehler und erhöht die Effizienz.

Nachdem wir die doppelten Daten aus der Customers-Tabelle entfernt haben, haben wir die erste Regel der zweiten Normalform erfüllt. Wir müssen immer noch einen Fremdschlüssel verwenden, um die beiden Tische miteinander zu verbinden. Wir verwenden die Postleitzahl (den Primärschlüssel aus der ZIP-Tabelle), um diese Beziehung zu erstellen. Hier ist unsere neue Kundentabelle:

  • CustNum
  • Vorname
  • Nachname
  • Adresse
  • POSTLEITZAHL

Wir haben jetzt die Menge an redundanten Informationen, die in der Datenbank gespeichert sind, minimiert, und unsere Struktur hat die zweite normale Form.