Zum Inhalt springen

Normalisierung

Die Normalisierung stellt eine Strategie dar, um Redundanz in relationalen Datenbanken zu beseitigen und zu vermeiden. Sie umfasst die Überführung von Datenbanktabellen in höhere Normalformen, wodurch Anomalien verhindert und spezialisierte Abfragen ermöglicht werden. Der umgekehrte Prozess, die Überführung in eine Normalform geringeren Grades, wird als Denormalisierung bezeichnet.

Die Normalisierung erfolgt schrittweise durch die Anwendung verschiedener Normalformen. Diese bauen aufeinander auf und definieren Regeln für die Struktur der Daten.

  1. 1. Normalform (1NF): Alle Daten liegen atomar vor, und Tabellenspalten enthalten gleichartige Werte.
  2. 2. Normalform (2NF): Jedes Nichtschlüsselattribut muss vom Primärschlüssel voll funktional abhängig sein.
  3. 3. Normalform (3NF): Kein Nichtschlüsselattribut darf von einem Schlüsselkandidaten transitiv abhängig sein.

Die Normalisierung bietet mehrere Vorteile für die Datenbankstruktur und -nutzung.

  • Weniger Redundanz in den Daten.
  • Verhinderung von Anomalien.
  • Ermöglichung spezialisierter Abfragen.

Trotz der Vorteile bringt die Normalisierung auch Nachteile mit sich, insbesondere bei der Abfrage und Verwaltung der Daten.

  • Integration von Fremdschlüsseln erforderlich.
  • Viele Joins notwendig.
  • Bei größeren Datensätzen mit vielen Abhängigkeiten entstehen viele Tabellen.

Ein Beispiel verdeutlicht den Prozess der Normalisierung anhand einer Ausgangstabelle mit Redundanzen. Die Schritte führen zur 1NF, 2NF und 3NF.

R.-Nr.R.-NameP.-Nr.P.-NameAnz.Art.-Nr.Artikel
1Müller1Schraube10100Schraube
1Müller2Mutter5101Mutter
2Meier1Schraube8100Schraube
2Meier3Bolzen12102Bolzen

Mehrwertige Daten werden aufgespalten, und Spalten auf Gleichartigkeit geprüft.

R.-Nr.R.-NameP.-Nr.P.-NameAnz.Art.-Nr.Artikel
1Müller1Schraube10100Schraube
1Müller2Mutter5101Mutter
2Meier1Schraube8100Schraube
2Meier3Bolzen12102Bolzen

Spalten, die nicht voll funktional abhängig sind, werden ausgelagert. Die Spalte “Anz.” ist nur von “P.-Nr.” abhängig, nicht von “R.-Nr.”, daher werden “P.-Nr.” und abhängige Spalten ausgelagert.

R.-Nr.R.-Name
1Müller
2Meier
P.-Nr.P.-NameAnz.Art.-Nr.Artikel
1Schraube10100Schraube
2Mutter5101Mutter
3Bolzen12102Bolzen

Spalten, die von einem Nichtschlüsselattribut abhängig sind, werden ausgelagert. “Artikel” ist von “Art.-Nr.” abhängig, wobei “Art.-Nr.” kein Primärschlüssel ist.

R.-Nr.R.-Name
1Müller
2Meier
P.-Nr.P.-NameAnz.Art.-Nr.
1Schraube10100
2Mutter5101
3Bolzen12102
Art.-Nr.Artikel
100Schraube
101Mutter
102Bolzen

Redaktion, I. (2018). Weniger Redundanz dank Datenbank-Normalisierung. IONOS Digital Guide. Abgerufen von https://www.ionos.de/digitalguide/hosting/hosting-technik/normalisierung-von-datenbanken