Logo Wissenstransfer Gerhard at CichnaDotCom

>> Wissensdatenbank / Datenmodellierung und Datenbanksysteme

Konzeption und Modellierung von relationalen Datenbanken

Normalformen von Datenbanken

Um mögliche Fehler bei der Arbeit mit den gespeicherten Daten zu vermeiden, wird die Struktur von Tabellen und Datenbanken anhand objektiver Kriterien bewertet und verbessert. Dazu unterscheidet man zwischen verschiedenen Normalformen. Durch die Normalisierung wird die Struktur einer Datenbank optimiert, in dem sie in eine bestimmte Normalform gebracht wird. Die Normalform einer Datenbank ist ein Maß für die Struktur einer Datenbank. Sie gibt Hinweise dazu, wie redundant Daten in einer Datenbank gespeichert sind. Daten enthalten Redundanz, wenn man Teile von ihnen weglassen kann, ohne dass es zu einem Informationsverlust kommen würde. Falls Daten in einer Datenbank redundant abgelegt sind, ist das Risiko von Inkonsistenzen hoch. Daher sollte bei der Erstellung der Struktur der Datenbanktabellen auf möglichst geringe Redundanz geachtet werden. Je höher die Normalform, desto weniger redundant liegen die Daten vor. Zur Bestimmung einer Normalform wird die Struktur von Attributen einer Relation und deren Abhängigkeiten untereinander betrachtet. Die untenstehende Abbildung zeigt die Abhängigkeiten der im Folgenden näher erläuterten Normalformen. Darüber hinaus gibt es mit der Boyce-Codd-Normalform und der 4. Normalform weitere Stufen oberhalb der 3. Normalform. Für die meisten praktischen Projekte reicht jedoch die 3. Normalform aus, häufig wird schon diese aus Effizienzgründen nicht erreicht.
Abbildung: Abhängigkeiten zwischen Normalformen

Je nach Anforderungen an den Datenbestand wird ein Datenschema durch Normalisierung in die erforderliche Normalform gebracht. Anhand des in der untenstehenden Tabelle gegebenen Beispiels werden im Folgenden die 1., 2. und 3. Normalform von Tabellen erläutert. Das Beispiel gibt an, welcher Lieferant welchen Kunden mit welchem Artikel beliefert hat. Dazu gibt es drei Spalten in der Tabelle, die je Informationen zu Lieferant, Kunden und Artikel enthalten.

Artikellieferung
Lieferant Kunde Artikel
MediaService, Hattstadt Sophie Weber, 182932 Edge Of Tomorrow; EAN 838883
MovieGroup, Hamburg Sophie Weber, 182932 Cry Baby; EAN 1222233
MovieGroup, Hamburg Ralf Fischer, 488389 In the Morning; ISBU XX-NHN-223
FilmService, Berlin Maria Bolz, 299376 Edge Of Tomorrow; EAN 838883

Erste Normalform

Folgende Bedingungen müssen erfüllt sein, damit eine Tabelle in der 1. Normalform vorliegt:

In obiger Tabelle werden diese Kriterien nicht erfüllt, da es sich bei allen Attributen um zusammengesetzte Werte handelt. Der Normalisierungsschritt für die erste Normalform teilt alle vorkommenden zusammengesetzten Werte, Wertaufzählungen oder geschachtelten Werte auf und legt neue Spalten für die Teilelemente an. Des Weiteren werden Schlüsselattribute identifiziert, mit denen sich Datensätze in der Tabelle eindeutig bezeichnen und voneinander unterscheiden lassen. Weiterhin wurde noch kein Primärschlüssel festgelegt. Die folgende Tabelle zeigt die in die 1. Normalform transformierte Beispieltabelle. Hier wurden die zusammengesetzten Attribute Lieferant, Kunde und Artikel in ihre einzelnen Bestandteile zerlegt und jeweils als separates Attribut definiert. Darüber hinaus wurde ein zusammengesetzter Primärschlüssel bestimmt, nämlich die Attribute KundeNummer und ArtikelID. In der untenstehenden Tabelle und allen folgenden Tabellen sind als Primärschlüssel verwendete Attribute dunkel hinterlegt.

Normalform, mit zusammengesetztem Primärschlüssel
Artikellieferung
LieferantName LieferantSitz KundeName KundeVorname KundeNummer ArtikelName ArtikelID
MediaService Hattstadt Weber Sophie 182932 Edge of Tomorrow EAN 838883
MovieGroup Hamburg Weber Sophie 182932 Cry Baby EAN 1222233
MovieGroup Hamburg Fischer Ralf 488389 In the Morning ISBU XX-NHN-223
FilmService Berlin Bolz Maria 299376 Edge of Tomorrow EAN 838883

In der folgenden Tabelle wird eine mögliche Alternative dargestellt, bei der als Primärschlüssel ein künstlicher Schlüssel gewählt wurde. Dazu wurde die Tabelle um die Spalte ArtikellieferungID erweitert.

