ACID
ACID son las cuatro propiedades de las transacciones relacionales: atomicidad (todo o nada), consistencia (se mantienen las restricciones), aislamiento (concurrencia sin interferencia), durabilidad (persistencia tras commit).
Propósito
Garantizar que las transacciones sean correctas y fiables ante fallos y concurrencia, el compromiso central de las bases de datos relacionales.
Mecanismo
Atomicidad: undo log para todo o nada. Consistencia: se satisfacen las restricciones antes y después. Aislamiento: bloqueos/MVCC hacen las transacciones concurrentes equivalentes a seriales. Durabilidad: redo log/WAL escribe a almacenamiento persistente tras commit. Niveles de aislamiento crecientes: lectura no confirmada → lectura confirmada → lectura repetible → serializable.
Casos de uso
- Transacciones de transferencia financiera
- Pedidos y deducción de inventario
- Actualización multitabla
- Operaciones que requieren fuerte consistencia
Ejemplos
- entrada
BEGIN; UPDATE...; INSERT...; COMMITOutputAtomic commit or rollbackAll or nothing
Errores comunes
- Long transactions holding locks cause blocking
- Shorten transactions; use optimistic locking