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.