Gestor transaccional

En computación, un gestor transaccional es un componente que procesa información descomponiéndola de forma unitaria en operaciones indivisibles, llamadas transacciones. Cada transacción debe finalizar de forma correcta o incorrecta como una unidad completa. No puede acabar en un estado intermedio.

Descripción

Los gestores transaccionales se diseñan para mantener bases de datos en un estado conocido y consistente, asegurando que todas las operaciones que son interdependientes realizadas sobre la base de datos se han completado todas correctamente o se han cancelado todas.

Por ejemplo, tómese un ejemplo típico de una transacción bancaria que requiere mover 500€ de la cuenta de un cliente a otra. Esta transacción es una operación única según la visión del banco, pero requiere al menos dos operaciones desde la visión de la computadora: restar 500€ de la cuenta del cliente origen y sumarle 500€ al cliente destino. Si la operación de resta finaliza correctamente pero la operación de suma no (o viceversa), el balance del banco al final del día no será correcto. Por lo tanto, debe haber una forma de asegurar que ambas operaciones finalizan correctamente o incorrectamente y así evitar cualquier tipo de inconsistencia en la base de datos del banco. Un gestor transaccional proporciona esta característica.

Un gestor transaccional permite enlazar varias operaciones individuales automáticamente como una sola transacción indivisible. El gestor garantiza que todas las operaciones finalizan sin errores o ninguna de ellas. Si algunas operaciones finalizaron correctamente pero otras no, el gestor inicia el proceso de rollback de todas las operaciones implicadas (incluso de aquellas que finalizaron correctamente), eliminando todo rastro de la transacción y devolviendo la base de datos a un estado consistente como lo estaba antes de empezar a procesar la transacción. Si todas las operaciones de la transacción finalizaron correctamente, la transacción realiza commit a los cambios realizados en la base de datos. Una vez se ha hecho commit, los datos de esa transacción queda consolidados y la transacción no puede hacer rollback de los cambios.

Todas las transacciones se procesan en orden cronológico. Si la transacción n+1 modifica la misma área que la transacción n, la transacción n+1 no puede empezar hasta que la transacción n haya realizado commit de sus cambios. Ninguna transacción puede realizar commit de sus modificaciones hasta que todas las transacciones anteriores que modifiquen la misma área hayan realizado commit (o rollback) de sus cambios. No puede haber «saltos» de secuencia en las transacciones anteriores.

Other Languages