Transacciones ACID

En el contexto de transacciones de bases de datos, ACID es un acrónimo de Atomico (Atomic), Consistente (Consistent), Aislado (Isolation) y Durabilidad(Durable). Las transacciones proporcionan un modelo sencillo de éxito o fracaso una o un conjunto de operaciones en la base de datos. Una transacción se compromete (es decir, todas sus acciones se ejecutaron de forma correcta), o se anula (es decir, si una accion fallo, entonces todas sus acciones hechas hasta ese momento se deshacen). Los atributos de una transacción ACID son las siguientes:

Atomicidad

Una transacción permite la agrupación de uno o más cambios en las tablas y filas en la base de datos para formar una operación atómica e indivisible. Es decir, o bien se producen todos los cambios o ninguno de ellos. Si por alguna razón la transacción no puede completarse, la operación debe restablecer el estado de la base de datos al momento en que estaba antes del inicio de la transacción a través de una operación de reversa (rollback).

Consistencia

Las transacciones siempre operan en una visión coherente de los datos y cuando terminan deben también dejar los datos en un estado coherente. Mientras que una transacción se ejecuta se generan inconsistencias momentaneas dentro de la base de datos, pero la transaccion no puede dejar ver estas inconsistencias; al finalizar, debido a que en la finalización todas las inconsistencias deben son eliminadas, la transaccion libera los datos para que puedan ser leídos/escritos nuevamente.

Aislamiento

Para una operación determinada, debería ser como si ésta se estuviese ejecutando sola en la base de datos. Los efectos de la ejecución simultánea de las transacciones son invisibles para esta transacción, y los efectos de esta transacción son invisibles para los demás hasta que la transacción ha comprometido su trabajo.

Durabilidad

Una vez que se confirma una transacción y sus efectos, se garantiza que persista incluso en el caso de fallos posteriores del sistema. Hasta antes de que se confirme la transacción, los cambios realizados por esa transacción no son durables, y no persisten en la cara de un fallo del sistema, al recuperarse de un fallo se deshacen las inconsistencias provocas por la ejecución no terminada de la transaccion.

La simplicidad de las transacciones ACID es especialmente importante en un entorno de base de datos distribuida, donde las transacciones se realizan de forma simultánea.

Publicado en Base de Datos, Capacitacion, Desarrollo, MySQL, Oracle, PostgreSQL