La Boyce-Codd normal form è un affinamento della terza forma normale, il cui requisito aggiuntivo rispetto alle prime due, come già menzionato, è:
- gli attributi non chiave non possono essere dipendenti transitivamente da una chiave candidata.
Nella Boyce-Codd normal form, invece, vale la regola che:
- nessun attributo può dipendere in modo transitivo da una chiave candidata, a meno che non si tratti di una dipendenza banale.
Quindi sono rimosse tutte le ridondanze basate sulla dipendenza funzionale, anche se possono permanere ridondanze di altro tipo.
La forma normale Boyce-Codd è rilevante esclusivamente per le tabelle di database che hanno più chiave candidate composte in cui le chiavi si sovrappongono, quindi nel caso in cui lo stesso attributo sia un sottoinsieme di due chiavi candidate.
Le tabelle di database che corrispondono alla terza forma normale e non hanno chiavi candidate composte soddisfano così i requisiti della Boyce-Codd normal form.
La tabella che segue mostra due chiavi candidate, composte ciascuna da due attributi:
- numero del fornitore e numero articolo
- fornitore e numero articolo
Entrambe le chiavi consentono l’identificazione di ogni singolo record di dati. L’unico attributo non chiave è il numero. Poiché l’attributo “numero” non ha dipendenze transitive da alcuna chiave candidata, la tabella segue la terza forma normale.
La forma normale Boyce-Codd, invece, non è raggiunta perché esiste una dipendenza tra gli attributi “numero fornitore” e “fornitore”. L’attributo “numero fornitore” è perciò dipendente in modo transitivo dalla chiave candidata che risulta dal fornitore e dal numero articolo; mentre l’attributo “fornitore”, al contrario della chiave candidata, risulta dal numero fornitore e dal numero articolo.