Syntheseverfahren
In einigen Fällen kann es vorkommen, dass bei der Normalisierung nach dem vorgestellten Algorithmus Abhängigkeiten verloren gehen. Für diesen Fall existiert das sogenannte Syntheseverfahren chat_bubble_outline , welches hier kurz vorgestellt werden soll.
Dazu betrachten wir eine leicht abgeänderte Tabelle als Beispiel:
Tabelle: Aufträge
Datum | Kennzeichen | KdNr. | Kunde | Kd. Alter | MNr. |
---|---|---|---|---|---|
16.3.2018 | MK:KI 163 | K101 | Kiwits | 32 | M01 |
4.5.2018 | MS:KU 458 | K102 | Kurze | 24 | M02 |
8.6.2018 | MK:KI 163 | K101 | Kiwits | 33 | M03 |
Diese Relation befindet sich schon in erster Normalform. Als Schlüsselkandidat kommt Datum, Kennzeichen infrage. Will man nun zur zweiten Normalform voranschreiten, würde man feststellen, dass KdNr. und Kunde voll funktional vom Kennzeichen abhängig sind und eine neue Tabelle erstellen, die dieses als Primärschlüssel enthält.
Tabelle: Aufträge
Datum | Kennzeichen | Kd. Alter | MNr. |
---|---|---|---|
16.3.2018 | MK:KI 163 | 32 | M01 |
4.5.2018 | MS:KU 458 | 24 | M02 |
8.6.2018 | MK:KI 163 | 33 | M03 |
Tabelle: Kunden
Kennzeichen | KdNr. | Kunde |
---|---|---|
MK:KI 163 | K101 | Kiwits |
MS:KU 458 | K102 | Kurze |
MK:KI 163 | K101 | Kiwits |
Problem der zweiten Normalform
An dieser Stelle geht allerdings eine Abhängigkeit verloren: Das Alter des Kunden (Kd. Alter) ist abhängig von den beiden Spalten Datum und KdNr., wünschenswert wäre deshalb eine solche Tabelle:
Tabelle: Kundenalter
Datum | KdNr. | Kd. Alter |
---|---|---|
16.3.2018 | K101 | 32 |
4.5.2018 | K102 | 24 |
8.6.2018 | K101 | 33 |
Eine solche Tabelle wird sich allerdings nicht mehr ergeben. Das Alter des Kunden würde in der Auftragstabelle erhalten bleiben und dort nicht redundanzfrei abgespeichert werden. Dies ist allerdings der Zweck der Normalisierung.
Ein besseres Vorgehen
Bei Syntheseverfahren überlegt man sich nach der ersten Normalform – losgelöst von Schlüsselkandidaten –, welche Abhängigkeiten in der Relation existieren: chat_bubble_outline
- Datum, Kennzeichen → MNr.
- Kennzeichen → KdNr., Kunde
- Datum, KdNr. → Kd. Alter
In dieser Überlegung taucht auch das oben genannte, wünschenswerte Beispiel auf. Für jede dieser Abhängigkeiten baut man eine Tabelle auf:
Tabelle: Mitarbeiter
Datum | Kennzeichen | MNr. |
---|---|---|
16.3.2018 | MK:KI 163 | M01 |
4.5.2018 | MS:KU 458 | M02 |
8.6.2018 | MK:KI 163 | M03 |
Tabelle: Kunden
Kennzeichen | KdNr. | Kunde |
---|---|---|
MK:KI 163 | K101 | Kiwits |
MS:KU 458 | K102 | Kurze |
MK:KI 163 | K101 | Kiwits |
Tabelle: Alter des Kunden
Datum | KdNr. | Kd. Alter |
---|---|---|
16.3.2018 | K101 | 32 |
4.5.2018 | K102 | 24 |
8.6.2018 | K101 | 33 |
Diese Relation befindet sich direkt in dritter Normalform. chat_bubble_outline
chevron_right Zusammenfassung