Seitenleiste

Community

SQL

Grundlagen

Datenbanksysteme

Client/Server

Eingebettet

Inhaltsverzeichnis

3. Normalform

Eine Tabelle ist in 3. Normalform wenn:

  • sie in 2. Normalform ist
  • alle Nichtschlüsselattribute von keinem Schlüsselkandidaten transitiv abhängig sind

Auflösung

A → B → C1
A → B → C2
… … … …
A → B → Cn

Alle über das selbe Zwischenattribut (B) transitiv abhängigen Attribute werden in eine neue Relation ausgelagert. Das Zwischenattribut stellt die Verbindung zwischen den beiden Relationen her (Primär- bzw. Fremdschlüssel)

Beispiel

Wir haben unsere Reisekostentabellen von vorher:

Uns fällt aber auf, dass durch das Einfügen einer Personennummer, die Personen leichter identifiziert werden können als durch den Familiennamen. Daraus ergibt sich folgende Tabelle:

Die 2. Normalform muss nicht nochmal geprüft werden, da unser Schlüssel aus nur einem Attribut besteht und somit alle anderen Attribute voll funktional abhängig von diesem sind. Wir überprüfe aber, ob irgendwelche Elemente transitiv abhängig von anderen Elementen sind. Dabei wird klar, dass sowohl Familienname und Vorname, als auch Ort und PLZ eindeutig durch die Personennummer (PersNr) identifiziert werden können. In der 3. Normalform darf dies aber nicht sein. Deswegen lagern wir diesen Teil der Tabelle in eine neue Tabelle aus.

Und schon entspricht unsere Tabelle wieder der 3. Normalform :-D