Redundanz, Konsistenz und Normalformen

Ausgangstabelle

Unter Normalformen versteht man eine Reihe von Anforderungen an Relationen (sinngemäß Datenbanktabellen), die eine fehlerfreie Speicherung der Daten in einer Datenbank garantieren sollen. Diese Anforderungen werden in einer festen Reihenfolge aufgestellt und bauen aufeinander auf. In der Datenbanktheorie spricht man üblicherweise von der ersten (1NF) bis zur fünften Normalform (5NF). Die Definition der einzelnen Normalformen setzt dabei immer die vorhergehende Normalform voraus. (Eine Relation ist z. B. dann in der 2NF, wenn sie in der 1NF ist und zusätzlich die Kriterien der 2 NF erfüllt.) Für die folgenden Normalisierungen soll die unnormalisierte Tabelle Rechnungen dienen.

Rechnungen
ReNr ReDatum ReBetrag KuNr KuName KuOrt ArtNr ArtName
1 12.09.18 1500 2 Müller Berlin 2,4,11 Tisch, Stuhl, Lampe
2 15.10.18 950 5 Schultze München 3 Sofa
3 17.01.19 1025 1 Meyer Hamburg 2,4 Tisch, Stuhl

1. Normalform

Ein gravierender Mangel der Tabelle sind die mehrfachen Merkmalswerte in den Spalten ArtNr und ArtName. Die Tabelle muss so umgebaut werden, dass sie der ersten Normalform (1NF) entspricht. Eine Tabelle hat dann die erste Normalform, wenn sie nur einfache Merkmalswerte enthält (oder wenn alle Attributwerte atomar sind). Durch einfaches Umgruppieren erreicht man die 1NF:

Rechnungen
ReNr ReDatum ReBetrag KuNr KuName KuOrt ArtNr ArtName
1 12.09.18 1500 2 Müller Berlin 2 Tisch
1 12.09.18 1500 2 Müller Berlin 4 Stuhl
1 12.09.18 1500 2 Müller Berlin 11 Lampe
2 15.10.18 950 5 Schultze München 3 Sofa
3 17.01.19 1025 1 Meyer Hamburg 2 Tisch
3 17.01.19 1025 1 Meyer Hamburg 4 Stuhl

In der Tabelle sind Informationen über Adressen der Kunden und Artikelnamen mehrfach abgespeichert. Es liegen also überflüssige Daten vor. Man spricht von Redundanz. Ein Merkmal einer Tabelle ist redundant, wenn einzelne Werte dieses Merkmals innerhalb der Tabelle ohne Informationsverlust weggelassen werden können.

Neben der in dem Beispiel immer wieder sichtbaren Problematik der redundanten Daten ist auf sogenannte Anomalien hinzuweisen, die in unnormalisierten Ausgangstabellen anzutreffen sind. Diese Anomalien werden im Moment der Benutzung der Tabelle für Datenbankoperationen (z. B. Einfügen, Ändern oder Löschen) wirksam.
1. Einfügeanomalie
Wird in die unnormalisierte Ausgangstabelle ein neuer Datensatz eingetragen, müsste dieser Datensatz Angaben zu einem Kunden, Angaben zu den Artikeln und Angaben zur Rechnung enthalten. Soll z. B. nur ein neuer Kunde in die Datenbank aufgenommen werden, würden leere Felder entstehen.
2. Löschanomalie
Das Löschen eines Datensatzes hätte neben dem Verlust von Informationen über Kunden ggf. auch den Verlust von Informationen über die Zuordnung der Nummern zu den Rechnungen zur Folge
3. Änderungsanomalie
Eine Änderung von Informationen über die Artikel (z. B. neue Nummerierung oder Änderung der Bezeichnung) verursacht einen unnötig hohen Aufwand, da diese Änderung durch das mehrfache Auftreten der Information auch mehrfach ausgeführt werden muss.

 2. Normalform

Eine Tabelle befindet sich in der zweiten Normalform, wenn sie sich in der ersten Normalform befindet und jedes Nicht-Schlüsselmerkmal vom Primärschlüssel voll funktional abhängig ist.

Die Merkmale KuNr, KuName, KuOrt, ArtNr und ArtName sind vom Wert des Schlüssels ReNr unabhängig. Von diesem Schlüssel sind nur ReDatum und Rebetrag 1:1 gekoppelt. Offenbar genügt eine einzelne Tabelle nicht mehr, um die Forderung der 2NF zu erfüllen. Die Tabelle muss in verschiedene Entitäten aufgegliedert werden. Sinnvoll wäre sicherlich eine Tabelle Rechnungen, eine Tabelle Kunden.  und eine Tabelle Artikel.

Kunden
KuNr KuName KuOrt
1 Meyer Hamburg
2 Müller Berlin
5 Schultze München

 

Rechnungen
ReNr KuNr ReDatum ReBetrag
1 2 12.09.18 1500
2 5 15.10.18 950
3 1 17.01.19 1025

 

Artikel
ReNr ArtNr ArtName
1 2 Tisch
1 4 Stuhl
1 11 Lampe
2 3 Sofa
3 2 Tisch
3 4 Stuhl

Es ist unschwer zu erkennen, dass in der Tabelle Artikel wieder Redundanzen auftreten. Diese Tabelle muss also noch einmal überarbeitet werden.

Hinweis: Tabellen mit einem einzigen Primärschlüssel sind zwangsläufig in er 2.NF.

3. Normalform

Eine Tabelle befindet sich in der dritten Normalform, wenn sie sich in der zweiten Normalform befindet und wenn kein Nicht-Schlüsselmerkmal transitiv abhängig von einem Schlüsselmerkmal ist.

Formal lässt sich eine transitive Abhängigkeit folgendermaßen beschreiben: Wenn aus einem Merkmal A das Merkmal B folgt und aus Merkmal B das Merkmal C folgt, dann folgt das Merkmal C aus dem Merkmal A transitiv, unter der Voraussetzung, dass A weder aus B noch C folgt.
In der Tabelle ist der Name des Artikels fest an die Artikelnummer gekoppelt, mehrere Artikel dürfen nicht die gleiche Nummer haben, es besteht also eine transitive Abhängigkeit. Was ist aber dann mit der Verbindung  von ReNr und ArtNr, die ja auch benötigt wir? Dazu wird eine Interselektionstabelle geschaffen, die die Rechnungsdaten, also die Koppelung von ReNr und ArtNr verwaltet. Aus der obigen Tabelle Artikel werden also zwei neue Tabellen Rechnungsdaten und Artikel geschaffen.

Artikel
ArtNr ArtName
2 Tisch
3 Stuhl
4 Sofa
11 Lampe

 

Rechnungsdaten
Nr ReNr ArtNr
1 1 2
2 1 4
3 1 11
4 2 3
5 3 2
6 3 4