dns Normalisierung von Datenbanken

Ziel der Normalisierung?

Das Ziel der Normalisierung ist, dass Daten redundanzfrei gespeichert werden. Um dies zu erreichen, werden im Normalisierungsprozess schrittweise feste Regeln angewendet, um die Struktur einfacher und geordneter zu gestalten. chat_bubble_outline Wenn eine Datenbank schlecht aufgebaut ist, wird es die Pflege und Weiterentwicklung deutlich erschweren.

Beispiel

Nehmen wir beispielsweise diesen Auszug aus einer Tabelle mit Reparaturaufträgen in einer Werkstatt, in der mehrere Mechaniker arbeiten:

Tabelle: Aufträge

Datum Kennzeichen Automarke Modell KdNr. Kunde MNr. Mechaniker Dienstleistungen Beendet
16.3.2018 MK:KI 163 Volvo 850 K101 Kiwits M01 Meinecke D801: Scheinwerfer reparieren,
D401: Bremsen kontrollieren
Ja
4.5.2018 MS:KU 458 Ford Mondeo K102 Kurze M02 Münz D106: Ausbeulen Ja
5.5.2018 DO:KL 558 VW Golf K103 Klein M02 Münz D408: Batterie wechseln Nein
8.6.2018 MK:KI 163 Volvo 750 K101 Kiwits M03 Maler D402: Bremsen erneuern Nein
9.6.2018 MK:KL 96 Opel Astra K103 Klein M03 Maler D002: Ölwechsel Nein

Probleme dieser Tabelle

Dies ist eine Tabelle, wie man sie sich gut im Archiv der Werkstatt vorstellen kann. Allerdings können mit dieser Relation einige Probleme entstehen:

Nicht zugelassener Datentyp: Der erste Auftrag besteht aus zwei Positionen. Nehmen wir an, die Mechanikerin repariert den Scheinwerfer, macht dann aber Feierabend und will den Rest morgen erledigen. Sie hat aber keine Möglichkeit, in der Tabelle zu erfassen, dass (nur) eine der beiden Positionen erfüllt ist. chat_bubble_outline

Einfügeanomalie: Man kann erkennen, dass der Kunde Kiwits seine Bremsen in einem neuen Auftrag erneuern lässt, nachdem sie einige Monate zuvor kontrolliert wurden. Allerdings scheint der Kunde nun mit einem neuen Auto mit exakt dem selben Kennzeichen angekommen zu sein. Wahrscheinlicher ist, dass einer der Mechaniker sich beim Modell vertan hat. chat_bubble_outline

Änderungsanomalie: Nehmen wir an, der Mechaniker Münz heiratet und nimmt den Namen seiner Frau an. Im Sinne der korrekten Datenhaltung müsste man nun alle Aufträge durchgehen und seinen Namen ändern. Ansonsten wüsste eine neue Kollegin nicht, wer Aufträge bearbeitet hat, falls das Auto noch einmal in der Werkstatt sein sollte. chat_bubble_outline

Löschanomalie: Angenommen, Mitarbeiter Münz will gerade eine neue Batterie in den Golf einsetzen, bemerkt dann aber, dass sich nur ein Kontakt gelöst hatte. Als ehrlicher Mitarbeiter informiert er den Kunden sofort und will den Auftrag stornieren. Er kann die Zeile allerdings nicht einfach löschen, ohne dass auch die Informationen über diesen Neukunden verloren gehen. chat_bubble_outline

Um diese Probleme zu beheben, werden wir nun nach und nach diese Tabelle normalisieren.

chevron_right Erste Normalform