Normalisierung relationaler Datenbanken einfach erklärt

Inhalt
- Was ist die Normalisierung von Datenschemata?
- 1. Normalform
- 2. Normalform
- 3. Normalform
1. Was ist die Normalisierung von Datenschemata?
Relationale Datenbanken müssen als Erstes normalisiert werden. Die Normalisierung verwendest du zur Vermeidung von Redundanzen bei der Entwicklung von Datenbankmodellen.
Mehrfache (redundante) Daten kannst du durch den Aufbau zusätzlicher Relationen, in speziellen Fällen bis zur 5. Normalform, auflösen.
Außerdem vermeidest du Anomalien, die durch Verletzung der Normalisierungsregeln entstehen. Die drei Arten sind die Löschanomalie, Einfügeanomialie und Update/Aktualisierungsanomalie.
Die folgende Tabelle ist nicht normalisiert, sie wird als Beispiel für die weitere Normalisierung in diesem Artikel eingesetzt:
Kd-Nr | Kunde | Adresse | Art-Nr | Artikel | Menge | Betrag |
001 | Markus Eigenrauch | Johannstr. 44, 20355 Hamburg | 765 | Funk-Tastatur | 2 | 49,90 Euro |
001 | Markus Eigenrauch | Johannstr. 44, 20355 Hamburg | 381 | Notebook | 1 | 1399,90 Euro |
002 | Sandra Merten | Elbstr. 24, 26131 Oldenburg | 381 | Notebook | 1 | 1399,90 Euro |
2. 1. Normalform
Für die 1. Normalform musst du bestimmte Voraussetzungen erfüllen. So müssen die Daten in atomarer (unteilbarer) Form vorliegen. Außerdem müssen die Tabellenspalten gleichwertige Daten enthalten, dass heißt, zum Beispiel der „Betrag“ darf keine unterschiedlichen Einheiten aufweisen.
Die Daten müssen ausschließlich in Cent oder in Euro vorliegen, je nachdem auf welche Einheit man sich festlegt, in diesem Fall Euro.
Die oben aufgeführte Tabelle wird jetzt in die 1. Normalform überführt:
Kd-Nr | Vorname | Nachname | Straße | Haus-Nr | PLZ | Ort | Art-Nr | Artikel | Menge | Betrag |
001 | Markus | Eigenrauch | Johannstr. | 44 | 20355 | Hamburg | 765 | Funk-Tastatur | 2 | 49,90 |
001 | Markus | Eigenrauch | Johannstr. | 44 | 20355 | Hamburg | 381 | Notebook | 1 | 1399,90 |
002 | Sandra | Merten | Elbstr. | 24 | 26131 | Oldenburg | 381 | Notebook | 1 | 1399,90 |
Der Vorteil dieser Normalform ist nun, dass du im Gegensatz zur ersten Tabelle in nicht normalisierter Form, zum Beispiel nach Postleitzahl sortieren oder nach dem Artikel filtern kannst.
Da in der Tabelle verschiedene Daten, wie der Nachname Eigenrauch und die gesamte Adresse dieses Kunden oder der Artikel Notebook, mehrfach aufgeführt werden, ist die Vermeidung der Redundanz noch nicht erreicht. Das ist mit der Überführung in die 2. Normalform möglich.
Zum besseren Verständnis kannst du natürlich jederzeit nach Youtube-Anleitungen suchen, hier meine Empfehlung:
3. 2. Normalform
Möchtest du die 1. in die 2. Normalform überführen, müssen alle Voraussetzungen der 1. Normalform erfüllt sein. Vor allem aber müssen alle Nichtschlüsselattribute voll funktional vom Primärschlüssel abhängig sein (Funktionale Abhängigkeit).
Das bedeutet:
Schlüsselattribute sind Kd-Nr und Art-Nr, demnach sind Nichtschlüsselattribute Vorname, Nachname, Straße, Haus-Nr, PLZ Ort, Artikel, Menge und Betrag.
Bis auf das Attribut „Menge“, hängt jedes andere Nichtschlüsselattribut von nur einem Schlüsselattribut ab. Also der Vorname hängt eindeutig von der Kd-Nr ab, der Artikel eindeutig von der Art-Nr uns so weiter.
Das Attribut „Menge“ benötigt zur Bestimmung einen zusammengesetzten Schlüssel, auch Superschlüssel genannt.
Für die 2. Normalform musst die die obige Tabelle also in drei Relationen aufteilen. Ich nenne sie Relation „Kunden“, Relation „Artikel“ und Relation „Menge“:
Relation Kunden
Kd-Nr | Vorname | Nachname | Straße | Haus-Nr | PLZ | Ort |
001 | Markus | Eigenrauch | Johannstr. | 44 | 20355 | Hamburg |
002 | Sandra | Merten | Elbstr. | 24 | 26131 | Oldenburg |
In dieser Relation „Kunden“ kannst du erkennen, dass alle Nichtschlüsselattribute eindeutig von der Kd-Nr abhängig sind, und dieses Attribut ist der Primärschlüssel (PK – Primary Key).
Relation Artikel
Art-Nr | Artikel | Betrag |
765 | Funk-Tastatur | 49,90 |
381 | Notebook | 1399,90 |
In der Relation „Artikel“ sind ebenfalls alle Nichtschlüsselattribute direkt bzw. eindeutig vom Primärschlüssel dieser Relation, der Art-Nr, abhängig um sie zu bestimmen.
Relation Menge
Kd-Nr (FK) | Art-Nr (FK) | Menge |
001 | 765 | 2 |
001 | 381 | 1 |
002 | 381 | 1 |
In der Relation „Menge“ wurden die beiden Primärschlüssel der Relation „Kunden“ (PK: Kd-Nr) und der Relation „Artikel“ (PK: Art-Nr) als Fremdschlüssel (FK – Foreign Key) verwendet, um das Attribut „Menge“ bestimmen zu können.
Doppelte Daten gibt es bei der „Kd-Nr“ und der „Menge“ aber immer noch. Um diese Redundanzen zu beheben, nutzen wir die 3. Normalform.
Auch zur 2. Normalform hier die passende Video-Empfehlung: