Forme normali

Le forme normali si possono ottenere attraverso il processo di normalizzazione, che coinvolge la decomposizione, e che garantisce la qualità dello schema risultante.

Forma normale di Boyce-Codd

Uno schema è in BCNF sse per ogni tale che si ha che è una superchiave.

Questa forma preserva i dati, garantisce l'assenza di anomalie ma non preserva le dipendenze.

Algoritmo di analisi

La conversione in BCNF consiste nel decomporre ricorsivamente lo schema :

  1. Per il caso base, se è in BCNF restituire
  2. Altrimenti trovare una che viola la BCNF
  3. Calcolare gli attributi e
  4. Calcolare le proiezioni e
  5. Trovare la decomposizione ricorsiva di e di
  6. Restituire

Esempio

Per esempio con la conversione sarebbe:

  1. La BCNF è violata da perchè non è superchiave, infatti
  2. Si calcolano e
  3. Si calcolano e
  4. Si trovano le decomposizioni e

Terza forma normale

Uno schema è detto in 3NF sse per ogni tale che si ha che è una superchiave oppure tutti gli attributi sono attributi primi.

Conviene quindi prima trovare le chiavi di e poi verificarne la proprietà.

Questa forma preserva i dati e le dipendenze, ma può comunque possedere anomalie.

Algoritmo di sintesi

La conversione in 3NF consiste nel:

  1. Iniziare con la copertura canonica di
  2. Rimpiazzare da le con una singola
  3. Creare un per ogni
  4. Rimuovere gli schemi i cui attributi fanno parte di un altro schema più grande
  5. Se nessun ha attributi superchiave per , aggiungere un , dove è una chiave di