Transacciones

Solo disponible en BuenasTareas
  • Páginas : 10 (2489 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de noviembre de 2010
Leer documento completo
Vista previa del texto
Bases de Datos – Transacciones

1

Manejo de Transacciones
Jorge P´rez Rojas e Universidad de Talca, II Semestre 2006

Bases de Datos – Transacciones

2

Transacciones
Hasta ahora el modelo de operaci´n en la BD ha sido o de o consultas, o de modificaciones a la BD. Hemos siempre supuesto que las acciones se ejecutan una a la vez y que cada una se lleva a cabo completamente Hemossupuesto que ni el software ni el hardware pueden fallar en el intertanto de una operaci´n. o La vida real es much´ ısimo m´s compleja... a

Bases de Datos – Transacciones

3

Transacciones (cont.)
No s´lo el hardware o el software pueden fallar dejando a la BD o en un estado inexplicable a partir de operaciones. El sistema de base de datos normalmente est´ siendo accedido a simultaneamentepor muchos usuarios tanto para hacer consultas como actualizaciones. Algunas ejecuciones paralelas pueden intercalarse de manera tal de dejar a la BD en un estado inconsistente.

Bases de Datos – Transacciones

4

Serializaci´n o
Supongamos que en una aplicaci´n de reserva de pasajes para un o vuelo existe un procedimiento que: • busca un asiento libre • lo marca como ocupado • asigna elasiento al pasajero que ejecut´ la llamada o Es totalmente posible que al mismo tiempo dos pasajeros ejecuten el procedimiento simult´neamente y dejen la BD en un estado a “indeseable”.

Bases de Datos – Transacciones

5

Serializaci´n (cont.) o
P1 P1 llama al procedimiento P2 llama al procedimiento Se encuentra asiento 10 libre Se encuentra asiento 10 libre Se marca 10 ocupado Se marca 10ocupado Se asigna 10 a P1 Se asigna 10 a P2 Ambos pasajeros quedan con el mismo asiento asignado, la BD queda en un estado indeseable. P2

Bases de Datos – Transacciones

6

Serializaci´n (cont.) o
Nos gustar´ que sea cual sea el orden de ejecuci´n, el estado de la ıa o BD quedara “como si se hubiese” ejecutado un procedimiento primero y luego el otro. A esto se le llama una ejecuci´nserializable. o Si cualquier ejecuci´n de los procedimientos anteriores fuese o serializable entonces nunca se le asignar´ a dos pasajeros el ıa mismo asiento. IMPORTANTE: NO queremos que los procedimientos siempre se ejecuten uno tras otro, s´lo necesitamos que el resultado sea o “serializable”.

Bases de Datos – Transacciones

7

Atomicidad
Supongamos que tenemos una aplicaci´n bancaria y un oprocedimiento para transferir fondos entre las cuentas A1 y A2 : 1. Se verifica que A1 tenga suficiente dinero. 2. Se aumenta el saldo de A2 en el monto especificado. 3. Se disminuye el saldo de A1 en el monto especificado. Supongamos que el sistema falla justo antes de comenzar a ejecutar la linea 3. La BD queda en un estado indeseable (al menos para el banco).

Bases de Datos – Transacciones8

Atomicidad (cont.)
En el ejemplo anterior nos gustar´ que las operaciones se ıa ejecutaran todas o que ninguna de ellas se ejecutara. La ejecuci´n de una operaci´n es at´mica si el estado de la BD o o o luego de la operaci´n es como si todos sus componentes se o hubiesen ejecutado o como si ninguno de ellos lo hubiese hecho.

Bases de Datos – Transacciones

9

Transacciones
Losproblemas de serializaci´n y atomicidad pueden ser resueltos o usando transacciones. Una transacci´n est´ compuesta por un grupo de instrucciones de o a SQL que se ejecutan at´micamente (se ejecutan todas o ninguna). o Por defecto adem´s, una transacci´n exige ejecuciones a o serializables. En SQL2 se puede especificar m´s libertad en la ejecuci´n que a o simplemente serializable, esto se hacemodificando los niveles de aislamiento que veremos m´s adelante. a

Bases de Datos – Transacciones

10

Transacciones (cont.)
Una transacci´n se comienza con una instrucci´n o o begin transaction (no es necesario en algunos DBMS). La instrucci´n commit termina la transacci´n en forma exitosa y o o hace permanente cualquier cambio realizado a la BD durante la transacci´n. o Los cambios se hacen...
tracking img