Hauptmenü

Untermenü

MySQL - Normalisierung - 3. Normalform

1. Bedingung

Eine Datenbank/Relation befindet sich dann in der dritten Normalform (3NF), wenn die zweite Normalform erfüllt ist und keine so genannten transitiven Abhängigkeiten bestehen. Ins Hochdeutsche übersetzt bedeutet es Folgendes.

Irgendein Feld eines Datensatzes ist von einem anderen Feld abhängig, das kein Primärschlüssel ist. Um euch das anschaulich zu erklären, erstellen wir mal eine Tabelle mit Lieferzeiten, den Firmen und deren Zuverlässigkeit.

2. Unsere Tabelle Lieferanten


+--+----------+----------------+--------+
|id|lieferzeit|firma           |verlass |
+--+----------+----------------+--------+
| 1|12h       |SupiTrans       |hoch    |
| 2|24h       |SupiTrans       |hoch    |
| 38h       |HyperCompoGlobal|mittel  |
| 44h       |SuperMegaNet    |saumäßig|
| 5|16h       |SuperMegaNet    |saumäßig|
| 6|irgendwann|Post AG         |saumäßig|
+--+----------+----------------+--------+

Man kann also eine Firma aus ihrer Lieferzeit ableiten. Die Zuverlässigkeit ergibt sich aber aus der Firma. Das Problem ist offensichtlich. Bietet eine Firma einen neuen Lieferservice an, so wird die Verlässlichkeit für diese Firma zweimal abgespeichert. Also wird die Tabelle aufgeteilt.

3. Die Aufteilung

Tabelle lieferzeit


+--+----------+
|id|zeit      |
+--+----------+
| 1|12h       |
| 2|24h       |
| 38h       |
| 44h       |
| 5|16h       |
| 6|irgendwann|
+--+----------+

Hier werden nur die Lieferzeiten abgespeichert und mit einer eindeutigen ID versehen.

Tabelle lieferfirma


+--+----------------+--------+
|id|firma           |verlass |
+--+----------------+--------+
| 1|SupiTrans       |hoch    |
| 2|HyperCompoGlobal|mittel  |
| 3|SuperMegaNet    |saumäßig|
| 4|Post AG         |saumäßig|
+--+----------------+--------+

An dieser Stelle speichern wir die Firma und ihre Verlässlichkeit ab.

Tabelle auswahl


+--+-------+
|id|auswahl|
+--+-------+
| 1|1      |
| 2|1      |
| 3|2      |
| 4|3      |
| 5|3      |
| 6|4      |
+--+-------+

Die ID der Tabelle Auswahl bezieht sich auf die ID der Tabelle Lieferzeit und der Wert der Auswahl auf die entsprechende Firma.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt