Eine Relation ist in zweiter Normalform, wenn die erste Normalform vorliegt und alle Nichtschlüsselattribute von jedem Schlüsselkandidaten voll funktional abhängig sind.
Einfacher gesagt: Alle nicht primären Attribute (nicht Teil des Schlüssels) sind vom ganzen Schlüssel abhängig, nicht von nur einem Teil des Schlüssels. (Genau das ist die „voll funktionale Abhängigkeit“: Ein Attribut ist vom ganzen Schlüssel abhängig.)
Diese informelle Definition kann wie folgt präzisiert werden:
Eine Relation ist genau dann in zweiter Normalform, wenn sie
- in der ersten Normalform ist und
- für jeden Schlüsselkandidaten (Key Candidate, KC) und jedes Attribut a der Relation gilt:
- a gehört zu KC oder
- a ist nicht von einer Teilmenge von KC abhängig.
Man sagt: a ist voll funktional abhängig von jedem Schlüsselkandidaten (wobei der Schlüsselkandidat KC auch durch die Kombination mehrerer Attribute gebildet werden kann).
Praktisch wird Datenredundanz und die damit einhergehende Gefahr der Dateninkonsistenz durch Anomalien behoben (aber nur teilweise, siehe spätere Normalformen). Nur logisch zusammenhängende Daten finden sich in einer Relation. Dadurch fällt das Verständnis der Datenstrukturen leichter.
- 1NF und zusätzlich nur voll funktional abhängige Nicht-Schlüssel-Attribute
- Schlüsselkandidaten legen Werte anderer Attribute fest
- Attribute nicht abhängig von Teilen des Schlüssels
- Relationen mit ausschließlich einelementigen Schlüsselkandidaten sind automatisch in 2NF
Beispiel
- Autor funktional abhängig von ISBN
- {ISBN} -> {Autor}
- Relation ist nicht in 2NF
Links