ACID (Atomicity Consistency Isolation Y Durability)
Una transacción es un conjunto de operaciones que se deben realizar en una base
de datos de manera conjunta, que se debe realizar todas las operaciones o
ninguna.
Para que un motor de base de datos cumpla con el buen manejo de transacciones
debe cumplir con el modelo ACID, que no es más que un acrónimo para Atomicity,
Consistency, Isolation, Durability, o Atomicidad, Consistencia, Aislamiento y
Durabilidad.
Atomicity (Atomicidad)
Define el todo o nada de una transacción; es decir, si una transacción esta
formada por un INSERT y un DELETE, la atomicidad se mantiene si la base de
datos realiza a loas dos, nunca una u otra (todo o nada).
Consistency (Consistencia)
Se refiere a que la base de datos debe mantener la integridad de la información al
inicio, durante y al finalizar la transacción de acuerdo a las reglas establecidas en
la misma. Estas reglas están en forma de tipo de datos (ningún campo que sea
modificado deberá contener un tipo de datos que no este especificado en el
CREATE TABLE) por ejemplo, se mantiene la unicidad de los registros si se
definieron las llaves primarias o secundarias en la tabla, y se respetan las
CONSTRAINT involucrados en las tablas afectadas durante la transacción.
Isolation (Aislamiento)
Se refiere a que el motor de bases de datos debe poner procesar transacciones de
manera simultanea o concurrente, de tal manera que el estado intermedio de una
transacción no sea visible por otra y de esa manera se mantenga aisladas unas de
otras y se pueda replicar el estado final de la base de datos si se procesa una a
una las transacciones de manera paralela y en serie.
Durability (Durabilidad)
La durabilidad sostiene que una vez que haya grabado una transacción, los datos
sean permanentes y no se pierde bajo ninguna circunstancia, es decir, una vez
que la base de datos procesa la transacción, los cambios son permanentes.
El modelo BASE de las bases de datos NO-SQL
En ultimas fechas se ha comenzado a utilizar otro modelo de base de datos, que
no es relacional, al que se le ha dado por llamar NO-SQL. Este tipo de base de
datos no mantiene el modelo ACID, si no que utilizan un modelo llamado BASE.