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 |