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:
- Iniziare con l'insieme
- Per ogni trovare
- Aggiungere a la dipendenza
Esempio
Per esempio su , si ha:
- L'insieme delle proiezioni iniziale è
- Si trovano le da usare dall'insieme delle parti di
- Per si trova
- A si aggiunge
- Per si trova
- 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:
- Iniziare con l'insieme
- Trovare tutti gli schemi
- Aggiungere a gli attributi
- Ripetere finchè viene aggiornato
Esempio
Per esempio se e , si ha:
- Verifica che
- L'insieme iniziale è e il primo schema è
- A si aggiunge
- Il prossimo schema è
- A si aggiunge
- Quindi è verificato perchè
- Verifica che
- L'insieme iniziale è e il primo schema è
- A si aggiunge
- Il prossimo schema è
- A si aggiunge
- Quindi è verificato perchè
- Verifica che
- L'insieme iniziale è e il primo schema è
- A si aggiunge
- Il prossimo schema è
- A si aggiunge
- Il prossimo schema è di nuovo
- A si aggiunge
- 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.