Sobes.tech
Junior

¿Por qué se utilizan transacciones en bases de datos?

sobes.tech AI

Respuesta de la IA

Las transacciones garantizan la atomicidad, consistencia, aislamiento y durabilidad (ACID) de las operaciones con bases de datos.

  • Atomicidad: Todas las operaciones en una transacción se completan en su totalidad o no se realizan en absoluto. Si una operación falla, se revierten todas.
  • Consistencia: La transacción lleva la base de datos de un estado consistente a otro. Se previenen violaciones de restricciones (por ejemplo, claves únicas).
  • Aislamiento: Cada transacción se ejecuta como si fuera la única en el sistema. Los cambios realizados por una transacción no son visibles para otras hasta que se completa.
  • Durabilidad: Tras la finalización exitosa de una transacción, sus cambios se guardan y no se pierden incluso en caso de fallo del sistema.

Las transacciones son importantes para garantizar la integridad de los datos, especialmente al realizar varias operaciones relacionadas que deben ejecutarse juntas o no ejecutarse en absoluto. Un ejemplo es transferir dinero de una cuenta de ahorros a una cuenta corriente.

-- Inicio de la transacción
START TRANSACTION;

-- Deducción de la primera cuenta
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;

-- Si la operación anterior fue exitosa, crédito en la segunda cuenta
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;

-- Verificación de que ambas operaciones fueron exitosas y sin errores
-- IF condición de error THEN
--   ROLLBACK; -- Revertir todos los cambios
-- ELSE
--   COMMIT; -- Confirmar todos los cambios
-- END IF;

-- Suponiendo que ambas operaciones se completaron con éxito para el ejemplo
COMMIT; -- Confirmar la transacción
-- ROLLBACK; -- Revertir la transacción en caso de error