Sei sulla pagina 1di 19

Conceptos sobre procesamiento de transacciones

Tema 3: Bases de Datos II

Contenidos del tema 3


1. Introduccin 2. Propiedades deseables en las transacciones. 3. Conceptos de transacciones y sistema. 4. Planificaciones y concurrencia. Planificaciones serializadas. Planificaciones serializables. 5. Planificaciones y recuperabilidad. 6. Definicin de transacciones en SQL.

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.

Una transaccin estar formada por operaciones bsicas de lectura y escritura.


T1 leer(x) x:=x-N escribir(x) leer(y) y:=y+N; esc(y)
BDII: Tema 3

T2 leer(x) x:=x+M escribir(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

Propiedades deseables de las transacciones


Las transacciones deben poseer varias propiedades (ACID) y su cumplimiento debe asegurarlo el SGBD:
Atomicidad: responsabilidad del SGBD (subsistema de recuperacin). la transaccion debe terminar Conservacin de la consistencia: responsabilidad de los programadores o del mdulo que asegura el cumplimiento de las reglas de integridad. Aislamiento: responsabilidad del SGBD (subsistemas de control de concurrencia) Es independiente de las demas Durabilidad o permanencia: responsabilidad del SGBD (subsistema de recuperacin).

BDII: Tema 3

Propiedades deseables de las transacciones


Ejemplo: T1 transfiere 60 euros de una cuenta x a otra y
T1 leer(x) x:=x-60 escribir(x) leer(y) y:=y+60; esc(y) Consistencia: suma de x e y no sea alterada al ejecutarse T1. La transaccin podra crear o destruir dinero!

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

Aislamiento: Se puede llegar a estados no deseados si T1 se ejecuta concurrentemente.


8

Conceptos de transacciones y sistema. Recuperacin


El sistema debe asegurarse de:
Todas las operaciones se superen con xito y su efecto queda registrado en la BD. La transaccin no tenga efecto alguno sobre el sistema y el resto de transacciones.

Los fallos pueden provocar que lo anterior no se cumpla.


1. 2. 3. 4.

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

Conceptos de transacciones y sistema. Recuperacin


Operaciones adicionales transacciones:
inicio_t leer o escribir fin_t confirmar abortar

Estados por los que puede pasar una transaccin:


inicio_t fin_t Parcialmente confirmarConfirmada confirmada abortar abortar

Activa

Abortada
BDII: Tema 3 10

Conceptos de transacciones y sistema. Concurrrencia


Qu pasa cuando las transacciones se ejecutan concurrentemente?
T1 (N=5) lee(x) x = 100 T2 (M=3) El elemento x tiene un valor incorrecto porque la actualizacin realizada por T1 se ha perdido

Tiempo

x:=x-N lee(x) x:=x+M escribe(x) lee(y) x = 95 y = 75 x = 103 y:=y+N escribe(y)


BDII: Tema 3

escribe(x)

Actualizacin perdida

y = 80

11

Conceptos de transacciones y sistema. Concurrrencia


T1 (N=5) La transaccin T1 falla y debe restaurar el valor antiguo, pero x:=x-N T2 ha leido el valor incorrecto escribe(x) de X. lee(x)

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

Conceptos de transacciones y sistema. Concurrencia


T1

Restriccin: A=B T2
a = 100 b = 100

Tiempo

lee(a) a:=a+1 escribe(a)

a = 101 b = 100

lee(a) a:=2*a

a = 202 b = 100

escribe(a) lee(b) b:=2*b

Sobreescritura de datos no confirmados Restriccin: A=B deja de cumplirse por la ejecucin concurrente.

lee(b) b:=b+1 escribe(b)

a = 202 b = 200 a = 202 b = 201


BDII: Tema 3

escribe(b)

13

Conceptos de transacciones y sistema. Concurrencia


T1 lee(a) muestra(a) a = 100 lee(a) a:=a+1 escribe(a) lee(a) muestra(a) La transaccin T1 lee dos valores diferentes para el dato a, en una misma transaccin. Extrao! a = 101 T1

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}

Ejemplos de planificaciones P1={a1,a2,a3,b1,b2} P2={a1,b1,a2,a3,b2} P3={b1,a1,b2,a2,a3}

No se respeta el orden interno de cada transaccin

