Normalizzazione

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).