Aprende tecnología paso a paso

¿Qué es una Transacción en SQL?

Una transacción en SQL es un conjunto de operaciones que se ejecutan como una única unidad de trabajo. Su objetivo es garantizar que todas las operaciones se completen correctamente o que ninguna de ellas se aplique en caso de error.

Las transacciones son fundamentales para mantener la integridad y consistencia de los datos en una base de datos.

¿Para qué sirve una transacción?

Las transacciones permiten agrupar varias instrucciones SQL relacionadas para que se ejecuten de forma segura.

Si alguna operación falla durante el proceso, la base de datos puede revertir todos los cambios realizados y regresar al estado anterior.

¿Cómo funciona una transacción?

Una transacción comienza cuando se ejecuta la instrucción BEGIN TRANSACTION y finaliza cuando se confirma con COMMIT o se cancela con ROLLBACK.

BEGIN TRANSACTION

Inicia la transacción y marca el comienzo de las operaciones que deben ejecutarse como una sola unidad.

COMMIT

Confirma todos los cambios realizados durante la transacción y los guarda permanentemente en la base de datos.

ROLLBACK

Cancela todos los cambios realizados durante la transacción y devuelve la base de datos al estado anterior.

Ejemplo básico de transacción

BEGIN TRANSACTION;

UPDATE cuentas
SET saldo = saldo - 100
WHERE id = 1;

UPDATE cuentas
SET saldo = saldo + 100
WHERE id = 2;

COMMIT;

En este ejemplo se transfiere dinero entre dos cuentas bancarias. Ambas operaciones deben completarse correctamente para mantener la consistencia de los datos.

¿Qué ocurre si existe un error?

Supongamos que la segunda actualización falla debido a un problema en la base de datos.

BEGIN TRANSACTION;

UPDATE cuentas
SET saldo = saldo - 100
WHERE id = 1;

-- Error inesperado

ROLLBACK;

Gracias al ROLLBACK, el descuento realizado en la primera cuenta será cancelado y ningún cambio quedará almacenado.

Propiedades ACID

Las transacciones se basan en las propiedades ACID, un conjunto de reglas que garantizan la confiabilidad de las operaciones.

Atomicidad

Todas las operaciones se ejecutan completamente o ninguna se ejecuta.

Consistencia

La base de datos siempre debe permanecer en un estado válido.

Aislamiento

Las transacciones concurrentes no deben interferir entre sí.

Durabilidad

Una vez confirmado un cambio mediante COMMIT, este permanecerá almacenado incluso si ocurre un fallo del sistema.

Ventajas de las transacciones

¿Cuándo utilizar transacciones?

Las transacciones deben utilizarse cuando varias operaciones dependen unas de otras y deben ejecutarse correctamente en conjunto.

Ejemplo en una empresa

Una tienda en línea puede utilizar transacciones cuando un cliente realiza una compra. El sistema debe registrar el pedido, descontar unidades del inventario y almacenar la información del pago.

Si alguna de estas operaciones falla, la transacción puede revertirse para evitar datos inconsistentes.

Diferencia entre COMMIT y ROLLBACK

COMMIT ROLLBACK
Guarda los cambios. Cancela los cambios.
Finaliza exitosamente la transacción. Revierte la transacción.
Los datos permanecen almacenados. Los datos vuelven al estado anterior.

Compatibilidad

Las transacciones son compatibles con los principales sistemas gestores de bases de datos, incluyendo SQL Server, MySQL, PostgreSQL y Oracle Database.

Artículos relacionados

Conclusión

Una transacción en SQL permite ejecutar múltiples operaciones como una única unidad de trabajo. Gracias a mecanismos como COMMIT y ROLLBACK, las transacciones garantizan la integridad de los datos y son fundamentales en aplicaciones empresariales donde la precisión de la información es crítica.