Las propiedades ACID son un conjunto de 4 reglas que definen el comportamiento ideal de una transacción en una base de datos. Por transacción entendemos las operaciones que deben ejecutarse de forma conjunta, como una unidad indivisible, para garantizar un resultado correcto y fiable.
Las cuatro propiedades ACID son Atomicidad, Consistencia, Aislamiento y Durabilidad.
Atomicidad
Atomicidad es la cualidad que indica si una transacción se ejecuta completamente o no se ejecuta en absoluto.
Puede estar compuesta por múltiples operaciones SQL: insert, update, delete... Si alguna falla, todas las demás se revierten, como si nunca hubieran ocurrido.
Lo prioritario es que la base de datos nunca se encuentre en un estado intermedio o inconsistente.
Consistencia
La consistencia asegura que una base de datos siempre pase de un estado válido a otro también válido después de ejecutar una transacción.
De manera general, es la encargada de garantizar que las transacciones respetan las reglas de integridad definidas en la base de datos.
¿Cómo se asegura la consistencia? A través de reglas de integridad (constraints), triggers, checks y validaciones a nivel de aplicación.
Aislamiento
El aislamiento garantiza que las transacciones concurrentes no interfieran entre sí y que el resultado final sea el mismo que si se hubieran ejecutado secuencialmente, una tras otra; es decir, que cada transacción se ejecute como si fuera la única en el sistema.
El aislamiento evita leer datos modificados por otra transacción aún no confirmada o la aparición de nuevas filas en una consulta repetida porque han sido insertadas en paralelo por otra transacción.
Existen diferentes niveles de aislamiento: read uncommitted, read committed, repeatable read y serializable.
Durabilidad
La durabilidad garantiza que, una vez confirmada, los efectos de una transacción son permanentes. Incluso si hay un corte de energía, una caída del sistema o un apagado inesperado.
La durabilidad se consigue usando logs de transacciones y también copias de seguridad, discos persistentes o redundancia en sistemas distribuidos.
Cuál es la función de las propiedades ACID
Las propiedades ACID son fundamentales para asegurar la fiabilidad de los datos en entornos transaccionales. Aportan:
- Seguridad e integridad: Las propiedades ACID protegen la información contra errores o fallos del sistema.
- Funcionamiento adecuado, incluso en entornos concurrentes; los datos no se mezclan ni se corromprn aunque haya muchos usuarios a la vez en el sistema.
- Coherencia y previsión de los resultados finales.
- Menor pérdida de datos.