bdddistribuidas

Páginas: 10 (2442 palabras) Publicado: 20 de abril de 2013
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 completamenteHemos supuesto 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
asimultaneamente por 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 marcacomo ocupado
• asigna el asiento 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

P2

P1 llama al procedimiento
P2 llama al procedimiento
Se encuentra asiento 10 libre
Se encuentra asiento10 libre
Se marca 10 ocupado
Se marca 10 ocupado
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.

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 yluego el otro.
A esto se le llama una ejecuci´n serializable.
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

7Atomicidad
Supongamos que tenemos una aplicaci´n bancaria y un
o
procedimiento 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 estadoindeseable (al menos para el banco).

Bases de Datos – Transacciones

8

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 lohubiese hecho.

Bases de Datos – Transacciones

9

Transacciones
Los problemas 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 puedeespecificar m´s libertad en la ejecuci´n que
a
o
simplemente serializable, esto se hace modificando 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...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS