Anomalie
| Inserimento |
| Cancellazione |
| Aggiornamento |
Dipendenza funzionaleT(A1, A2, ..., An) tabella, X e Y sottoinsiemi di {A1, A2, ..., An}
| 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' ... allora esiste una dipendenza funzionale completa tra X e Y |
Forme normaliUna tabella T(A1, A2, ..., An) è in prima forma normale se
| tutti i suoi attributi sono semplici |
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) |