Saltar al contenido
Explorar conocimiento

concepto · intermedio · 2 min de lectura

Transacciones ACID

Una transacción ACID es una unidad de trabajo que garantiza Atomicidad, Consistencia, Aislamiento y Durabilidad, asegurando que las operaciones en una base de datos se completen completamente o no se apliquen en absoluto.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • Transacciones ACID as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

ACID es el acrónimo de las cuatro propiedades que definen una transacción confiable en una base de datos:

  • Atomicity: la transacción se completa toda o no se aplica nada. Si falla a la mitad, todo se revierte —rollback—.
  • Consistency: la transacción lleva la base de datos de un estado válido a otro estado válido, respetando todas las restricciones —claves foráneas, uniqueness, checks—.
  • Isolation: las transacciones concurrentes no interfieren entre sí. Cada transacción ve la base de datos como si fuera la única ejecutándose.
  • Durability: una vez que la transacción se confirmó —commit—, los cambios sobreviven a caídas del sistema, cortes de luz y fallos de hardware.

Alcance y supuestos

Cubre transacciones ACID, sus cuatro propiedades y su implementación en bases de datos relacionales. Asume familiaridad con SQL.

Modelo mental

Transferir plata entre dos cuentas bancarias. Atomicidad: si debitás de una cuenta pero no acreditás en la otra, todo se revierte. Consistencia: el total del sistema no cambia. Aislamiento: dos transferencias simultáneas no se pisan. Durabilidad: una vez confirmada, la transferencia no desaparece aunque se corte la luz.

Uso práctico

  • ✅ Sistemas financieros, inventario, cualquier sistema con integridad de datos crítica.
  • ❌ Sistemas donde la disponibilidad es prioridad sobre la consistencia.

Ejemplo trabajado: transferencia bancaria

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

Si la segunda actualización falla, el ROLLBACK revierte la primera. Las dos cuentas nunca quedan inconsistentes.

Evidencia

  • Wikipedia, ACID documenta las cuatro propiedades y su implementación en sistemas de bases de datos relacionales.

Fuentes citadas