2. Temario
Modelo de Sistema de Bases de Datos
• TI y procesos productivos
• Descripción de DBMS
El Problema : concurrencia y recuperabilidad
• Transacciones
• Recuperabilidad
• Serializabilidad
Teoría de la Serializabilidad
• Definiciones
• Teoremas
3. TI y procesos productivos
Mercado
Productos y/o servicios
Empresa
TECNOLOGÍAS DE
INFORMACIÓN
EFICIENCIA
ACCIONISTAS MAX.UTILIDAD
5. Características DBMS (1)
Caché Manager :
Mueve datos entre memoria volátil y de
almacenamiento
Tamaños, costos y tiempos de acceso diferentes
Soporta funciones de :
Fetch (x) : desde volátil a almacenamniento
Flush (x) : almacenamiento a volátil
Recovery Manager :
Es responsable de los contenidos de BD.
Soporta las funciones :
Start, Commit, Abort, Read y Write.
Estas funciones las realiza con fetch y flush.
Administra System Failures y Media Failures
6. Características DBMS (2)
Scheduler :
Es un programa que controla la ejecución
concurrente de transacciones.
Su propósito es ordenar las operaciones de modo
que la ejecución resultante sea serializable y
recuperable.
El scheduler puede toma una de tres acciones :
Execute: interactúa con el DM
Reject : la transacción es abortada
Delay : retarda en cola interna
7. Transaction Manager :
Recibe las transacc. e interactúa con scheduler.
En DB distribuídos qué sitio procesa qué transacc.
Coordinación :
Alternativas de coordinación entre administradores :
Handshake
Colas FIFO
Características DBMS (3)
9. Los problemas del Control de Concurrencias y Recuperación, surgen en el
diseño del hardware, sistemas operativos, sistemas de tiempo real,
sistemas de comunicaciones, y sistemas de base de datos, entre otros.
Recuperación y Concurrencia están relacionados con la protección de
datos (pérdida o daño de la información de la BD), y forman parte del tema
más amplio de la Administración de Transacciones.
Tienen que ver con problemas como:
1.- El sistema puede abortar cuando está ejecutando algún programa, con
lo que dejaría a la base de datos en un estado desconocido.
2.- Dos programas que están ejecutándose al mismo tiempo (en forma
recurrente) pueden interferir entre sí y en consecuencia, producir
resultados incorrectos.
El Problema
10. Una transacción es una unidad de trabajo lógica, que posee las siguientes
propiedades (ACID):
• Atomicidad: todo o nada en los efectos de una transacción
• Consistencia: debe ser un cambio correcto de estado en la base de datos
(no violar restricciones)
• Isolation (Aislamiento): las transacciones están aisladas entre sí. Es
decir, aunque en general hay muchas transacciones ejecutándose en forma
concurrente, las actualizaciones de una transacción dada están ocultas ante
las demás, hasta que esa transacción sea confirmada.
• Durabilidad: Una vez que una transacción es confirmada, sus
actualizaciones sobreviven en la base de datos aun cuando haya caída
posterior del sistema.
Transacciones
11. La administración de transacciones es la tarea de supervisar la
ejecución de transacciones, en forma tal que se pueda garantizar
que se cumplan las propiedades ACID.
Específicamente garantiza que si la transacción ejecuta algunas
actualizaciones y luego, por cualquier razón, ocurre una falla
antes de que la transacción alcance su terminación planeada,
entonces esas actualizaciones serán desechas. Es decir, la
transacción o se ejecuta o se cancela totalmente, y las
operaciones Commit y Abort son la clave como funciona.
Administración de Transacciones
12. Recuperación
La recuperación en un sistema de base de datos significa
principalmente la recuperación de la propia base de datos; es
decir el reestablecimiento de la misma a un estado correcto
(consistente) después de que alguna falla haya ocasionado que el
estado actual sean inconsistente.
Fallas Típicas
• Software o procesamiento que causan que la base de datos sea
detenida o reiniciada
• Almacenamiento que hacen imposible recuperar los datos desde
el almacenamiento
• Comunicaciones que abortan transacciones pero no el
funcionamiento DBMS
13. Recuperación
El sistema garantiza las propiedades ACID de las transacciones ante
una caída del sistema. Para brindar esta garantía, el sistema debe:
a.- Rehacer
b.- Deshacer
Esta actividad de recuperación del sistema es realizada como parte del
procedimiento de reinicio del sistema (reinicio/recuperación). El
sistema descubre qué trabajo hay que rehacer y cuál hay que
deshacer, examinando el registro de punto de verificación más
reciente.
El sistema también proporciona la recuperación del medio al restaurar
la base de datos a partir de un vaciado previo y después, usando una
bitácora, rehace el trabajo que se término desde que se hizo el
vaciado.
14. En general, el término concurrencia se refiere al hecho de que
los DBMS permiten que muchas transacciones accedan a una
misma base de datos a la vez.
Los problemas que debe resolver cualquier mecanismo de
control de concurrencia son:
• El problema de la actualización perdida
• El problema de la dependencia no confirmada, y
• El problema del análisis inconsistente
Concurrencia
15. La serialización es el criterio formal de corrección para la ejecución de un
conjunto dado de transacciones concurrentes.
La ejecución de un conjunto dado de transacciones es correcta cuando es
serializable, es decir, cuando produce el mismo resultado que una
ejecución serial de las mismas transacciones, ejecutando una a la vez,
puesto que:
• Las transacciones individuales son tomadas como correctas, y
• También es correcta la ejecución de una transacción a la vez en
cualquier orden serial (transacciones individuales independientes entre sí).
Vale la pena enfatizar que dos planes seriales diferentes que involucran el
mismo conjunto de transacciones bien pueden producir resultados
diferentes y, por tanto, dos planes intercalados diferentes que involucran a
esas transacciones, también pueden producir resultados diferentes,
aunque ambos sean considerados como correctos.
Serialización
16. Ejemplo:
Transacción A: “Sumar 1 a X”
Transacción B: “Duplicar X”
Valor Inicial X = 10
• Plan Serial AB, nos da X = 22
• Plan Serial BA, nos da X = 21
La técnica más ampliamente utilizada para el manejo de los
problemas concurrentes (Actualización pérdida, dependencia no
confirmada y análisis inconsistente), que se presentan en planes
que no son serializables es el bloqueo.
Serialización
18. Transacciones
Dos operaciones sobre los datos: Leer (r) y Escribir (w). Se especifica
El nombre del dato sobre el que se opera no el valor del dato. Cada
transacción termina además con ejecutar (c) o abortar (a) para indicar
si la transacción es ejecutada o no.
Ejemplo 1:
1111 ][][: cxwxrT →→
Ejemplo 2:
][2 xr
][2 yr
][2 zw 2c
20. Historias, Historias Completas
Dos operaciones entran en conflicto si ambas operan sobre el mismo
dato y al menos una de ellas es escribir.
pqqp
Hqp
TH
TH
TTT
HH
n
i
iH
n
i
i
H
n
≤∨≤
∈
⊇≤
=
≤
=
=
=
quetienese
conflictoensoperacionedeparcualquierPara
dondeordenderel.conparcialordenunessobrecompleta
historiaUnanes.transacciodeconjuntoun}Sea
,.3
.2
.1
,,{
1
1
1
21. Historias ...
Ejemplo de Historia Completa
][1 xw 1c][1 xr
][2 xw ][2 yw
][1 zr
2c
Se define (Proyección Confirmada) de una historia como
la historia generada desde por borrado de todas las operaciones
Que no pertenecen a transacciones confirmadas en
)(HC
H
H
H
22. Problemas de Concurrencia
1. Actualizaciones Perdidas (Lost updates) – Depósito hecho por T1
se pierde
T1: r1[x] w1[x] c1
T2: r2[x] w2[x] r2[y] w2[y] c2
2. Lectura Sucia (Dirty Reads)- Cantidad deducida de x por T2
desaparece
T1: r1[x] w1[x] c1
T2: r2[x] w2[x] ... a2
23. Historias Equivalentes
Definición- Dos historias son equivalentes
si:
1. Son definidas sobre el mismo conjunto de transacciones y tienen el
mismo conjunto de operaciones, y
2. Para todo par de operaciones conflictivas
respectivamente tal que
Definición- Una historia es serializable si es equivalente a
alguna historia serial .
'HH y
)(≡
jiji TTpp yy ∈
Haa ji ∉y
jHijHi qpqp '≤⇒≤Si
SH
24. Grafo de Serialización
Definición- El grafo de serialización de una
historia , es un grafo dirigido con nodos
correspondientes a las transacciones con commit en
y arcos tal que y tiene
conflicto con
)(HSG
H
H ji TT → jHi qp ≤ ii Tp ∈
jj Tq ∈