Una transacción es una colección de
operaciones que forman una única unidad lógica de trabajo. Se inicia por la ejecución
de un programa escrito en un lenguaje de manipulación de datos como SQL, una transacción
contiene instrucciones entre un inicio de transacción y un final.
Una transacción tiene cuatro
propiedades principales la atomicidad es decir las operaciones de la transacción
se realizan correctamente o ninguna se realiza, la consistencia esto es que el
sistema no permite más que una sola transacción a la vez, el aislamiento el
cual garantiza que las transacciones se realicen de manera aislada y la
durabilidad que realiza los cambios una vez que la transacción finalizo.
Las transacciones tienes dos
operaciones básicas: lectura la cual transfiere los datos a la memoria
intermedia de la transacción, y la escritura la cual transfiere los datos de la
memoria intermedia a la base de datos.
Una transacción puede tener
varios estados:
- Activa: una transacción permanece así durante su ejecución.
- Parcialmente comprometida: se encuentra así cuando ha terminado de ejecutar la última instrucción.
- Fallida: sucede cuando no se ha podido ejecutar una instrucción.
- Abortada: Cuando ha retrocedido la transacción y el sistema regresa al último estado de la base de datos.
- Comprometida: Cuando una transacción ha tenido éxito.
Cuando una transacción es
comprometida, el sistema escribe información en el disco pero si detecta una
falla se cuenta con la información para devolver a la base de datos a su estado
anterior.
Si una transacción es abortada,
el sistema tiene dos opciones las cuales son: reiniciar la transacción si se detectó
un problema de software o hardware, o cancelar la transacción esto si tiene la transacción
alguna falla en su secuencia lógica.
Una transacción puede ser
concurrente o secuencial, con la concurrencia se mejora la productividad del
sistema de base de datos optimizando los recursos de hardware del sistema y disminuyendo
el tiempo de espera entre transacciones sin embargo pueden ocasionar conflictos
entre los procesos de lectura y escritura.
En cambio las transacciones
secuenciales pueden ser secuenciales en cuanto a vistas o conflictos
dependiendo de la planificación de sus procesos.
Un punto importante en cuanto a
la consistencia de datos es precisamente la recuperabilidad de una transacción que
puede regresar a un estado anterior a la base de datos, esto si se encuentra
una falla en la transacción (abortada) y se tienen dos recuperaciones
aceptables la planificación recuperable y la sin cascada.
No hay comentarios:
Publicar un comentario