Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
BDII: Tema 3
Introduccin
Algunas definiciones previas: Restricciones o reglas de integridad son autoconsistentes si no contienen contradicciones. Una BD es consistente si sus reglas son autoconsistentes y si los datos no violan dichas reglas.
BDII: Tema 3
Introduccin
Modelo simplificado de BD: Coleccin de elementos de datos con nombre (grnulos). Tamao de cada elemento se le llama granularidad. Una accin es una operacin de procesamiento primitivo e indivisible ejecutado por un nico usuario sobre un grnulo. Una transaccin es una secuencia de acciones ejecutadas por usuario determinado que respeta la consistencia de BD.
BDII: Tema 3
Introduccin
Acciones bsicas que se consideran para el modelo de BD especificado:
lee(x): lee un grnulo de la BD y lo guarda en una variable del programa. escribe(x): escribe el valor de la variable de programa en el elemento de la BD llamado x.
Introduccin
Caracterstica fundamental de transaccin: pasa de un estado consistente de la BD a otro tambin consistente. BD1 T1 BD2
BD1 y BD2 estados consistentes
Esto asegura la consistencia de la BD si el procesamiento es en serie. Nota: es tarea del usuario disear correctamente las transacciones o del mdulo encargado de conservar la integridad.
BDII: Tema 3 6
BDII: Tema 3
Atomicidad: fallo de alimentacin despus de escribir(x). Se puede perder los 60 euros a causa del fallo!
Durabilidad: Cuando se completa con xito la ejecucin de T1 debe permanecer en el sistema a pesar de posibles fallos.
BDII: Tema 3
Fallo del ordenador (cada del sistema). Un error de transaccin (errores lgicos de programacin). Imposicin del control de concurrencia. Problemas fsicos y catstrofe.
El sistema debe mantener suficiente informacin para lograr recuperase del fallo. Con objeto de garantizar la recuperacin, el sistema necesita mantenerse al tanto del estado de la transaccin.
BDII: Tema 3 9
Activa
Abortada
BDII: Tema 3 10
Tiempo
escribe(x)
Actualizacin perdida
y = 80
11
x = 100
T2 (M=3)
x = 95 x = 95 lee(x) x:=x+M
Tiempo
Fallo!
lee(y)
escribe(x)
Lectura sucia
BDII: Tema 3 12
Restriccin: A=B T2
a = 100 b = 100
Tiempo
a = 101 b = 100
lee(a) a:=2*a
a = 202 b = 100
Sobreescritura de datos no confirmados Restriccin: A=B deja de cumplirse por la ejecucin concurrente.
escribe(b)
13
a = 100
Lecturas no reproducibles
BDII: Tema 3 14
Planificaciones y concurrencia
Una planificacin p de n transacciones T1,..,Tn es un ordenamiento de las operaciones de las transacciones respetando el orden interno de cada transaccin.
T1={a1,a2,a3} T2={b1,b2}
Planificaciones y concurrencia
Las planificaciones se clasifican: Planificacin serializada si para cada transaccin T que participa en la planificacin, las operaciones de T se ejecutan consecutivamente. Planificacin no serializada Planificacin serializable si es equivalente a alguna planificacin serializada del mismo conjunto de transacciones. Planificacin no serializable si no son equivalentes a ninguna planificacin serializada. Pero, qu significa equivalente? Dos posibles definiciones
Planificaciones y concurrencia
Equivalentes por conflictos:
si el orden de dos operaciones conflictivas es el mismo en ambos planes.
BDII: Tema 3
17
Planificaciones y concurrencia
Una planificacin es serializable (por conflictos) si es equivalente (por conflictos) a alguna planificacin serializada. Es decir, si se puede transformar en una serializada mediante la permutacin de acciones no conflictivas (permutables) entre s.
Permutables por afectar a grnulos distintos
P1
T4
P2
T4
P1 es serializable en conflictos
BDII: Tema 3
18
Planificaciones y concurrencia
Inters: mtodo que permita detectar planes serializables (por conflictos). 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.
Grafo de precedencia: es un grafo orientado cuyo conjunto de vrtices es el conjunto de transacciones y existe un arco entre Ti y Tj si Ti precede a Tj.
BDII: Tema 3
19
Planificaciones y concurrencia
Ejemplo de grafo de precedencia
T1 T3 T2
T4
T6
Grafo de precedencia
T5
T7
T8
BDII: Tema 3
20
10
Planificaciones y concurrencia
Ejemplo planificacin P1
P1
T3 lee(a) a:=a+1 esc(a) T4
T3
Lee(a) a:=a*2 Esc(a)
T4 T3 precede a T4
BDII: Tema 3
21
Planificaciones y concurrencia
Ejemplo 2:
P3
T1 Lee(x) X:=x-N lee(x) X:=x+M escribe(x) lee(y) escribe(x) y:=y+N escribe(y) T2
T1
Hay un ciclo
BDII: Tema 3
22
11
Planificaciones y concurrencia
Proposicin: la condicin para que una planificacin sea serializable (por conflictos) es que el grafo de precedencias asociado no tenga ciclos. Ejemplo sobre tres transacciones:
T1 leer(x) esc(x) lee(y) esc(y) T2 lee(z) lee(y) esc(y) lee(x) esc(x) T3 lee(y) lee(z) esc(y) esc(z)
BDII: Tema 3
23
Planificaciones y concurrencia
Ejemplo planificacin P4 P4
T1 T2 T3
T1
T2
Lee(y) Lee(z) Lee(x) Esc(x) Esc(y) Esc(z) Lee(x) Lee(y) Esc(y) Esc(x)
Ciclo!
BDII: Tema 3
24
12
Planificaciones y concurrencia
Ejemplo planificacin P5: P5
T1 T2 T3 Lee(y) Lee(z) Lee(x) Esc(x) Esc(y) Esc(z) Lee(z)
T1
T2
No hay ciclo
T3
Planificaciones y concurrencia
Dos planificaciones pueden ser tambin equivalentes por vistas. Dos planificaciones P1 y P2 son equivalentes por vistas si:
Si participan el mismo conjunto de transacciones. Si Ti lee un grnulo escrito por de Tj en P1, en P2 ocurre lo mismo. Si Tk es la ltima operacin de escritura en P1 tambin lo es P2.
Condicin ms dbil que equivalencia por conflictos
Las definiciones de seriabilidad por conflictos y por vistas son equivalentes si no se efecta ninguna escritura restringida (o ciega). Escritura
ciega P:T1:lee(x),T2:esc(x),T1:esc(x),T3:esc(x)
BDII: Tema 3 26
13
Planificaciones y concurrencia
Diagrama del conjunto de planificaciones
Conjunto de planificaciones serializables por vistas serializables por conflictos Planificaciones serializadas
BDII: Tema 3
27
Planificaciones y recuperabilidad
Clasificacin de planificaciones:
Recuperables: una vez que una T ha confirmado nunca ser necesario deshacerla. No recuperables: no satisfacen la condicin anterior ( no se deben permitir).
Una planificacin P es recuperable si ninguna transaccin T de P se confirma antes de que se hayan confirmado todas las transacciones T que han escrito un elemento que T lee.
T1
lee(x)
esc(x)
lee(y)
esc(y)
commit
T2
lee(x)
esc(x) commit
Planificacin recuperable
BDII: Tema 3
14
Planificaciones y recuperabilidad
T1
lee(x)
esc(x)
lee(y)
esc(y)
commit
T2
lee(x)
esc(x) commit
Planificacin no recuperable
Puede ocurrir el fenmeno de restauracin en cascada (aborto en cascada): una transaccin no confirmada debe deshacerse porque ley un elemento de una transaccin fallida.
T1
lee(x)
esc(x)
lee(y)
esc(y)
aborta
T2
lee(x)
esc(x)
BDII: Tema 3
aborta
29
Planificaciones y recuperabilidad
El aborto en cascada puede consumir mucho tiempo por lo que se intenta evitar:
Planificaciones sin cascada: si toda transaccin de la planificacin solo lee elementos escritos por transacciones confirmadas
T1
lee(x)
esc(x)
lee(y)
esc(y)
commit
T2
lee(x)
esc(x)
commit
Planificaciones estrictas: en las que las transacciones no pueden leer ni escribir de un grnulo x hasta que confirme la ltima transaccin que escribi x.
BDII: Tema 3 30
15
Planificaciones y recuperabilidad
Diagrama del conjunto de planificaciones
Conjunto de planificaciones recuperables sin cascada Planificaciones Estrictas serializables por conflictos
BDII: Tema 3
31
Nivel de aislamiento:
ISOLATION LEVEL <isol> <isol>::=READ UNCOMMITTED |READ COMMITTED| REPEATABLE READ|SERIALIZABLE
BDII: Tema 3 32
16
BDII: Tema 3
33
Fantasmas
No
No
No
No
No
No
BDII: Tema 3
34
17
Bibliografia utilizada
Ramez A. Elmasri, Shamkant B. Navathe, Fundamentos de Sistemas de Bases de datos. Addison Wesley, segunda edicin. G. Weikum, G. Vossen, Transactional information systems, Morgan Kaufmann, 2002. G. Gardarin, P. Valduriez, Relational Databases and Knowledge Bases. Addison Wesley, 1989.
BDII: Tema 3
36
18
Ejercicios propuestos
Pon un ejemplo de transaccin y justifica que cumple cada una de las caractersticas deseables. Utiliza otra transaccin, mezcla las acciones de las dos transacciones en el tiempo y mira lo que ocurre con su ejeucin. Se manifiesta alguno de los problemas estudiados? Responder a las siguientes preguntas: Cuntas planificaciones pueden generarse a partir de 2 transacciones con 3 acciones cada una de ellas? Cuntas de ellas son serializadas y cuntas serializables si ninguna de las transacciones acta sobre un grnulo usado por otra? Cuntas de ellas son serializadas y cuntas serializables si ninguna realiza una escritura? Qu es una planificacin? Indique las diferentes formas en que una planificacin puede ser equivalente. Qu es una planificacin serializada? Por qu se considera correcta una planificacin serializada? Por qu se considera correcta una planificacin serializable?
BDII: Tema 3 37
Ejercicios propuestos
Qu diferencia hay entre escritura restringida y no restringida? Cul es ms realista? Considera las siguientes planificaciones y de qu tipo de planificacin es desde el punto de vista del control de concurrencia y de la recuperacin:
1. 2. 3. 4. 5.
Dado el diagrama de inclusin de tipos de planificaciones da un ejemplo para cada subconjunto de planificaciones.
BDII: Tema 3 38
19