Die Boyce-Codd-Normalform (BCNF) ist eine Verschärfung der dritten Normalform (3NF). Sie wurde 1974 von Raymond F. Boyce und Edgar F. Codd entwickelt und beseitigt Redundanzen, die die 3NF noch zulässt, wenn eine Tabelle mehrere sich überlappende Kandidatenschlüssel besitzt.
Definition
Eine Relation ist in der Boyce-Codd-Normalform, wenn für jede nicht-triviale funktionale Abhängigkeit X → A gilt: X ist ein Superschlüssel. Anders als bei der 3NF darf sich also keine Determinante auf Attribute stützen, die selbst kein Schlüsselkandidat sind. Die BCNF wird deshalb oft als „3,5-Normalform“ bezeichnet – sie steht zwischen der 3NF und der vierten Normalform (4NF).
Beispiel: Das klassische BCNF-Problem
dozent_kurs(kurs_id, kurs_name, dozent, raum)
Schlüsselkandidaten: (kurs_id) und (kurs_name, dozent)
Die 3NF ist erfüllt, doch raum hängt funktional von kurs_name ab – und der ist nur Teil eines Kandidatenschlüssels. Jede Änderung des Raums muss an mehreren Stellen erfolgen. Die Lösung zerlegt die Tabelle in kurs(kurs_id, kurs_name, dozent) und kurs_raum(kurs_name, raum). Für die meisten praktischen Anwendungen ist die 3NF allerdings völlig ausreichend; die BCNF wird vor allem in der Datenmodellierung mit Bedacht eingesetzt.
Abgrenzung
Wer eine Datenbank bis zur BCNF normalisiert, achtet zusätzlich auf Primär- und Fremdschlüssel als saubere Schlüsselkandidaten. Die Normalisierung selbst ist in Datenbank-Normalisierung im Überblick beschrieben.
Verwandte Grundlagen: Dritte Normalform (3NF), Vierte Normalform (4NF), Fünfte Normalform (5NF).