Was ist Datenbanknormalisierung?

Visuelle Darstellung von Datenbanken

Autoren

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Was ist Datenbanknormalisierung?

Die Datenbanknormalisierung ist ein Prozess des Datenbankdesigns, bei dem Daten in bestimmten Tabellenstrukturen organisiert werden. Sie hilft bei der Verbesserung der Datenintegrität, der Vermeidung von Datenanomalien, der Minimierung von Datenredundanz und der Verbesserung der Abfrageleistung.

 

Die Normalisierung optimiert Tabellen in Datenbankverwaltungssystemen (DBMS) im Hinblick auf die Einhaltung der so genannten Normalformen: Regeln, die festlegen, wie Attribute in einer Tabelle organisiert sind. Diese Regeln basieren größtenteils auf Beziehungen zwischen Attributen (Spalten), einschließlich der Schlüssel, die zur eindeutigen Identifizierung von Zeilen verwendet werden.

Warum ist die Datenbanknormalisierung wichtig?

Im Kern hilft die Datenbanknormalisierung (auch Datennormalisierung genannt) Unternehmen und Institutionen, große Mengen komplexer, miteinander verbundener und dynamischer Daten effektiver zu organisieren, abzufragen und zu verwalten. Obwohl Unternehmen heute Daten in einem noch nie dagewesenen Umfang erzeugen und speichern, ist die Notwendigkeit der Datenbanknormalisierung nicht neu. Sie war schon vor der Cloud-Speicherung und sogar vor der Erfindung von Data Warehouses notwendig.

Seit den 1960er Jahren haben sich Unternehmen mit der Verwaltung großer Datenmengen herumgeschlagen. In den 1970er Jahren regte Edgar F. Codd, der IBM-Mathematiker, der für seine bahnbrechende Arbeit zur Einführung relationaler Datenbanken bekannt wurde, an, dass die Normalisierung von Datenbanken „unerwünschte“ Abhängigkeiten zwischen Attributen (Spalten) und die daraus resultierenden Probleme vermeiden könnte.

Mit anderen Worten: Wenn Datensätze in einer Datenbankstruktur miteinander in Beziehung stehen, können Änderungen an einzelnen Werten oder Zeilen in einer großen, komplizierten Tabelle unbeabsichtigte Folgen haben – wie Dateninkonsistenz und Datenverlust. Die Normalisierung von Datenbanken dient der Minimierung solcher Risiken.

Welche Vorteile bietet die Datenbanknormalisierung?

Zu den Vorteilen der Datenbanknormalisierung gehören:

Vermeidung von Datenanomalien

Wenn größere, kompliziertere Tabellen in kleinere, einfachere Tabellen zerlegt (oder aufgeteilt) werden, wird das Ändern einer Datenbank einfacher und weniger fehleranfällig und beschränkt die Änderungen auf die nun kleineren Tabellen mit verwandten Daten.

Reduzierung unbeabsichtigter Datenredundanz

Während beabsichtigte Datenredundanz zur Verbesserung der Datenqualität, -sicherheit und -verfügbarkeit beitragen kann, ist unbeabsichtigte Datenredundanz der Effekt von Systemen, die versehentlich doppelte Daten erzeugen, was wiederum zu Ineffizienzen führt.

Einsparungen bei der Datenspeicherung

Die Reduzierung von doppelten Daten durch Datenbanknormalisierung kann die Kosten für die Datenspeicherung senken. Dies ist besonders für Cloud-Umgebungen wichtig, in denen die Preise oft auf dem Volumen des verwendeten Datenspeichers basieren.

Schnellerer Datenabruf

Eine geringere Datenredundanz aufgrund der Normalisierung kann auch zu schnelleren Datenabfragen führen, da eine geringere Redundanz oft weniger Datenverarbeitung bei der Suche erfordert.

Welche Datenanomalien behebt die Datenbanknormalisierung?

Durch die Normalisierung von Datenstrukturen können drei wesentliche Arten von Anomalien verhindert werden:

Anomalien bei der Einfügung: Eine Anomalie bei der Einfügung tritt auf, wenn ein Datensatz nicht in eine Tabelle eingefügt werden kann, weil ihm Werte fehlen, die für eine oder mehrere Spalten in der Tabelle erforderlich sind.

