ACID protegeix les dades de la vostra base de dades
El model ACID de disseny de bases de dades és un dels conceptes més antics i més importants de la teoria de bases de dades. Defineix quatre objectius que tot sistema de gestió de bases de dades ha d'intentar assolir: atomització, consistència, aïllament i durabilitat. Una base de dades relacional que no compleixi cap d'aquests quatre objectius no es pot considerar fiable. Una base de dades que posseeix aquestes característiques es considera compatible amb ACID.
ACID definit
Prenguem un moment per examinar detalladament cadascuna d'aquestes característiques:
- Atomicity estableix que les modificacions de la base de dades han de seguir una regla "all o nothing". Es diu que cada operació és "atòmica". Si una part de la transacció falla, la transacció completa falla. És fonamental que el sistema de gestió de bases de dades mantingui el caràcter atòmic de les transaccions, tot i que hi hagi un SGBD, un sistema operatiu o un fracàs de maquinari.
- La coherència estableix que només es escriurean dades vàlides a la base de dades. Si, per alguna raó, s'executa una transacció que viola les regles de coherència de la base de dades, es transforma tota la transacció i la base de dades es restaurarà a un estat coherent amb aquestes regles. D'altra banda, si una transacció s'executa amb èxit, prendrà la base de dades d'un estat que sigui coherent amb les regles a un altre estat que també sigui coherent amb les regles.
- L'aïllament requereix que les transaccions múltiples que es produeixin al mateix temps no afectin l'execució de l'altra. Per exemple, si Joe emet una transacció contra una base de dades al mateix temps que Mary emet una transacció diferent, ambdues operacions haurien d'operar de manera aïllada a la base de dades. La base de dades ha de realitzar la transacció completa de Joe abans d'executar Mary's, o viceversa. Això evita que la transacció de Joe llegeixi dades intermedi produïdes com a efecte secundari de part de la transacció de Mary que eventualment no es comprometi amb la base de dades. Tingueu en compte que la propietat d'aïllament no garanteix quina transacció s'executarà primerament, només que les transaccions no interfereixin entre si
- La durabilitat assegura que qualsevol transacció compromesa amb la base de dades no es perdrà. La durabilitat es garanteix mitjançant l'ús de còpies de seguretat de la base de dades i registres de transaccions que faciliten la restauració de les transaccions compromeses, malgrat els errors de programari o maquinari posteriors.
Com funciona ACID en la pràctica
Els administradors de bases de dades utilitzen diverses estratègies per fer complir l'ACID.
Un d'ells utilitzat per fer complir l'atomització i la durabilitat és el registre d'escriptura prèvia (WAL), en el qual qualsevol detall de la transacció s'escriu per primera vegada en un registre que inclou tant rehacer com desfer la informació. Això garanteix que, atès un fracàs de la base de dades de qualsevol tipus, la base de dades es pot comprovar el registre i comparar els seus continguts amb l'estat de la base de dades.
Un altre mètode utilitzat per fer front a l'atomització i la durabilitat és l' ombra-paginació en què es crea una pàgina d'ombra quan es modifiquen les dades. Les actualitzacions de la consulta s'escriuen a la pàgina d'ombres i no a les dades reals de la base de dades. La base de dades només es modifica quan es completa l'edició.
Una altra estratègia s'anomena protocol de compromís en dues fases , especialment útil en sistemes de bases de dades distribuïdes. Aquest protocol separa una sol·licitud per modificar dades en dues fases: una fase de sol·licitud de compromís i una fase de compromís. En la fase de sol·licitud, tots els SGBD d'una xarxa afectats per la transacció han de confirmar que l'han rebut i tenen la capacitat de realitzar la transacció. Un cop rebuda la confirmació de tots els SGBD rellevants, es completa la fase de compromís en què les dades són realment modificades.