dns Normalisierung von Datenbanken

Zweite Normalform

priority_high Zweite Normalform

Eine Tabelle befindet sich in zweiter Normalform (2NF), wenn sie sich in erster Normalform befindet und jedes Nichtschlüsselattribut voll funktional von existierenden Schlüsselkandidaten abhängig ist. chat_bubble_outline chat_bubble_outline

Das Nichtschlüsselattribut ist somit abhängig von der Kombination aller Attribute der Schlüsselkandidaten, nicht nur von einer Teilmenge von ihnen. Wenn der einzige Schlüssel einer Tabelle in 1NF nur aus einem Attribut besteht, ist sie somit auch in 2NF. chat_bubble_outline

Werfen wir noch einmal einen Blick auf unsere Tabelle:

Tabelle: Aufträge

Datum Kennzeichen Automarke Modell KdNr. Kunde MNr. Mechaniker DNr. Dienstleistungen Beendet
16.3.2018 MK:KI 163 Volvo 850 K101 Kiwits M01 Meinecke D801 Scheinwerfer reparieren Ja
4.5.2018 MS:KU 458 Ford Mondeo K102 Kurze M02 Münz D106 Ausbeulen Ja

Hier kann man einige Attribute erkennen, bei denen das nicht der Fall ist:

  • Das Modell ist nicht vollfunktional abhängig vom Primärschlüssel, da es schon funktional abhängig vom Kennzeichen ist.
  • Die Dienstleistung ist ebenfalls nicht voll funktional abhängig, da sie bereits funktional abhängig von der D-Nr. ist.

Überführung in die 2NF

Um die Relation in die 2NF zu überführen, sind folgende Schritte notwendig: Für jedes Attribut A des Schlüssels, von dem Nichtschlüsselattribute N funktional abhängig sind, wird eine eigene Tabelle erstellt. In dieser neuen Tabelle ist A der Primärschlüssel. chat_bubble_outline

In unserem Beispiel besteht der Primärschlüssel aus drei Attributen:

  • Für das Datum existieren keine funktionalen Abhängigkeiten.
  • Für das Kennzeichen existieren die folgenden funktionalen Abhängigkeiten: Automarke, Modell, Kd-Nr., Kunde
  • Die Dienstleistung ist außerdem funktional abhängig von der D-Nr.

Das bedeutet, dass zwei neue Tabellen erstellt werden müssen. Die Nichtschlüsselattribute, die in die neue Tabelle überführt werden, werden aus der bestehenden Tabelle entfernt.

Tabelle: Aufträge

Datum Kennzeichen MNr. Mechaniker DNr. Beendet
16.3.2018 MK:KI 163 M01 Meinecke D801 Ja
16.3.2018 MK:KI 163 M01 Meinecke D401 Ja
4.5.2018 MS:KU 458 M02 Münz D106 Ja
5.5.2018 DO:KL 558 M02 Münz D408 Nein
8.6.2018 MK:KI 163 M03 Maler D402 Nein
9.6.2018 MK:KL 96 M03 Maler D002 Nein

Tabelle: Kunden

Kennzeichen Automarke Modell KdNr. Kunde
MK:KI 163 Volvo 850 K101 Kiwits
MS:KU 458 Ford Mondeo K102 Kurze
DO:KL 558 VW Golf K103 Klein
MK:KL 96 Opel Astra K103 Klein

Tabelle: Dienstleistungen

DNr. Dienstleistungen
D002 Ölwechsel
D106 Ausbeulen
D401 Bremsen kontrollieren
D402 Bremsen erneuern
D408 Batterie wechseln
D801 Scheinwerfer reparieren

Duplikate werden in den neu erstellten Tabellen selbstverständlich entfernt.

Diese Relation befindet sich nun in der zweiten Normalform.

In manchen Fällen kann es vorkommen, dass durch diesen Schritt Abhängigkeiten verloren gehen. Nähere Informationen dazu finden Sie beim Syntheseverfahren.

chevron_right Dritte Normalform