Normalform, mit transformierter Tabelle samt einfachem Primärschlüssel
Artikellieferung
ArtikellieferungID LieferantName LieferantSitz KundeName KundeVorname KundeNummer ArtikelName ArtikelID
L01 MediaService Hattstadt Weber Sophie 182932 Edge of Tomorrow EAN 838883
L02 MovieGroup Hamburg Weber Sophie 182932 Cry Baby EAN 1222233
L03 MovieGroup Hamburg Fischer Ralf 488389 In the Morning ISBU XX-NHN-223
L04 FilmService Berlin Bolz Maria 299376 Edge of Tomorrow EAN 838883

Mit Erreichen der ersten Normalform wird es möglich, nach bestimmten Attributen zu sortieren und Datensätze eindeutig zu referenzieren und zu verändern.

Zweite Normalform

Die zweite Normalform ist nur für Tabellen mit zusammengesetzten Primärschlüsseln relevant. Folgende Kriterien müssen zusätzlich zu allen Kriterien der 1. Normalform erfüllt sein:

Besteht der Primärschlüssel aus mindestens zwei Attributen, so müssen alle anderen Attribute der Relation immer vom gesamten Schlüssel abhängig sein. Es reicht nicht aus, wenn ein Attribut nur von einem Teil eines Schlüssel abhängig ist. In der vorletzen Tabelle, die in der 1. Normalform vorliegt, sind allerdings die in folgender Abbildung illustrierten Abhängigkeiten erkennbar:

Abbildung: Abhängigkeiten in 1. Normalform

Hinweis
Die Analyse der Abhängigkeiten erfordert Fachwissen. Nur auf Grundlage des dokumentierten Datenschemas ist eine Normalisierung in der Regel nicht möglich.

In den folgenden drei Tabellen sind die Ergebnisse einer in die 2. Normalform transformierten Tabelle abgebildet. Die Abhängigkeiten zu Teilen des Primärschlüssels wurden dadurch aufgelöst, dass zwei neue Tabellen Kunde und Artikel erstellt wurden.

Artikellieferung, 2. Normalform
Artikellieferung
LieferantName LieferantSitz KundeNummer ArtikelID
MediaService Hattstadt 182932 EAN 838883
MovieGroup Hamburg 182932 EAN 1222233
MovieGroup Hamburg 488389 ISBU XX-NHN-223
FilmService Berlin 299376 EAN 838883

Kunde, 2. Normalform
Kunde
KundeName KundeVorname KundeNummer
Weber Sophie 182932
Fischer Ralf 488389
Bolz Maria 299376

Artikel, 2. Normalform
Artikel
ArtikelName ArtikelID
Edge of Tomorrow EAN 838883
Cry Baby EAN 1222233
In the Morning ISBU XX-NHN-223

Für obige Tabelle als aternativer Vorschlag zur ersten Normalform gibt es keine 2. Normalform, da für diese Tabelle ein einfacher (künstlicher) Primärschlüssel gewählt wurde.

Durch die Normalisierung in die 2. Normalform wird erreicht, dass jede Relation bzw. Tabelle genau einen Sachverhalt abbildet. Es wird Redundanz beseitigt, indem gleiche Informationen, wie Artikel oder Kunde, in eigenen Tabellen zusammengefasst und in anderen Tabellen referenziert werden. So werden im Beispiel KundeName und ArtikelName nun genau 1x gespeichert und nicht mehrfach, wie es noch in der 1. Normalform der Fall war.

Dritte Normalform

Eine Tabelle liegt in der 3. Normalform vor, wenn die Kriterien der 1. Normalform bzw. bei Tabellen mit zusammengesetztem Primärschlüssel die Kriterien der 2. Normalform erfüllt sind. Darüber hinaus muss folgendes gelten:

Mit der 2. Normalform sind die verbliebenen Nichtschlüsselattribute einer Tabelle zwar thematisch miteinander verbunden. Es muss allerdings untersucht werden, ob es nicht Abhängigkeiten zwischen den Attributen gibt, die man in eine eigene Tabelle auslagern sollte.

Die folgende Abbildung stellt die Ahängigkeiten zwischen den Attributen LieferantName und LieferantSitz aus der obigen Tabelle "Artikellieferung, 2. Normalform" dar. Diese beiden Attribute haben Abhängigkeiten, die nicht in Bezug zu einem Teil des Primärschlüssels stehen. Daher müssen diese Abhängigkeiten erst aufgelöst werden, damit die 3. Normalform erreicht werden kann.
Abbildung: Abhängigkeiten in der 2. Normalform

Die 3. Normalform der ursprünglichen Beispieltabelle ist in der folgenden Abbildung dargestellt. Es wurden insgesamt 4 Tabellen erstellt.
Abbildung: 3. Normalform mit zusammengesetztem Primärschlüssel

Die 3. Normalform der ursprünglichen Tabelle mit einem neu eingeführten einfachen Primärschlüssel zeigt die nachstehende Abbildung. Auch hier wurden für die 3. Normalform insgesamt 4 Tabellen erstellt.
Abbildung: 3. Normalform mit einfachem Primärschlüssel

In der dritten Normalform sind alle transitiven Abhängigkeiten von Daten sofort ersichtlich, da sie direkt durch die Struktur der Tabellen abgebildet sind.