Anomalie
Le anomalie possono comparire in fase di
- inserimento
- cancellazione
- aggiornamento
Dipendenza funzionale
Siano
- T(A1, A2, …, An), una tabella
- X e Y, sottoinsiemi di {A1, A2, …, An}
allora
- X determina funzionalmente Y, X –> Y, se non possono esistere due tuple con valori identici in X e valori diversi in Y
- se A* non appartiene alla chiave primaria allora dipende funzionalmente da essa
- se X’ sottoinsieme di X e X’ –> Y allora esiste una dipendenza funzionale parziale tra X e Y
- se non esiste X’ tale che … allora esiste una dipendenza funzionale completa tra X e Y
Forme normali
Una tabella T(A1, A2, …, An) è in prima forma normale se
- tutti i suoi attributi sono semplici
(no composti, no multipli)
Una tabella T(A1, A2, …, An) è in seconda forma normale se
- è in prima forma normale
- tutti gli attributi che non fanno parte della chiave primaria hanno una dipendenza funzionale completa da tutte le possibili chiavi candidate di T
(non esistono dipendenze parziali)
Una tabella T(A1, A2, …, An) è in terza forma normale se
- è in seconda forma normale
- tutti gli attributi che non fanno parte della chiave primaria dipendono esclusivamente dalla chiave stessa
(non esistono dipendenze transitive tra attributi non chiave, altri attributi non chiave e la chiave).