Anomalien bei der Löschung: Eine Anomalie bei der Löschung tritt auf, wenn das Löschen eines Datensatzes zur unbeabsichtigten Löschung wichtiger Daten in diesem Datensatz führt.

Anomalien bei der Aktualisierung: Eine Anomalie bei der Aktualisierung tritt auf, wenn eine Dateninstanz an einem Ort in einer Datenbank aktualisiert wird, aber nicht an anderen Orten, an denen dieser Datenwert ebenfalls gespeichert ist, was wiederum zu einer mangelnden Datenkonsistenz führt.

Die Bedeutung von Schlüsseln bei der Datenbanknormalisierung

In relationalen Datenbanken ist ein Schlüssel eine Spalte oder eine geordnete Sammlung von Spalten, die zur Identifizierung von Datenzeilen in einer Tabelle verwendet wird. Schlüssel in relationalen Modellen stellen auch Verbindungen zwischen verwandten Tabellen her. Diese Fähigkeiten unterstützen erfolgreiche, effiziente Abfragen von SQL Databases. Zu den Schlüsseln, die in den Normalisierungsregeln von Datenbanken eine wichtige Rolle spielen, gehören:

  • Primärschlüssel
  • Composite-Schlüssel
  • Bewerberschlüssel
  • Fremdschlüssel
  • Superschlüssel

Primärschlüssel

Ein Primärschlüssel ist eine Spalte oder Spalten in einer Datenbanktabelle mit Werten, die als eindeutige Identifikatoren für jede Zeile oder jeden Datensatz dienen. Zum Beispiel könnte eine Spalte mit der Studenten-ID ein Primärschlüssel in einer Tabelle mit Studenteninformationen sein. Definierende Merkmale von Primärschlüsseln sind, dass sie Nullwerte ausschließen, keine doppelten Werte haben und entweder aus einzelnen oder mehreren Spalten bestehen können.

Composite-Schlüssel

Schlüssel, die aus zwei oder mehr Spalten bestehen, werden zusammengesetzte Schlüssel genannt. Wenn Primärschlüssel zusammengesetzte Schlüssel sind, können sie als zusammengesetzte Primärschlüssel bezeichnet werden.

Bewerberschlüssel

Ein Kandidatenschlüssel ist eine Spalte oder eine Gruppe von Spalten, die die Merkmale eines Primärschlüssels aufweist, aber noch nicht als Primärschlüssel festgelegt wurde.

Fremdschlüssel

Ein Fremdschlüssel in einer Tabelle verweist auf einen bestimmten Primärschlüssel in einer anderen Tabelle, um eine Beziehung zwischen den Tabellen zu definieren. Wenn größere Tabellen während der Normalisierung in kleinere Tabellen aufgeteilt werden, stellen Fremdschlüssel und Primärschlüssel eine Verbindung zwischen den neuen Tabellen her.

Superschlüssel

Superschlüssel ähneln zwar den zusammengesetzten Primärschlüsseln, bestehen aber ebenfalls aus mehr Spalten als zur eindeutigen Identifizierung von Datensätzen erforderlich sind.

Die Bedeutung von Abhängigkeiten bei der Datenbanknormalisierung

Mehrere Datenbank-Normalisierungsbeschränkungen basieren auf den Beziehungen (auch als Abhängigkeiten bezeichnet) zwischen Primärschlüsseln und Spalten, die weder Primär- noch Kandidatenschlüssel sind. Letztere werden als Nicht-Schlüsselattribute oder Nicht-Primärattribute bezeichnet.

Beziehungen zwischen Attributen in Datenbanken, bei denen ein Attribut (die Determinante) den Wert eines anderen Attributs bestimmt, werden als funktionale Abhängigkeiten bezeichnet. Zu den Arten von funktionalen Abhängigkeiten zwischen Attributen gehören die partielle Abhängigkeit, die transitive Abhängigkeit, die mehrwertige Abhängigkeit und die Join-Abhängigkeit. Diese Beziehungen lassen sich am besten verstehen, wenn sie im Zusammenhang mit den entsprechenden Normalisierungsregeln oder Normalformen diskutiert werden.

