Normalisierung von Datenbanken bis zur 3. Normalform

Datenbanken sind das Herzstück moderner Informationssysteme. Um sicherzustellen, dass sie effizient und fehlerfrei arbeiten, ist die Normalisierung ein entscheidender Prozess. Normalisierung ist der Prozess der Organisation der Daten in einer Datenbank, um Redundanz zu minimieren und Datenintegrität zu gewährleisten. In diesem Artikel erfährst Du, was Normalisierung ist, warum sie wichtig ist, und wie Du eine Datenbank bis zur dritten Normalform (3NF) normalisieren kannst.

Was ist Normalisierung?

Normalisierung ist ein systematischer Ansatz zur Gestaltung einer Datenbank, der die Daten in Tabellen und Spalten organisiert, um Redundanz und Anomalien zu vermeiden. Jede Normalform hat bestimmte Regeln, die die Struktur und Beziehung der Daten verbessern. Die gängigsten Normalformen sind:

  1. Erste Normalform (1NF)
  2. Zweite Normalform (2NF)
  3. Dritte Normalform (3NF)

Lass uns nun jede dieser Normalformen im Detail betrachten.

Erste Normalform (1NF)

Die erste Normalform legt fest, dass die Werte in jeder Spalte einer Tabelle atomar sein müssen. Das bedeutet, dass jede Zelle in der Tabelle nur einen einzigen Wert enthalten darf. Außerdem muss jede Tabelle einen Primärschlüssel haben, der jede Zeile eindeutig identifiziert.

Beispiel:

Betrachten wir eine einfache Tabelle mit den folgenden Daten:

Kunde_IDNameAdresseBestellungen
1Max MüllerMusterstraße 1Bestellung1, Bestellung2
2Lisa SchmidtBeispielweg 2Bestellung3

Diese Tabelle verletzt die 1NF, da die Spalte „Bestellungen“ mehrere Werte enthält. Um sie in die 1NF zu überführen, müssen wir die Tabelle wie folgt umstrukturieren:

Kunde_IDNameAdresseBestellung
1Max MüllerMusterstraße 1Bestellung1
1Max MüllerMusterstraße 1Bestellung2
2Lisa SchmidtBeispielweg 2Bestellung3

Nun enthält jede Zelle nur einen einzigen Wert, und die Tabelle erfüllt die 1NF.

Zweite Normalform (2NF)

Die zweite Normalform baut auf der 1NF auf und fordert zusätzlich, dass alle nicht-schlüssel Attribute vollständig vom Primärschlüssel abhängen. Das bedeutet, dass keine partiellen Abhängigkeiten existieren dürfen, bei denen ein Attribut nur von einem Teil des Primärschlüssels abhängt.

Beispiel:

Nehmen wir an, wir haben eine Tabelle mit den folgenden Daten:

Bestellungs_IDKunde_IDNameAdresse
11Max MüllerMusterstraße 1
21Max MüllerMusterstraße 1
32Lisa SchmidtBeispielweg 2

Diese Tabelle ist in der 1NF, aber nicht in der 2NF, da „Name“ und „Adresse“ nur von „Kunde_ID“ abhängen, nicht von der Kombination aus „Bestellungs_ID“ und „Kunde_ID“.

Um die Tabelle in die 2NF zu überführen, müssen wir die Tabelle in zwei separate Tabellen aufteilen:

Kunden Tabelle:

Kunde_IDNameAdresse
1Max MüllerMusterstraße 1
2Lisa SchmidtBeispielweg 2

Bestellungen Tabelle:

Bestellungs_IDKunde_ID
11
21
32

Jetzt sind „Name“ und „Adresse“ vollständig von „Kunde_ID“ abhängig, und es existieren keine partiellen Abhängigkeiten mehr.

Dritte Normalform (3NF)

Die dritte Normalform geht noch einen Schritt weiter und verlangt, dass alle Attribute nur vom Primärschlüssel abhängen und nicht von anderen Nicht-Schlüssel Attributen. Es dürfen keine transitiven Abhängigkeiten existieren.

Beispiel:

Betrachten wir eine Tabelle, die sich in der 2NF befindet:

Kunde_IDNameAdresseStadt
1Max MüllerMusterstraße 1Musterstadt
2Lisa SchmidtBeispielweg 2Beispielstadt

Hier hängt „Stadt“ von „Adresse“ ab, nicht direkt von „Kunde_ID“. Um die Tabelle in die 3NF zu überführen, sollten wir die Tabelle weiter aufteilen:

Kunden Tabelle:

Kunde_IDNameAdresse
1Max MüllerMusterstraße 1
2Lisa SchmidtBeispielweg 2

Adressen Tabelle:

AdresseStadt
Musterstraße 1Musterstadt
Beispielweg 2Beispielstadt

Jetzt hängt „Stadt“ nur noch von „Adresse“ ab und nicht mehr indirekt von „Kunde_ID“.

Warum ist Normalisierung wichtig?

Die Normalisierung einer Datenbank hat mehrere Vorteile:

  1. Reduzierung von Redundanz: Durch die Eliminierung von doppelten Daten wird der Speicherbedarf reduziert und die Datenbank effizienter.
  2. Vermeidung von Anomalien: Änderungs-, Einfüge- und Löschanomalien werden vermieden, wodurch die Datenintegrität gewahrt bleibt.
  3. Datenkonsistenz: Die Daten bleiben konsistent, da jede Information nur einmal gespeichert wird.
  4. Einfache Wartung: Eine gut normalisierte Datenbank ist leichter zu verwalten und zu aktualisieren.

Fazit

Die Normalisierung ist ein essenzieller Schritt bei der Gestaltung einer Datenbank. Durch die Einhaltung der Regeln der ersten, zweiten und dritten Normalform kannst Du sicherstellen, dass Deine Datenbank effizient, konsistent und leicht wartbar bleibt. Indem Du die Datenbankstruktur schrittweise verbesserst, minimierst Du Redundanzen und verhinderst Anomalien, was letztendlich zu einem reibungsloseren Betrieb führt.

Denk daran, dass es auch höhere Normalformen gibt, die in bestimmten komplexen Szenarien nützlich sein können. Für die meisten praktischen Anwendungen sind die ersten drei Normalformen jedoch ausreichend. Indem Du die Prinzipien der Normalisierung anwendest, legst Du den Grundstein für eine leistungsfähige und zuverlässige Datenbank.