Upload
didier-granados
View
2.166
Download
0
Embed Size (px)
DESCRIPTION
Una transacción es una o más sentencias que se toman como una unidad (todo termina bien o todo se aborta). Es una unidad lógica de trabajo definida para las reglas del negocio y típicamente incluye al menos una modificación de datos. Además, pasa la base de datosde un estado consistente a otro.
Citation preview
Desarrollo de Aplicaciones Web II
Clase No. 7 – Marzo 18 de 2009
� Una transacción es una o más sentencias que se toman como una unidad (todo termina bien o todo se aborta)
� Una transacción es una unidad lógica de trabajo
� Definida para las reglas del negocio
� Típicamente incluye al menos una modificación de datos
� Pasa la base de datos de un estado consistente a otro
� Una transacción tiene dos posibles salidas:
� Committed▪ Todas las modificaciones quedan en firme
� Rolled back▪ Las modificaciones retornan a su estado inicial
� Proteger los datos de las fallas del software,
hardware, y potencia eléctrica
� Permitir el aislamiento de datos de tal forma
que varios usuarios pueden acceder
simultáneamente a los datos sin interferencia
� Cuando un conjunto de sentencias se debencomportar como una unidad
� Existen dos tipos grandes de transacciones:
� Transacciones Locales: Cuando existe una sola
conexión a una base de datos.
� Transacciones Distribuidas: Son aquellas que
operan en datos distribuidos. Dicho de otra
manera, operan cuando se trabaja con bases de
datos distribuidas (múltiples bases de datos
que forman un todo en la aplicación).
� Tres sentencias básicas definen la
estructura de una transacción:
� Begin
� Commit
� Rollback
� Begin� Inicia la transacción
� Commit� Finaliza la transacción
� Todas las modificaciones quedan en firme
� Rollback termina una transacción
� Deshace las modificaciones que se hayanhecho
� La ejecución continua con la instrucciónsiguiente a rollback
� Se pueden tener transacciones anidadas:
� El begin y commit más externos comienzan y
finalizan las transacciones.
� Las sentencias begin y commit internos solamente
guardan un registro del nivel de anidamiento.
� Cuando se ejecutan rollback anidados sin puntosde grabación:� El rollback deshace todas las transacciones en
progreso, sin importar el nivel de anidamiento del rollback
� Termina la transacción
� La ejecución continúa con la sentencia siguiente al rollback
� El registro de transacciones almacena los efectos de cada insert, update y delete
� El sistema utiliza el registro de transacciones pararehacer las transacciones que se reversaron
� Se registra el comienzo de una transacción, los commits y rollbacks� Si un servidor falla durante una transacción, no hay
registro de un rollback o commit� Durante la recuperación (recovery), las modificaciones en
transacciones sin un registro de rollback o commit no tendrán efecto. Si las modificaciones fueron grabadas en disco, se revertirán.