Proprietà ACID
Coniata dai pionieri dell'elaborazione delle transazioni, l'acronimo ACID è atomico, coerente, isolato e durevole. Per garantire un comportamento prevedibile, tutte le transazioni devono possedere queste proprietà di base, rinforzando il ruolo delle transazioni cruciali come proposte all-or-none.
L'elenco seguente contiene una definizione e una descrizione di ogni proprietà ACID:
-
Atomica
-
Una transazione deve essere eseguita esattamente una volta e deve essere atomica, ovvero tutte le operazioni vengono eseguite o nessuna di esse. Le operazioni all'interno di una transazione condividono in genere una finalità comune e sono interdipendenti. Eseguendo solo un subset di queste operazioni, il sistema potrebbe compromettere la finalità complessiva della transazione. L'atomicità elimina la possibilità di elaborare solo un subset di operazioni.
-
Coerente
-
Una transazione deve mantenere la coerenza dei dati, trasformando uno stato coerente dei dati in un altro stato coerente dei dati. Gran parte della responsabilità di mantenere la coerenza dipende dallo sviluppatore di applicazioni.
-
Isolato
-
Una transazione deve essere un'unità di isolamento, il che significa che le transazioni simultanee devono comportarsi come se ognuna fosse l'unica transazione in esecuzione nel sistema. Poiché un livello elevato di isolamento può limitare il numero di transazioni simultanee, alcune applicazioni riducono il livello di isolamento in cambio di una migliore velocità effettiva. Per altre informazioni, vedere Configurazione dei livelli di isolamento delle transazioni.
-
Durevole
-
Una transazione deve essere recuperabile e pertanto deve avere durabilità. Se viene eseguito il commit di una transazione, il sistema garantisce che gli aggiornamenti possano essere mantenuti anche se il computer si arresta in modo anomalo immediatamente dopo il commit. La registrazione specializzata consente alla procedura di riavvio del sistema di completare le operazioni non completate richieste dalla transazione, rendendo durevole la transazione.