Q: Quali sono i moduli del DBMS che si occupano di garantire le proprietà ACID?
A:
Le proprietà ACID devono essere rispettate durante l'esecuzione delle transazioni.
I moduli del DBMS che si occupano del rispetto di queste proprietà, si trovano al livello fisico e sono:
A:
Le proprietà ACID devono essere rispettate durante l'esecuzione delle transazioni.
- Atomicity: l'esecuzione di una transazione dev'essere vista come un operazione atomica. Anche se una transazione è composta da più fasi, queste devono necessariamente eessere viste come una singola unità computazionale indivisibile.
- Consistency: la transazione deve lasciare il sistema in uno stato consistente. La transazione inizia da uno stato consistente (dati consistenti, che rispettano i vincoli di integrità) e deve terminare in uno stato consistente.
Se la transazione fallisce, il sistema deve ritornare allo stato consistente iniziale. - Isolation: l'esecuzione parallela di più transazioni in contemporanea non deve causare interferenze tra queste.
- Durability: le modifiche effettuate dalle transazioni devono essere rese permamenti. Anche a fronte di guasti.
I moduli del DBMS che si occupano del rispetto di queste proprietà, si trovano al livello fisico e sono:
- Transaction manager: si occupa della coordinazione dei moduli descritti nei punti successivi.
- Logging & Recovery manager: incaricato della gestione dei LOG (lavora assieme al buffer manager), si occupa della gestione dell'atomicity e durability.
L'atomicity viene garantita facendo in modo che in caso di fallimenti di una transazione la storia possa essere letta all'indietro (il LOG) e quindi annullata la transazione come se non fosse mai esistita. La durabilità è data dall'uso di protocolli WAL per far fronte a guasti. Inoltre grazie a questo modulo, è possibile fronteggiare anche guasti in fase di restart (da system failure) grazie all'uso del protocollo ARIES. - DDL Compiler: prima dell'esecuzione di ogni query genera del codice DDL (Data Definition Language) che verrà eseguito per controllare se i dati presenti nella query violano i vincoli di integrità e se i tipi utlizzati sono compatibili tra di loro.
Garantisce la consistency - Concurrency manager: è incaricato della gestione della concorrenza tra le transazioni. Hal suo interno contiene un lock manager, incaricato della gestione dei lock e ne definisce le politiche.
Garantisce che le transazioni non possano interferire tra di loro, quindi garantisce la isolation