Concepto
de Transacción
Se
llama Transacción a una
colección de operaciones que forman una unidad lógica de trabajo en una BD
realizada por una o más sentencias SQL estrechamente relacionadas.
Una transacción es una unidad
de la ejecución de un programa que lee y escribe datos a y desde la Base de
Datos. Puede consistir en varias operaciones de acceso a la base de datos. Una
Transacción está delimitada por instrucciones de inicio transacción y fin transacción (la
transacción consiste en todas las operaciones que se ejecutan entre inicio
transacción y fin transacción).
El
concepto de transacción se desarrolló para atender los casos en los que el
estado resultante de la base de datos depende del éxito completo en una serie
de operaciones. Este concepto vio la luz debido a que varias operaciones
sucesivas pueden modificar el resultado de operaciones anteriores. En esos
casos, si alguna operación produce un error, el estado resultante puede ser
indeterminado.
Para
solucionar este problema, las transacciones agrupan una serie de operaciones de
manera que es posible garantizar la integridad del resultado final. O todas las
operaciones se ejecutan con éxito y se confirman (se escriben en la base de
datos), o toda la transacción se considera no realizada. La acción de cancelar
una transacción se denomina deshacer la transacción. Deshacer una transacción
permite anular los cambios y recuperar el estado de la base de datos previo a
la transacción.
Tipos de transacciones
Con el tiempo, se han
propuesto muchos modelos de transacciones. Sin embargo uno de los principales
problemas es el cumplimiento de las cuatro propiedades anteriormente
mencionadas. En algunos de los casos, la solución ha sido la “relajación” sobre
alguno de los puntos, evitando así algunos problemas, pero por tanto dando
lugar a otros nuevos.
Las transacciones han sido clasificadas de acuerdo a diferentes criterios:
v Duración:
1.
On-line:
caracterizadas por un tiempo de respuesta y ejecución muy corto y por un acceso
a una pequeña porción de la base de datos. Este tipo de transacción cubre la
mayoría de las transacciones de los programas actuales.
2.
Batch: caracterizadas por
un gran tiempo de ejecución (del orden de los minutos, horas o días) y por
acceder a grandes volúmenes de datos.
v Organización de Lectura/Escritura:
1. General: las lecturas y escrituras se realizan
sin orden determinado.
2.
Dos-pasos (two-step): si todas las lecturas son realizadas antes de
las escrituras.
3.
Restringida (restricted o read-before-write): si la
transacción está restringida de forma que un dato debe ser leído antes de poder
ser actualizado (escrito).
4.
Restringida de dos pasos (restricted two-step): si es cumple las dos anteriores.
5. Acción: consistente en la ejecución de
parejas de operaciones atómicas <lectura,escritura>.
v Estructura:
1.
Transacción plana (flat transaction): aquella transacción que tiene un único
punto de inicio y un único punto de terminación.
2.
Transacciones anidadas (nested transaction): permite que una transacción incluya
otras transacciones con sus propios puntos de inicio y fin, que suelen recibir
el nombre de subtransacciones.
Comentarios
Publicar un comentario