Was sind die Normalformen der Datenbanknormalisierung?

Die Ausführung der Normalisierung in Datenmodellen beinhaltet die Gestaltung von Tabellen, die einer oder mehreren Normalisierungsebenen entsprechen, die auch als Normalformen bezeichnet werden. Zu den gängigen Formen gehören:

  • Erste Normalform
  • Zweite Normalform
  • Dritte Normalform und Boyce-Codd-Normalform
  • Vierte Normalform
  • Fünfte Normalform

Erste Normalform

Die erste Normalform, das grundlegendste Kriterium für die Normalisierung von Datenbanken, verlangt, dass ein Datenbanktabellenschema einen Primärschlüssel enthält und Wiederholungen zwischen den Spalten ausschließt. Konkret bedeutet dies, dass eine Tabelle in erster Normalform keine Felder mit Arrays von Werten enthalten sollte (z. B. eine einzelne Zelle mit drei verschiedenen Namen) und auch keine sich wiederholenden Gruppen, d. h. verschiedene Spalten, die den gleichen Datentyp speichern.

Um die erste Normalform besser zu verstehen, wollen wir den folgenden Spaltensatz als Beispiel verwenden:1

rec_num

   lname

 Fname

 bdate

 anniv

 email

 child1

 child2

 child3

 

Die Spalten bestehen aus einer Tabelle einer Gruppe von Eltern, einschließlich ihrer Namen, Geburtstage, Hochzeitstage, E-Mails und Namen der Kinder.

Diese Tabelle verstößt gegen die erste Normalform, da sie drei separate Spalten enthält, in denen dieselbe Art von Informationen gespeichert ist: die Namen der Kinder. Insbesondere in diesem Fall könnte die Tabellenstruktur Einfügungsfehlern Tür und Tor öffnen. In der realen Welt haben zum Beispiel viele Eltern weniger als drei Kinder.

In unserer Beispieltabelle ist es nicht möglich, solche Elterndatensätze zur Tabelle hinzuzufügen. Darüber hinaus wäre die Abfrage dieser Tabelle nach dem Namen eines Kindes ineffizient, da in jeder Zeile Daten in drei verschiedenen Spalten gesucht werden müssten.

Um die erste Normalform für die Daten in der Tabelle zu erreichen, muss die Originaltabelle in zwei Tabellen aufgeteilt werden. Eine Tabelle würde die meisten Attribute der Originaltabelle enthalten, während die andere sich auf die Kinder konzentrieren würde.

TABELLE 1

rec_num

lname

fname

bdate

anniv

E-Mail

 

TABELLE 2

rec_num         child_name

In diesem Beispiel bleiben die neuen Tabellen über die Spalte „rec_num“ verknüpft, die der Primärschlüssel in Tabelle 1 ist und von der Spalte „rec_num“ in Tabelle 2 referenziert wird, die als Fremdschlüssel dient.

Auch wenn die Erfüllung der ersten Normalform redundante Daten nicht reduziert („rec_num“-Werte erscheinen in mehreren Zeilen der Tabelle 2, wenn Eltern mehr als ein Kind haben), kann die Eliminierung von sich wiederholenden Gruppen Abfragen einfacher machen.

Zweite Normalform

In der zweiten Normalform hat kein Nicht-Schlüssel-Attribut eine teilweise Abhängigkeit vom Primärschlüssel der Tabelle. Mit anderen Worten: Wenn ein Primärschlüssel ein zusammengesetzter Schlüssel ist, sollte das Nicht-Schlüssel-Attribut von jeder Spalte in diesem zusammengesetzten Schlüssel abhängen.

Stellen Sie sich beispielsweise eine Bestandstabelle vor, die Aufzeichnungen über die Mengen bestimmter Teile enthält, die in bestimmten Lagern gelagert werden. Die folgende Abbildung zeigt die Attribute der Bestand-Entität.2

part

warehouse

quantity

warehouse_address

 

