Decomposizione di schemi

Le anomalie possono essere risolte attraverso la decomposizione dello schema in schemi più piccoli.

Dato uno schema , si definisce come proiezione di su l'insieme: attraverso cui si trova una decomposizione di , cioè un insieme di schemi per cui e filtrando per ogni le dipendenze con attributi coinvolti in .

Per esempio su si risolvono le anomalie decomponendolo in:

Algoritmo

Il calcolo della proiezione avviene dal:

  1. Iniziare con l'insieme
  2. Per ogni trovare
  3. Aggiungere a la dipendenza

Esempio

Per esempio su , si ha:

  1. L'insieme delle proiezioni iniziale è
  2. Si trovano le da usare dall'insieme delle parti di
  3. Per si trova
  4. A si aggiunge
  5. Per si trova
  6. A si aggiunge

Preservazione dei dati

Per dire che la decomposizione preservi i dati, si deve avere che: per ogni istanza di , assicurandosi che dalle tabelle decomposte si ricavino gli stessi dati di .

Per verificare che una decomposizione preservi i dati basta verificare che trovando la chiusura e verificando che contenga o .

Per esempio, con si trova , e .

Preservazione delle dipendenze

Per dire che la decomposizione preservi le dipendenze, si deve avere che:

Algoritmo

Per verificare che le dipendenze siano preservate basta assicurarsi che , per ogni .

Mentre si può ricavare con:

  1. Iniziare con l'insieme
  2. Trovare tutti gli schemi
  3. Aggiungere a gli attributi
  4. Ripetere finchè viene aggiornato

Esempio

Per esempio se e , si ha:

  1. Verifica che
    1. L'insieme iniziale è e il primo schema è
    2. A si aggiunge
    3. Il prossimo schema è
    4. A si aggiunge
    5. Quindi è verificato perchè
  2. Verifica che
    1. L'insieme iniziale è e il primo schema è
    2. A si aggiunge
    3. Il prossimo schema è
    4. A si aggiunge
    5. Quindi è verificato perchè
  3. Verifica che
    1. L'insieme iniziale è e il primo schema è
    2. A si aggiunge
    3. Il prossimo schema è
    4. A si aggiunge
    5. Il prossimo schema è di nuovo
    6. A si aggiunge
    7. Quindi è verificato perchè

Relazione tra dati e dipendenze

Data una decomposizione di che preserva le dipendenze e per cui esiste un superchiave di allora si dice che preserva anche i dati.