¿Sabes qué es acid?
El modelo ACID en bases de datos se refiere a un resumen de las propiedades que debe mantener una data base de forma conjunta, con el objetivo de garantizar la seguridad de las transacciones. Una transacción es una operación lógica o un conjunto de órdenes, cuya ejecución da forma a una unidad de trabajo.
a.c.i.d. es, por tanto, el acrónimo para los conceptos Atomicity, Consistency, Isolation y Durability, que en español significa, respectivamente, atomicidad, consistencia, aislamiento en las transacciones y durabilidad.
El término ACID en bases de datos proviene de Andreas Reuter y Theo Härder, quienes, en el inicio de la década de los 80, desarrollaron este término para describir las propiedades necesarias de una transacción fiable, que anteriormente había planteado el científico de computación Jim Gray.
Propiedades ACID en bases de datos
Las cuatro propiedades pertenecientes al modelo ACID en bases de datos pueden detallarse de la siguiente forma:
Atomicity o atomicidad
El primer término de ACID en base de datos se refiere a la atomicidad de las transacciones, es decir, que el sistema permite que se lleven a cabo las operaciones atómicas. Esta propiedad indica que, para que una transacción se dé por «completada», deben haberse realizado todas sus partes o ninguna de ellas.
Es también conocida como el «todo o nada» de la transacción, debido a que, en el caso de que se completen todos los pasos de la transacción, se obtendrán las modificaciones requeridas en la base de datos. Si una parte de la transacción falla, el sistema debe ser capaz de hacer que el resto de operaciones fallen, por lo que la base de datos no sufrirá ningún cambio indeseado.
Consistency o consistencia
🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴
Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semanaEl concepto de consistencia en el modelo ACID en base de datos está relacionado con la propiedad de atomicidad y hace referencia a la capacidad que tiene un sistema para iniciar solo operaciones que puede concluir. Esto implica que solo se pueden ejecutar pasos de la transacción que no incumplan con las reglas o directrices de integridad definidas, incluyendo los triggers, cascades y constraints, así como sus combinaciones.
La propiedad de consistencia en las bases de datos se basa en la premisa que afirma que una transacción debe llevar al sistema de un estado válido a otro que también lo sea. Cabe resaltar que la validez de las operaciones está determinado por su seguimiento o no de las reglas establecidas para garantizar la fiabilidad de la base de datos.
Isolation o aislamiento
La propiedad de aislamiento del modelo ACID en bases de datos se refiere a la manera y el momento en el que los cambios resultantes de una operación se harán visible para las demás operaciones concurrentes. Es decir, la realización de una operación no debería afectar a las otras, debido a que cada una de las transacciones debe ser ejecutada en aislamiento total, sin importar si se llevan a cabo de manera simultánea.
Esta propiedad puede entenderse también bajo la premisa de que el estado intermedio de una transacción no debe ser visible por otra, garantizando así su aislamiento y que sea posible replicar el estado final de la base de datos en el caso de que se ejecuten una a una las transacciones de forma paralela y concurrente.
Durability o durabilidad
La durabilidad de ACID en bases de datos hace referencia a la propiedad que garantiza que, una vez se haya llevado a cabo una determinada operación (aquellas transacciones que tuvieron un commit), estas tengan la capacidad de persistir y no puedan ser deshechas incluso si el sistema falla o se presentan eventos como errores o caídas o pérdida de alimentación eléctrica, entre otros.
Esta característica de ACID en bases de datos implica que los datos y cambios en una transacción que ya se ha realizado deben ser permanentes y no puede ocurrir una pérdida de los mismos en el sistema.
Una de las estrategias de las bases de datos para poder implementar esta propiedad es escribir en las operaciones un log de transacciones que tiene la posibilidad de ser reprocesado para recrear el estado del sistema antes de una falla. Cabe aclarar que una operación solo se considera confirmada una vez haya sido ingresada al log.
¿Cuál es el siguiente paso?
Ahora que ya conoces qué es el modelo ACID en bases de datos (acid java), así como cuáles son sus propiedades y características más importantes, no dudes en continuar formándote a través de nuestro DevOps & Cloud Computing Full Stack Bootcamp, donde en menos de 6 meses te enseñaremos todo lo necesario para que te conviertas en un experto del sector IT. ¡Inscríbete y sigue aprendiendo!