In diesem Beispiel bilden die Spalten „part“ und „warehouse“ einen zusammengesetzten Primärschlüssel. Das Attribut „warehouse_address“ hängt jedoch nur vom Wert von „warehouse“ ab, sodass die Tabelle gegen die zweite Normalform verstößt.

Diese Tabelle ist ebenfalls anfällig für Datenredundanz, da der Wert für warehouse_address jedes Mal aufgeführt wird, wenn ein Datensatz für ein Teil aus demselben Lager in der Tabelle erscheint. Dies erhöht das Risiko von Aktualisierungsfehlern, wenn die Adresse in einer Zeile aktualisiert wird und in anderen nicht. Ein Löschfehler kann auch auftreten, wenn ein Lager die Lagerung von Teilen einstellt. Wenn die Datensätze für diese Teile gelöscht werden, wird auch die Lageradresse gelöscht.

Um die zweite Normalform zu erfüllen und die Fehlerwahrscheinlichkeit zu verringern, können die Daten auf zwei neue Tabellen verteilt werden:

TABELLE 1

part

warehouse

quantity

 

TABELLE 2

warehouse                                warehouse_address

Dritte Normalform und Boyce-Codd-Normalform

Eine Tabelle in dritter Normalform erfüllt sowohl die erste als auch die zweite Normalform und vermeidet außerdem Situationen, in denen Nicht-Schlüssel-Attribute von anderen Nicht-Schlüssel-Attributen anstelle von Primärschlüsseln abhängen. Wenn Nicht-Schlüssel-Attribute von anderen Nicht-Schlüssel-Attributen abhängen, wird dies als transitive Abhängigkeit bezeichnet – eine Verletzung der dritten Normalform.

Betrachten Sie die folgende Tabelle mit Mitarbeiterinformationen:3

emp_num

emp_fname

emp_lname

dept_num

dept_name

0200

David

Brown

D11

Fertigungssystem

0320

Ramlal

Mehta

E21

Softwareunterstützung

0220

Jennifer

Lutz

D11

Fertigungssystem

 

In dieser Tabelle ist die Spalte „emp_num“ der Primärschlüssel. Die Spalte „dept_name“ hängt jedoch von der Spalte „dept_num“ ab, einem Nicht-Schlüsselattribut. Daher entspricht die Tabelle nicht der dritten Normalform und erhöht das Risiko von Fehlern wie Aktualisierungsanomalien: Wenn sich ein Abteilungsname, beispielsweise „Fertigungssystem“, ändern würde, müsste er unter dem aktuellen Tabellenschema in mehr als einer Zeile aktualisiert werden.

Die Organisation der Daten in dritter normaler Form in einer normalisierten Datenbank könnte solche Fehler verhindern. In diesem Fall würde dieser Prozess die Strukturierung der Daten in drei separate Tabellen bedeuten: EMPLOYEE, DEPARTMENT und EMPLOYEE_DEPARTMENT 4

EMPLOYEE-Tabelle

emp_num

emp_fname

emp_lname

0200

David

Brown

0320

Ramlal

Mehta

0220

Jennifer

Lutz

 

DEPARTMENT-Tabelle

dept_num

dept_name

D11

Fertigungssystem

E21

Softwareunterstützung

 

EMPLOYEE_DEPARTMENT-Tabelle

dept_num

emp_num

D11

0200

D11

0220

E21

0320

 

Die Boyce-Codd-Normalform (BCNF) ist eine Normalform, die als eine strengere oder stärkere Version der dritten Normalform angesehen wird. BCNF erfordert die Verwendung von Superschlüsseln.

Vierte Normalform

Eine Tabelle befindet sich in der vierten Normalform, wenn sie keine mehrwertigen Abhängigkeiten aufweist. Mehrwertige Abhängigkeiten treten auf, wenn die Werte von zwei oder mehr Spalten unabhängig voneinander sind und nur vom Primärschlüssel abhängen.

Ein häufig zitiertes Beispiel in Tutorials sind Mitarbeitertabellen, in denen sowohl Fähigkeiten als auch Sprachen aufgeführt sind. Ein Mitarbeiter kann mehrere Fähigkeiten haben und mehrere Sprachen sprechen. Es gibt zwei Beziehungen: eine zwischen Mitarbeitern und Fähigkeiten und eine zwischen Mitarbeitern und Sprachen.

