Transacción
-
Atomicidad (Atomicity)
- Una transacción es una operación atómica: se ejecuta por completo o no se ejecuta en absoluto. Si ocurre un error durante la ejecución, el sistema revierte la transacción al estado anterior para garantizar su integridad.
-
Consistencia (Consistency)
-
Antes y después de la transacción, las restricciones de integridad de la base de datos no se deben romper. Por ejemplo, deben cumplirse restricciones como claves primarias, claves foráneas, unicidad, etc.
/* La consistencia significa que antes de que comience una transacción y después de que termine, la base de datos debe mantener un estado consistente. Es decir, todas las operaciones dentro de la transacción deben cumplir con las restricciones de integridad predefinidas para asegurar la integridad y corrección de los datos. Por ejemplo, supongamos un sistema bancario con una operación de transferencia: se debe debitar un monto de una cuenta y acreditar el mismo monto en otra cuenta. Esta operación modifica los datos de dos cuentas. Si la transferencia solo modifica el monto de una cuenta pero no la otra, el sistema bancario quedaría en un estado de inconsistencia, causando errores. Por lo tanto, la transacción debe garantizar que las dos suboperaciones de la transferencia se realicen completamente o ninguna, para asegurar la consistencia de los datos del sistema bancario. En la práctica, la consistencia de una transacción se logra mediante restricciones (como clave primaria, unicidad, clave foránea, etc.). Estas restricciones se definen en la base de datos y se aplican automáticamente durante la transacción, garantizando la integridad y corrección. Si durante la transacción se viola alguna restricción, la transacción se revierte para mantener la consistencia. *//* Aclaración sobre atomicidad y consistencia: Aunque tanto la atomicidad como la consistencia enfatizan la integridad de la transacción, sus significados son diferentes. La atomicidad se refiere a que todas las operaciones de una transacción deben ejecutarse con éxito o ninguna, sin permitir estados intermedios. En cambio, la consistencia se refiere a que después de ejecutar una transacción, las restricciones de integridad de la base de datos deben estar satisfechas para mantener la corrección y consistencia de los datos. La atomicidad es una garantía que asegura la integridad de la transacción; la consistencia es una restricción que exige que el resultado de la transacción cumpla con las restricciones de integridad de la base de datos. Específicamente, la atomicidad enfatiza la integridad de la transacción: o se ejecuta completamente o se revierte. Si ocurre un error durante la ejecución, la transacción se revierte al estado anterior para mantener la consistencia de los datos. La consistencia, por su parte, enfatiza las restricciones de integridad de la base de datos: antes y después de la transacción, estas restricciones deben cumplirse para asegurar la corrección y consistencia de los datos. Si durante la transacción se viola alguna restricción de integridad, la transacción se revierte para mantener la consistencia. */
-
-
Aislamiento (Isolation)
- La ejecución de las transacciones es independiente: las operaciones de cada transacción no afectan a otras transacciones. Incluso si múltiples transacciones se ejecutan simultáneamente, no interfieren entre sí.
-
Durabilidad (Durability)
- Una vez que una transacción se completa, los cambios realizados en los datos son permanentes. Incluso si el sistema falla, no se perderán las modifciaciones de las transacciones confirmadas.