Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

11
Desarrollo de Aplicaciones Web II Clase No. 7 – Marzo 18 de 2009

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.

Transcript of Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

Page 1: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

Desarrollo de Aplicaciones Web II

Clase No. 7 – Marzo 18 de 2009

Page 2: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

� 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

Page 3: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

� 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

Page 4: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

� Cuando un conjunto de sentencias se debencomportar como una unidad

Page 5: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

� 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).

Page 6: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

� Tres sentencias básicas definen la

estructura de una transacción:

� Begin

� Commit

� Rollback

Page 7: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

� Begin� Inicia la transacción

� Commit� Finaliza la transacción

� Todas las modificaciones quedan en firme

Page 8: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

� Rollback termina una transacción

� Deshace las modificaciones que se hayanhecho

� La ejecución continua con la instrucciónsiguiente a rollback

Page 9: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

� 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.

Page 10: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

� 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

Page 11: Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones

� 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.