No son planificaciones P1={a2,a1,a3,b2,b1} P2={a1,b2,a3,a2,b1} P3={b1,b2,a3,a2,a1}


BDII: Tema 3 15

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

Equivalencia por vistas


BDII: Tema 3

Equivalencia por conflictos


16

Planificaciones y concurrencia
Equivalentes por conflictos:
si el orden de dos operaciones conflictivas es el mismo en ambos planes.

Pero, Qu operaciones son conflictivas?


Dos acciones Ai y Aj no son conflictivas si toda ejecucin de Ai seguida de Aj conduce al mismo resultado que si ejecutramos Aj seguido de Aj.
Acciones sobre grnulos distintos no son conflictivas. Acciones de escritura son conflictivas (mismo grnulo).

Acciones de lectura y escritura son conflictivas (mismo grnulo).

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

T3 lee(a) a:=a+1 esc(a)

T4

P2

T3 lee(a) a:=a+1 esc(a)

T4

lee(b) b:=b+1 Esc(b)

lee(a) a:=a*2 esc(a)

Lee(b) b:=b+1 Esc(b) Lee(a) a:=a*2 Esc(a) Lee(b) b:=b*2 Esc(b)

Lee(b) b:=b*2 Esc(b)

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)

El plan en serie Equivalente es P2={T3,T4}

Lee(b) b:=b+1 Esc(b) Lee(b) b:=b*2 Esc(b)

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

T2 Quin precede a quin?

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

Lee(z) Lee(y) Esc(y)

T1

T2

Lee(y) Lee(z) Lee(x) Esc(x) Esc(y) Esc(z) Lee(x) Lee(y) Esc(y) Esc(x)

Ciclo!

T3 No existe plan en serie equivalente!

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

Lee(y) Esc(y) Lee(y) Esc(y) Lee(x) Esc(x)

No hay ciclo

T3

Es serializable, existe un plan en serie


BDII: Tema 3 25

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

no lee ningn grnulo escrito por T1 28

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

Planificacin sin cascada

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

Soporte de transacciones en SQL


Inicio de transaccin: es implcito en SQL Final de transaccin: en SQL
COMMIT ROLLBACK

Caractersticas de una transaccin especificables en SQL:


Modo de acceso: READ ONLY READ WRITE

Nivel de aislamiento:
ISOLATION LEVEL <isol> <isol>::=READ UNCOMMITTED |READ COMMITTED| REPEATABLE READ|SERIALIZABLE
BDII: Tema 3 32

16

Soporte de transacciones en SQL


Problemas relacionados con el nivel de aislamiento:
Lectura sucia: una transaccin T1 puede leer la actualizacin de T2 que todava no ha confirmado. Si T2 aborta, T1 habra ledo un dato incorrecto. Lectura no reproducible: Si una transaccin lee dos veces un mismo dato y en medio una transaccin lo modifica, ver valores diferentes para el dato. Fantasmas: una transaccin T1 puede leer un conjunto de filas (que cumplan una condicin). Si una transaccin T2 inserta una fila que tambin cumple la condicin y T1 se repite ver un fantasma, una fila que previamente no exista.

BDII: Tema 3

33

Soporte de transacciones en SQL


Violaciones posibles segn el nivel de aislamiento
Lectura sucia Lectura no reproducible
S

Fantasmas

Lectura no Confirmadas Lectura Confirmadas Lectura repetible Serializable

No

No

No

No

No

No

BDII: Tema 3

34

17

Soporte de transacciones en SQL


Ejemplo de transaccin en SQL:
EXEC SQL WHENEVER SQLERROR GOTO UNDO; EXEC SQL SET TRANSACTION READ WRITE ISOLATION LEVEL SERIALIZABLE; EXEC SQL INSERT INTO EMPLEADO (ENOMBRE,DNO,SALARIO) VALUES (Miguel Lpez,2,35000); EXEC SQL UPDATE EMPLEDO SET SALARIO=SALARIO*1,1 WHERE DNO=2; EXEC SQL COMMIT; FINAL: UNDO: EXEC SQL ROLLBACK
BDII: Tema 3 35

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.

{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}

Dado el diagrama de inclusin de tipos de planificaciones da un ejemplo para cada subconjunto de planificaciones.
BDII: Tema 3 38

19

Potrebbero piacerti anche