====== 2. Normalform ======
Eine Relation ist in 2. Normalform wenn:
* sie in 1. Normalform ist
* jedes nicht-Schlüsselattribut voll funktional von jedem Schlüsselkandidaten abhängig ist
Falls nicht:
* Jede Attributgruppe bildet gemeinsam mit jenem Teil des Schlüsselkandidaten von dem sie voll funktional abhängig ist eine neue Relation (Tabelle)
Wenn der Schlüssel nur aus einem Attribut besteht, ist die Tabelle automatisch in 2. Normalform.
===== Beispiel =====
Gegeben ist folgende Tabelle:
{{:dbs:sql:tabelle_nicht_2nf.png?direct&|}}
Man löst solche Tabellen wie folgt auf:
* Bestimmung der Schlüssel (hier Rechnungsnummer und Kostenart)
* Bestimmung, welche Attribute voll funktional von welchem Schlussel/Schlüsselpaar abhängig sind
{{:dbs:sql:abhaengigkeiten_2nf.png?nolink&|}}
Aus diesen Abhängigkeiten heraus ergeben sich folgende Schlussfolgerungen:
* Die Anzahl ist voll funktional von Rechnungsnummer und Kostenart abhängig
* Datum, Familienname, Vorname, PLZ und Ort sind voll funktional abhängig von der Rechnungsnummer
* Die Einzelvergütung ist voll funktional abhängig von der Kostenart
Aus diesen Sätzen bilden wir nun unsere neuen Tabellen, wobei jeder Satz eine Tabelle mit all ihren Attributen darstellt.
{{:dbs:sql:tabelle_2nf.png?nolink&|}}
Und schon ist unsere Tabelle in zweiter Normalform =)