Forma normale di Boyce-Codd (BCNF) (non è una 3NF propria)
Lo schema di relazione è in BCNF se dipendenze funzionali non banali che devono essere soddisfatte da ogni istanza legale hanno come determinante una superchiave di .
Definizioni di 3NF
Definizione formale
Dati uno schema di relazione e un insieme di dipendenze funzionali su , è in 3NF se e solo se per ogni dipendenza funzionale non banale si ha che:
- è un attributo primo (cioè contenuto in una chiave), oppure
- è una superchiave (si ricorda che anche una singola chiave è una superchiave),
Questa definizione è elegante, ma si applica a , quindi bisogna usare gli assiomi di Armstrong per applicarla.
Esempio:
Schema: Dipendenze funzionali:
Applichiamo gli assiomi di Armstrong per trovare .
- per riflessività determina se stesso quindi è una chiave
- per riflessività determina se stesso quindi è una chiave
- non è una superchiave, perché è un attributo singolo, ma nemmeno una chiave. Però è primo (appartiene alla superchiave ) e anche , perché appartiene ad , quindi sono entrambi primi e lo schema è in 3NF.
Definizione intuitiva
Questa definizione ci evita l’assioma della decomposizione e , perché salta si applica direttamente a .
Dati uno schema di relazione e un insieme di dipendenze funzionali su , è in 3NF se con (cioè non banale), vale almeno una di queste condizioni:
- tutti gli attributi di sono attributi primi, oppure
- è una superchiave.
Praticamente, per ogni dipendenza funzionale in , il determinante è una superchiave o ogni attributo del dipendente è primo.
Definizione alternativa con le dipendenze
Dato uno schema e un insieme di dipendenze funzionali , è in 3NF se e solo se non ci sono attributi che dipendono parzialmente o transitivamente da una chiave.