[Datenbanken] Normalisierung

Gründe der Normalisierung

  • Erhöhung der Konsistenz – Daten sollen nur an einer Stelle gespeichert werden
  • Vermeidung von Redundanz – Vermeidung von unnötiger Mehrfachspeicherung
  • Vermeidung von Anomalien – Vorgänge für Einfügen, Ändern, Löschen unabhängig von anderen Daten
  • klare Datenstrukturen – sinnvolles Verteilen von zusammengehörigen Daten
  • praxisrelevant sind Normalisierungen bis zur 3. Normalform oder BCNF

Normalformen

1. Normalform

  • atomare Strukturen, keine Listen/Mengen in einer Zeile
  • keine wiederholenden Gruppen

2. Normalform

  • Tabelle in 1NF und mit Schlüsselbeziehungen (Primär-, Fremd-)
  • jedes Nichtschlüsselattribut ist voll funktional abhängig vom gesamten Primärschlüssel

3. Normalform

  • Tabelle in 2NF und keine transitiven Abhängigkeiten von Nichtschlüsselattributen

Boyce-Codd-Normalform (BCNF)

  • Verschärfung der 3NF: Für jede funktionale Abhängigkeit X->Y muss X ein Superschlüssel sein

4. Normalform

  • Tabelle ist in BCNF und enthält keine problematischen mehrwertigen Abhängigkeiten
  • unabhängige Mehrfachbeziehungen werden auf getrennte Tabellen aufgeteilt

5. Normalform

  • Tabelle ist in 4NF und lässt sich nicht weiter verlustfrei durch Zerlegung in kleinere Tabellen aufteilen, ohne Informationsverlust oder künstliche Kombinationen