ACID: las propiedades de las transacciones en bases de datos para el TAI

Código de base de datos en una pantalla representando las transacciones ACID

ACID es el acrónimo (atomicidad, consistencia, aislamiento y durabilidad) que resume las cuatro propiedades que debe cumplir una transacción en una base de datos relacional para considerarse fiable. Una transacción es un conjunto de operaciones que se ejecutan como si fueran una sola: o se completan todas, o no se completa ninguna. Es un concepto clásico del Bloque III del temario TAI, muy relacionado con el modelo relacional y con SQL.

¿Qué es una transacción en una base de datos?

Piensa en una transferencia bancaria: hay que restar el importe de una cuenta y sumarlo a otra. Si el sistema falla justo después de restar pero antes de sumar, el dinero desaparecería. Una transacción agrupa ambas operaciones para que el sistema gestor de la base de datos (SGBD) las trate como una unidad indivisible: si algo falla a mitad de camino, se deshace todo (rollback) y la base de datos queda como si la transacción nunca hubiera empezado.

¿Qué significa cada letra de ACID?

Es la parte que más se pregunta en el examen, porque conviene distinguir bien cada propiedad:

Propiedad Qué garantiza
Atomicidad La transacción se ejecuta entera o no se ejecuta nada. No caben resultados a medias.
Consistencia La base de datos pasa de un estado válido a otro estado válido, respetando siempre sus reglas e integridad.
Aislamiento Varias transacciones que se ejecutan a la vez no interfieren entre sí, como si cada una se ejecutara en solitario.
Durabilidad Una vez confirmada la transacción (commit), los cambios sobreviven aunque el sistema se caiga justo después.
Código de base de datos en una pantalla
Las propiedades ACID protegen la base de datos frente a fallos a mitad de una operación.

¿Qué son el commit y el rollback?

Son las dos formas en que puede terminar una transacción:

  • Commit: confirma los cambios de la transacción de forma permanente en la base de datos.
  • Rollback: deshace todos los cambios de la transacción, dejando la base de datos como estaba antes de empezar.

El SGBD decide automáticamente hacer un rollback cuando detecta un error, una pérdida de conexión o una violación de una regla de integridad a mitad de la transacción.

¿Por qué importa el aislamiento cuando varios usuarios acceden a la vez?

En un organismo público, decenas de usuarios pueden consultar y modificar la misma base de datos a la vez (por ejemplo, un registro de expedientes). Sin aislamiento, una transacción podría leer datos que otra transacción todavía no ha confirmado, dando lugar a lecturas sucias, lecturas no repetibles o lecturas fantasma. Los SGBD resuelven esto con distintos niveles de aislamiento (desde el más permisivo hasta el más estricto), que regulan cuánto puede ver una transacción de lo que está haciendo otra en paralelo. Para el TAI basta con saber que existen esos niveles y qué problema de concurrencia evita cada uno, sin necesidad de memorizar su implementación técnica exacta.

Apuntes Bloque III del TAI
BLOQUE III: DESARROLLO DE SISTEMAS
Apuntes del Bloque III del TAI

Bases de datos, SQL, transacciones y desarrollo de sistemas explicados desde cero.

¿Cómo se ve ACID en un ejemplo de la Administración?

Imagina el registro de una solicitud en la sede electrónica de un organismo. Al presentar un documento pueden ocurrir varias operaciones a la vez: se guarda el archivo adjunto, se genera el número de registro de entrada y se envía el justificante al ciudadano. Si el sistema tratara estas operaciones como una única transacción:

  • Atomicidad: si falla el envío del justificante, no debería quedar un registro de entrada sin documento asociado.
  • Consistencia: nunca debería poder generarse un número de registro duplicado.
  • Aislamiento: si dos ciudadanos registran documentos al mismo tiempo, cada solicitud obtiene su propio número correlativo sin mezclarse con la otra.
  • Durabilidad: una vez que el ciudadano recibe el justificante, el registro no puede desaparecer aunque el servidor se reinicie segundos después.

Este tipo de ejemplo aplicado es el que más ayuda a fijar el concepto, porque conecta la teoría de bases de datos con la administración electrónica que también entra en el Bloque I del temario.

¿Las bases de datos NoSQL cumplen ACID?

No siempre, y es un matiz que conviene tener claro. Las bases de datos relacionales (MySQL, PostgreSQL, Oracle, SQL Server) están diseñadas para cumplir ACID de forma estricta. Muchas bases de datos NoSQL priorizan en cambio la disponibilidad y la velocidad en sistemas distribuidos, y aplican modelos más flexibles (a veces resumidos como BASE, en contraposición a ACID), aunque varias también ofrecen hoy garantías ACID en determinados escenarios. Si quieres repasar esta comparativa con más detalle, tienes la guía de SQL vs NoSQL para el TAI y la de bases de datos y SQL para el TAI.

Preguntas frecuentes

¿ACID es lo mismo que integridad referencial?

No. La integridad referencial es una regla concreta (que una clave foránea apunte siempre a un registro existente), mientras que ACID describe las propiedades generales de cualquier transacción. La consistencia de ACID incluye, entre otras cosas, respetar la integridad referencial.

¿Hace falta saber programar SQL para responder preguntas de ACID?

No. Las preguntas de ACID en el TAI suelen ser teóricas: identificar qué propiedad describe un enunciado o qué pasaría si esa propiedad fallara.

¿Qué pasa si se corta la luz a mitad de una transacción?

Gracias a la atomicidad y la durabilidad, el SGBD debería poder recuperar la base de datos a un estado consistente al reiniciar, deshaciendo la transacción que estaba a medias.

¿Cuántos niveles de aislamiento existen?

El estándar SQL define varios niveles, de menor a mayor restricción. Para el TAI es más importante entender qué problema de concurrencia resuelve cada nivel que memorizar sus nombres exactos.

¿ACID aparece mucho en el examen del TAI?

Es un concepto habitual dentro del bloque de bases de datos, normalmente en preguntas cortas de teoría que piden identificar la propiedad correcta a partir de un ejemplo.

¿Quieres probar el temario de bases de datos del TAI antes de decidirte?

El Bloque III explica transacciones, modelo relacional y SQL desde cero, sin la permanencia de una academia.

Ver apuntes del Bloque III →