Professional Documents
Culture Documents
transacciones
Introduccin
Introduccin
Introduccin
Definiciones implicadas:
Introduccin
T2
leer(x)
x:=x+M
escribir(x)
Introduccin
T1
BD2
Introduccin
10
11
x = 100
T2 (M=3)
lee(x)
Tiempo
x:=x-N
lee(x)
x:=x+M
escribe(x)
lee(y)
x = 95
y = 75
x = 103
y:=y+N
escribe(x)
Actualizacin
perdida
y = 80
escribe(y)
Universitat de Valncia - 2006/07
12
x = 100
lee(x)
Tiempo
x = 95
x = 95
Fallo!
T2 (M=3)
lee(x)
x:=x+M
lee(y)
escribe(x)
Lectura sucia
Universitat de Valncia - 2006/07
13
Tiempo
a:=a+1
Restriccin: A=B T2
a = 100
b = 100
escribe(a)
a = 101
b = 100
lee(a)
a:=2*a
a = 202
b = 100
escribe(a)
lee(b)
b:=2*b
lee(b)
b:=b+1
escribe(b)
Universitat de Valncia - 2006/07
a = 202
b = 200
Sobreescritura
de datos no
confirmados
escribe(b)
Restriccin: A=B
deja de cumplirse
por la ejecucin
concurrente.
a = 202
b = 201
BD2 - Tema 3 (Esther de Ves, Vicente Cervern)
14
a = 100
T2
lee(a)
muestra(a)
a = 100
lee(a)
a:=a+1
escribe(a)
lee(a)
a = 101
muestra(a)
La transaccin T1 lee dos
valores diferentes para
el dato a, en una
misma transaccin.
Extrao!
Universitat de Valncia - 2006/07
Lecturas no
reproducibles
BD2 - Tema 3 (Esther de Ves, Vicente Cervern)
15
16
17
inicio_t
leer (grnulo y valor ledo)
escribir (grnulo, valor escrito y valor anterior)
fin_t
confirmar
abortar
inicio_t
fin_t
Parcialmente confirmarConfirmada
confirmada
Activa
escribir
abortar
abortar
Abortada
BD2 - Tema 3 (Esther de Ves, Vicente Cervern)
18
Planificaciones y concurrencia
T1={a1,a2,a3}
T2={b1,b2}
No se respeta
el orden
interno de
cada transaccin
Ejemplos de planificaciones
P1={a1,a2,a3,b1,b2}
P2={a1,b1,a2,a3,b2}
P3={b1,a1,b2,a2,a3}
No son planificaciones
P1={a2,a1,a3,b2,b1}
P2={a1,b2,a3,a2,b1}
P3={b1,b2,a3,a2,a1}
BD2 - Tema 3 (Esther de Ves, Vicente Cervern)
19
Planificaciones y concurrencia
Equivalencia
por conflictos
Universitat de Valncia - 2006/07
Equivalencia
por vistas
BD2 - Tema 3 (Esther de Ves, Vicente Cervern)
20
Planificaciones y concurrencia
21
Planificaciones y concurrencia
P1
T4
lee(a)
a:=a+1
esc(a)
lee(b)
b:=b+1
Esc(b)
Permutables por
afectar a grnulos
distintos
P2
T4
lee(a)
a:=a+1
esc(a)
Lee(b)
b:=b+1
Esc(b)
lee(a)
a:=a*2
esc(a)
Lee(b)
b:=b*2
Esc(b)
T3
P1 es serializable
en conflictos
BD2 - Tema 3 (Esther de Ves, Vicente Cervern)
Lee(a)
a:=a*2
Esc(a)
Lee(b)
b:=b*2
Esc(b)
22
Planificaciones y concurrencia
Relacin de precedencia:
Se dice que una transaccin Ti precede a otra Tj en una
planificacin P, si existen dos acciones ai y aj conflictivas (no
permutables) de forma que ai se ejecuta por Ti antes de aj por Tj.
23
Planificaciones y concurrencia
T1
T4
T6
Grafo de
precedencia
T3
T2
T5
T7
T8
24
Planificaciones y concurrencia
Ejemplo planificacin P1
T3
El plan en serie
Equivalente es
P2={T3,T4}
T4
P1
lee(a)
a:=a+1
esc(a)
T3
Lee(a)
a:=a*2
Esc(a)
Lee(b)
b:=b+1
Esc(b)
T4
Lee(b)
b:=b*2
Esc(b)
T3 precede a T4
25
Planificaciones y concurrencia
P3
Ejemplo 2:
T1
T2
T1
Lee(x)
Hay un
ciclo
X:=x-N
lee(x)
X:=x+M
escribe(x)
lee(y)
T2
escribe(x)
y:=y+N
escribe(y)
Quin precede
a quin?
26
Planificaciones y concurrencia
T2
lee(z)
lee(y)
esc(y)
lee(x)
esc(x)
T3
lee(y)
lee(z)
esc(y)
esc(z)
27
Planificaciones y concurrencia
Ejemplo planificacin P4
P4
T1
T2
T3
T1
Lee(z)
Lee(y)
Esc(y)
T2
Lee(y)
Lee(z)
Lee(x)
Esc(x)
Esc(y)
Esc(z)
Lee(x)
Ciclo!
T3
Lee(y)
Esc(y)
Esc(x)
No existe plan en
serie equivalente!
Universitat de Valncia - 2006/07
28
Planificaciones y concurrencia
P5
T2
T3
Lee(y)
Lee(z)
T1
T2
Lee(x)
Esc(x)
Esc(y)
Esc(z)
Lee(z)
Lee(y)
Esc(y)
Lee(y)
Esc(y)
Lee(x)
Esc(x)
No hay ciclo
T3
29
Planificaciones y concurrencia
30
Planificaciones y concurrencia
P1
T3
P2
lee(a)
a:=a+1
esc(a)
lee(b)
b:=b*2
esc(b)
lee(a)
a:=a+1
esc(a)
lee(b)
b:=b+1
esc(b)
lee(a)
a:=a*2
esc(a)
lee(b)
b:=b+1
esc(b)
T4
P1 y P2 son
equivalentes
por vistas
BD2 - Tema 3 (Esther de Ves, Vicente Cervern)
lee(a)
a:=a*2
esc(a)
lee(b)
b:=b*2
esc(b)
31
Planificaciones y concurrencia
P3
T2
P7
T1
lee(x)
lee(x)
x:=x-N
x:=x-N
lee(x)
escribe(x)
x:=x+M
lee(y)
escribe(x)
y:=y+N
lee(y)
escribe(y)
escribe(x)
y:=y+N
escribe(y)
T2
lee(x)
P3 y P7 NO son
equivalentes
por vistas
BD2 - Tema 3 (Esther de Ves, Vicente Cervern)
x:=x+M
escribe(x)
32
Planificaciones y concurrencia
P5
T1
T3
P6
T1
T2
Lee(y)
Lee(z)
Lee(y)
Lee(z)
Esc(y)
Esc(z)
Lee(x)
Esc(x)
Esc(y)
Esc(z)
Lee(x)
Esc(x)
Lee(y)
Esc(y)
Lee(z)
Lee(y)
Esc(y)
Lee(y)
Esc(y)
Lee(x)
Esc(x)
T3
P5 y P6 son
equivalentes
por vistas?
Lee(z)
Lee(y)
Esc(y)
Lee(x)
Esc(x)
33
Planificaciones y concurrencia
Escritura
ciega
P:T1:lee(x),T2:esc(x),T1:esc(x),T3:esc(x)
Universitat de Valncia - 2006/07
34
Planificaciones y concurrencia
Diagrama del conjunto de planificaciones
Conjunto de planificaciones
serializables por vistas
serializables por conflictos
Planificaciones
en serie
35
Planificaciones y recuperabilidad
Clasificacin de planificaciones:
T1
T2
esc(x)
lee(x)
esc(y)
lee(y)
esc(x) commit
Planificacin recuperable
Universitat de Valncia - 2006/07
commit
no lee ningn
grnulo escrito antes
por T1
36
Planificaciones y recuperabilidad
T1
lee(x)
esc(x)
lee(x)
T2
esc(y)
lee(y)
commit
fallo
esc(x) commit
Planificacin no recuperable
T1
T2
esc(x)
esc(y)
lee(y)
lee(x)
commit
esc(x)
commit
Planificacin recuperable
Universitat de Valncia - 2006/07
37
Planificaciones y recuperabilidad
T1
T2
esc(x)
lee(y)
lee(x)
esc(y)
aborta
esc(x)
aborto
en cascada
38
Planificaciones y recuperabilidad
T1
esc(x)
lee(y)
lee(x)
T2
esc(y)
commit
esc(x)
commit
39
Planificaciones y recuperabilidad
Diagrama del conjunto de planificaciones
Conjunto de
planificaciones
serializables por
conflictos
recuperables
sin cascada
Planificaciones
Estrictas
40
COMMIT
ROLLBACK
Modo de acceso
Tamao del rea de diagnstico
Nivel de aislamiento
41
Nivel de aislamiento:
ISOLATION LEVEL <isol>
<isol>::=READ UNCOMMITTED |READ COMMITTED|
REPEATABLE READ|SERIALIZABLE
Universitat de Valncia - 2006/07
42
43
Lectura no
reproducible
Fantasmas
Lectura no
Confirmadas
Lectura
Confirmadas
No
Lectura
repetible
No
No
Serializable
No
No
No
44
45
Bibliografia utilizada
46
Ejercicios propuestos
47
Ejercicios propuestos
48
Ejercicios propuestos
{T1:lee(x),T2:lee(x),T1:esc(x),T2:esc(x)}
{T1:esc(x), T2:lee(y), T1:lee(y),T2:lee(x)}
{T1:lee(x),T2:lee(y),T3:esc(x),T2:lee(x),T1:lee(y)}
{T1:lee(x),T2:esc(x),T1:esc(x),T2:aborta, T1:confirma}
{T1:esc(x),T2:lee(x),T1:esc(x),T2:confirma, T1:confirma}
49
Ejercicios propuestos
50