Normalisierung

Aus FI-Wiki

Normalisierung ist ein Verfahren zur Strukturierung von Datenbanktabellen. Ziel ist es, Redundanzen zu vermeiden und Datenkonsistenz sicherzustellen.

Die Normalisierung wird hauptsächlich bei relationalen Datenbanken angewendet.

Ziel der Normalisierung

Durch Normalisierung sollen:

  • doppelte Datenspeicherung vermieden werden
  • Einfüge-, Änderungs- und Löschanomalien verhindert werden
  • Tabellen logisch und übersichtlich aufgebaut sein

Grundprinzip

Große Tabellen werden in mehrere kleinere Tabellen aufgeteilt. Diese Tabellen werden über Primär- und Fremdschlüssel miteinander verknüpft.

Normalformen

Die Normalisierung erfolgt schrittweise in sogenannte Normalformen.

1. Normalform (1NF)

Bedingungen:

  • Alle Attribute enthalten nur atomare (unteilbare) Werte
  • Keine Wiederholungsgruppen

Beispiel (nicht 1NF):

Kunde Telefonnummern
Müller 12345, 67890

Korrekt (1NF):

Kunde Telefonnummer
Müller 12345
Müller 67890

2. Normalform (2NF)

Bedingungen:

  • Tabelle ist in 1NF
  • Jedes Nicht-Schlüsselattribut ist vollständig vom Primärschlüssel abhängig

Problem: Teilabhängigkeiten bei zusammengesetzten Schlüsseln.

Beispiel zur 2. Normalform (2NF)

Gegeben ist folgende Tabelle:

Bestellnr Artikelnummer Artikelname Menge
1001 A01 Tastatur 2
1001 A02 Maus 1
1002 A01 Tastatur 1

Primärschlüssel ist hier die Kombination aus:

  • Bestellnr
  • Artikelnummer

→ zusammengesetzter Primärschlüssel

Problem: Der Artikelname hängt nur von der Artikelnummer ab, nicht von der gesamten Kombination (Bestellnr + Artikelnummer).

Das ist eine Teilabhängigkeit und verletzt die 2. Normalform.

Lösung (Aufteilung in zwei Tabellen)

Tabelle: Bestellposition

Bestellnr Artikelnummer Menge
1001 A01 2
1001 A02 1
1002 A01 1

Tabelle: Artikel

Artikelnummer Artikelname
A01 Tastatur
A02 Maus

Jetzt gilt: Alle Nicht-Schlüsselattribute hängen vollständig vom jeweiligen Primärschlüssel ab.

→ Die Tabellen befinden sich in der 2. Normalform.

3. Normalform (3NF)

Bedingungen:

  • Tabelle ist in 2NF
  • Keine transitiven Abhängigkeiten

Das bedeutet: Ein Nicht-Schlüsselattribut darf nicht von einem anderen Nicht-Schlüsselattribut abhängen.

Beispiel (nicht 3NF):

Kundennr Kundenname PLZ Ort
1 Müller 12345 Berlin

Problem: Der Ort hängt von der PLZ ab, nicht direkt von der Kundennummer.

Lösung: PLZ und Ort in eigene Tabelle auslagern.

Vorteile der Normalisierung

  • geringerer Speicherbedarf
  • bessere Datenkonsistenz
  • weniger Fehler bei Änderungen
  • klare Tabellenstruktur

Nachteile

  • mehr Tabellen
  • komplexere Abfragen (JOINs notwendig)

Kurzmerksatz

Normalisierung reduziert Redundanz und sorgt für konsistente, logisch strukturierte Datenbanktabellen.