Grundlegendes zur Normalisierung

Abgeschlossen

Normalisierung ist ein Begriff, der von Datenbankexperten für einen Schemaentwurfsprozess verwendet wird, der die Datenduplizierung minimiert und die Datenintegrität erzwingt.

Obwohl es viele komplexe Regeln gibt, die den Prozess der Umgestaltung von Daten in verschiedene Ebenen (oder Formen) der Normalisierung definieren, ist eine einfache Definition für praktische Zwecke:

  1. Trennen Sie jede Entität in eine eigene Tabelle.
  2. Trennen Sie jedes einzelne Attribut in eine eigene Spalte.
  3. Identifizieren Sie jede Entitätsinstanz (Zeile) eindeutig mithilfe eines Primärschlüssels.
  4. Verwenden Sie die Fremdschlüsselspalten, um verwandte Entitäten zu verknüpfen.

Um die Kernprinzipien der Normalisierung zu verstehen, angenommen, die folgende Tabelle stellt eine Kalkulationstabelle dar, die ein Unternehmen zum Nachverfolgen seines Umsatzes verwendet.

Diagramm, das eine Bestelldaten in einer einzelnen, nicht normalisierten Tabelle anzeigt.

Beachten Sie, dass die Kunden- und Produktdetails für jeden einzelnen verkauften Artikel dupliziert werden, und dass der Kundenname und die Postanschrift sowie der Produktname und der Preis in denselben Tabellenkalkulationszellen kombiniert werden.

Sehen wir uns nun an, wie die Normalisierung die Art und Weise verändert, wie Daten gespeichert werden.

Diagramm, in dem datenreihenfolgen in einem normalisierten tabellarischen Schema angezeigt werden.

Jede Entität, die in den Daten (Kunde, Produkt, Verkaufsauftrag und Position) dargestellt wird, wird in einer eigenen Tabelle gespeichert, und jedes einzelne Attribut dieser Entitäten befindet sich in einer eigenen Spalte.

Wenn jede Instanz einer Entität als Zeile in einer entitätsspezifischen Tabelle aufgezeichnet wird, werden Duplizierungen von Daten entfernt. Wenn Sie beispielsweise die Adresse eines Kunden ändern möchten, müssen Sie nur den Wert in einer einzelnen Zeile ändern.

Durch die Analyse von Attributen in einzelne Spalten wird sichergestellt, dass jeder Wert auf einen geeigneten Datentyp beschränkt ist, z. B. müssen Produktpreise Dezimalwerte sein, während Zeilenmengen ganzzahlige Zahlen sein müssen. Darüber hinaus bietet die Erstellung einzelner Spalten einen nützlichen Grad an Granularität in den Daten für die Abfrage, z. B. können Sie Kunden ganz einfach nach Personen filtern, die in einer bestimmten Stadt leben.

Instanzen jeder Entität werden eindeutig durch eine ID oder einen anderen Schlüsselwert identifiziert, der als Primärschlüssel bezeichnet wird; und wenn eine Entität auf eine andere verweist (z. B. eine Bestellung hat einen zugeordneten Kunden), wird der Primärschlüssel der zugehörigen Entität als Fremdschlüssel gespeichert. Sie können die Adresse des Kunden (der nur einmal gespeichert ist) für jeden Datensatz in der Tabelle "Bestellung " nachschlagen, indem Sie auf den entsprechenden Datensatz in der Tabelle "Kunden " verweisen. In der Regel kann ein relationales Datenbankverwaltungssystem (RDBMS) referenzielle Integrität erzwingen, um sicherzustellen, dass ein in ein Fremdschlüsselfeld eingegebener Wert über einen entsprechenden Primärschlüssel in der verknüpften Tabelle verfügt, z. B. das Verhindern von Aufträgen für nicht vorhandene Kunden.

In einigen Fällen kann ein Schlüssel (primär oder fremd) als zusammengesetzter Schlüssel basierend auf einer eindeutigen Kombination mehrerer Spalten definiert werden. Beispielsweise verwendet die LineItem-Tabelle im obigen Beispiel eine eindeutige Kombination aus OrderNo und ItemNo , um eine Position aus einer einzelnen Bestellung zu identifizieren.