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 :
- Per il caso base, se è in BCNF restituire
- Altrimenti trovare una che viola la BCNF
- Calcolare gli attributi e
- Calcolare le proiezioni e
- Trovare la decomposizione ricorsiva di e di
- Restituire
Esempio
Per esempio con la conversione sarebbe:
- La BCNF è violata da perchè non è superchiave, infatti
- Si calcolano e
- Si calcolano e
- 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:
- Iniziare con la copertura canonica di
- Rimpiazzare da le con una singola
- Creare un per ogni
- Rimuovere gli schemi i cui attributi fanno parte di un altro schema più grande
- Se nessun ha attributi superchiave per , aggiungere un , dove è una chiave di