Eine Tabelle befindet sich nicht in der vierten Normalform, wenn sie beide Beziehungen darstellt. Um die Daten in die vierte Normalform umzuwandeln, müssten sie in zwei Tabellen strukturiert werden – eine für die Fähigkeiten der Mitarbeiter und eine für die Sprachen.

Fünfte Normalform

Die fünfte Normalform wird gemeinhin als die höchste Normalisierungsstufe angesehen und ist ein Kriterium, das sich auf die Join-Abhängigkeit konzentriert. Bei der Verknüpfungsabhängigkeit ist es möglich, nach der Aufteilung einer Tabelle in kleinere Tabellen die ursprüngliche Tabelle wiederherzustellen, indem die neuen Tabellen wieder zusammengefügt werden – und zwar ohne Datenverlust oder versehentliche Erstellung neuer Datenzeilen. Es ist vergleichbar mit einem fertigen Puzzle, das, wenn es auseinandergebrochen ist, wieder in seiner ursprünglichen Form zusammengesetzt werden kann.

In der fünften Normalform sollte eine Tabelle nur dann in kleinere Tabellen aufgeteilt werden, wenn eine Join-Abhängigkeit erreicht werden kann. Wenn jedoch der Versuch, die ursprüngliche Tabelle aus kleineren Tabellen wieder zusammenzusetzen, ungewollt zur Erstellung einer etwas anderen Tabelle führt, sollte die Zerlegung der ursprünglichen Tabelle nicht stattfinden. Um zu unserer Puzzle-Analogie zurückzukehren: Es wäre, als würde man ein Puzzle wieder zusammensetzen, nur um festzustellen, dass ein Teil fehlt oder ein zusätzliches Teil aufgetaucht ist.

Was sind die Herausforderungen der Datenbanknormalisierung?

Trotz aller Vorteile bringt die Normalisierung von Datenbanken auch Nachteile mit sich. So muss ein Benutzer, der bestimmte Daten sucht, vor der Normalisierung möglicherweise nur eine Tabelle abfragen. Wenn eine Datenbank jedoch nach einer Normalisierung mehr Tabellen hat, muss der Benutzer möglicherweise mehrere Tabellen abfragen, was langsamer und teurer sein kann.

Darüber hinaus kann die Normalisierung, auch wenn sie einzelne Tabellen einfacher macht, die Komplexität der Datenbank insgesamt erhöhen, sodass die Datenbankdesigner und -administratoren für eine ordnungsgemäße Implementierung erhebliche Fachkenntnisse benötigen.

Weiterführende Lösungen
IBM® StreamSets

Erstellen und verwalten Sie intelligente Streaming-Datenpipelines über eine intuitive grafische Benutzeroberfläche, die eine nahtlose Datenintegration in Hybrid- und Multicloud-Umgebungen ermöglicht.

StreamSets erkunden
IBM watsonx.data

Watsonx.data ermöglicht es Ihnen, Analysen und KI mit all Ihren Daten zu skalieren, unabhängig davon, wo sie sich befinden, und zwar über einen offenen, hybriden und kontrollierten Datenspeicher.

IBM watsonx.data entdecken
Beratungsservices für Daten und Analysen

Erschließen Sie den Wert von Unternehmensdaten mit IBM Consulting® und bauen Sie ein erkenntnisgesteuertes Unternehmen auf, das Ihnen geschäftliche Vorteile verschafft.

Analyse-Services entdecken
Machen Sie den nächsten Schritt

Entwerfen Sie eine Datenstrategie, die Datensilos beseitigt, die Komplexität reduziert und die Datenqualität verbessert, um außergewöhnliche Kunden- und Mitarbeitererfahrungen zu schaffen.

Lösungen für Datenmanagement erkunden IBM watsonx.data entdecken
Fußnoten

1First normal form“. IBM Documentation, Informix Servers. 19. November 2024

2, 3, 4 Normalization in database design“. IBM Documentation, Db2 for z/OS. 22. Januar 2025.