2. CI-5313 Arquitectura y Administración de Bases de Datos
2
Concurrencia
Transacción
Historia
Conflicto
Serializable..Serial
Operaciones
Read
Write
Commit
Rollback
3. CI-5313 Arquitectura y Administración de Bases de Datos
3
Transacciones
Transacción 1 Transacción 2
update cuenta
set saldo = saldo – 100 where
cid=1
Select sum(saldo)
from cuenta
update cuenta
set saldo = saldo + 60 where
cid=2
update cuenta
set saldo = saldo + 60 where
cid=2
4. CI-5313 Arquitectura y Administración de Bases de Datos
4
Transacción
Unidad Lógica de procesamiento de
bases de datos que incluye una o más
operaciones de acceso (Read y Write)
Un programa de aplicación puede contener
varias transacciones
begin
end
5. CI-5313 Arquitectura y Administración de Bases de Datos
5
Procesamiento de transacciones
Sistema mono-usuario.
Sistema multi-usuario:
Muchos usuarios pueden acceder de
forma concurrente
Concurrencia
Procesamiento intercalado:
Un solo CPU
Procesamiento paralelo. Varios CPU
tiempo
6. CI-5313 Arquitectura y Administración de Bases de Datos
6
Propiedades deseables de
transacciones
Atomicidad
Todas las actualizaciones se hacen
o ninguna
Consistencia
Satisface como un todo
restricciones de integridad
Aislamiento (Isolation)
Pareciera que las transacciones se
ejecutan en serie
Durabilidad
Si la transacción se compromete
(commit), las actualizaciones no se
perderán si hay fallas.
7. CI-5313 Arquitectura y Administración de Bases de Datos
7
Operaciones de una transacción
Read
Se busca el bloque en disco y se
transfiere a memoria - si no está ya
allí
Write
Se lleva el bloque de memoria a
disco – inmediatamente o
posteriormente
begin
end
8. CI-5313 Arquitectura y Administración de Bases de Datos
8
Operaciones de una transacción
Commit
Señala terminación exitosa. Las
actualizaciones pueden ser
comprometidas a la Base de Datos
y no serán deshechas
Rollback
La transacción se aborta, se
deshacen las actualizaciones y la
Base de Datos retorna a su estado
anterior
begin
end
9. CI-5313 Arquitectura y Administración de Bases de Datos
9
Problemas de procesamiento intercalado
ACID no se satisface
Unrepeatable Read: T2 lee antes de que T1 añada N
dando una suma incorrecta
Transacción 1 Transacción 2
sum:=0
read(A)
sum:=sum+A
read(X)
X:=X-N
Write(X)
read(X)
sum:=sum+X
read(Y)
sum:=sum+Y
Read(Y)
Y:=Y+N
Write(Y)
tiempo
10. CI-5313 Arquitectura y Administración de Bases de Datos
10
Problemas de procesamiento intercalado
ACID no se satisface
Transacción 1 Transacción 2
Read(X)
X:=X-N
read(X)
X:=X+M
write(X)
read(Y)
write(X)
y:=y+M
write(Y)
Lost Update: Las operaciones están intercaladas de tal
manera que write(X) realizada por T1 se pierde
tiempo
11. CI-5313 Arquitectura y Administración de Bases de Datos
11
Problemas de procesamiento intercalado
ACID no se satisface
Dirty Read: T1 falla y debe hacer ROLLBACK. T2 ha leido
un valor “sucio” de T1
Transacción 1 Transacción 2
Read(X)
X:=X-N
Write(X)
read(X)
X:=X+M
Write(X)
read(Y)
falla
tiempo
12. CI-5313 Arquitectura y Administración de Bases de Datos
12
Problemas de procesamiento intercalado
ACID no se satisface
Conflicto write-read
Dirty Read. Una transacción lee valor
de un dato escrito por otra transacción
que no ha hecho COMMIT
Conflicto read-write
Unrepeatable Read. Una transacción
lee valor de un dato varias veces. Entre
las lecturas, otra transacción la escribe
Conflicto write-write
Lost Update. Dos transacciones
actualizan el valor de un mismo dato.
Una actualziación sobreescribe la otra
tiempo
13. CI-5313 Arquitectura y Administración de Bases de Datos
13
Procesamiento intercalado
transacciones – Historia (Schedule)
El orden de ejecución de las operaciones
de varias transacciones conforma una
Historia de Ejecución.
Una Historia S de T1 …, Tn
Es un ordenamiento de las operaciones de
las transacciones, en donde para cada
transacción Ti se debe mantener el orden
de las operaciones de la transacción
Ejemplos
Sa: r1(X);r2(X);w1(X);r1(Y);w2(X);w1(Y)
Sb: r1(X);w1(X);r2(X);w2(X);r1(Y);a1
Transacciones
14. CI-5313 Arquitectura y Administración de Bases de Datos
14
Procesamiento intercalado
transacciones – Historia (Schedule)
Conflicto
Par de operaciones en conflicto
• Operaciones de dos transacciones diferentes T1
y T2
• Sobre el mismo elemento de datos
• Al menos una operación es write
r1(x), w2(x)
w1(x), r2(x)
w1(x), w2(x)
Transacciones
15. CI-5313 Arquitectura y Administración de Bases de Datos
15
Procesamiento intercalado
transacciones – Historia (Schedule)
Serial…Serializable
Historia Serial:
Si para cada transacción que participa en la
Historia, todas las operaciones son ejecutadas
consecutivamente
Si no se cumple es no serial.
Historia Serializable:
Si es equivalente a alguna ejecución serial de las
mismas transacciones
Transacciones
16. CI-5313 Arquitectura y Administración de Bases de Datos
16
Procesamiento intercalado
Transacciones – Historia (Schedule)
Serial
tiempo
Transacción 1 Transacción 2
read(A)
A:=A+100
write(A)
read(B)
B:=B+100
write(B)
read(A)
A=A*2
write(A)
read(B)
B=B*2
write(B)
17. CI-5313 Arquitectura y Administración de Bases de Datos
17
Procesamiento intercalado
transacciones – Historia (Schedule)
Serializable
tiempo
Transacción 1 Transacción 2
read(A)
A:=A+100
write(A)
read(A)
A=A*2
write(A)
read(B)
B:=B+100
write(B)
read(B)
B=B*2
write(B)
18. CI-5313 Arquitectura y Administración de Bases de Datos
18
Procesamiento intercalado
transacciones – Historia (Schedule)
No Serializable
tiempo
Transacción 1 Transacción 2
read(A)
A:=A+100
write(A)
read(B)
read(A)
A=A*2
write(A)
read(B)
B=B*2
write(B)
B:=B+100
write(B)
Lost Update: Las operaciones están intercaladas de tal
manera que write(B) realizada por T2 se pierde
19. CI-5313 Arquitectura y Administración de Bases de Datos
19
Procesamiento intercalado
transacciones – Historia (Schedule)
Equivalencia
tiempo
tiempo
Equivalentes?
Dos historias son Equivalentes por
Conflicto si el orden de dos operaciones
conflictivas es el mismo en ambas
historias.
Una Historia es Serializable por Conflicto si
es Equivalente por Conflcto a una Historia
Serial.
El rol del DBMS es asegurar que las
historias sean serializables
20. CI-5313 Arquitectura y Administración de Bases de Datos
20
Procesamiento intercalado
transacciones – Historia (Schedule)
Chequeo Serializable por Conflicto
Grafo de precedencia de la Historia
Un nodo por cada transacción Ti
Un arco de Ti a Tj si hay una operación
conflictiva de las transacciones, y la
operación de Ti precede a la de Tj
Si el grafo es acíclico, la Historia es
Serializable por Conflicto
21. CI-5313 Arquitectura y Administración de Bases de Datos
21
Procesamiento intercalado
transacciones – Historia (Schedule)
Chequeo Serializable por Conflicto
Grafo de precedencia de la Historia
Un nodo por cada transacción Ti
Un arco de Ti a Tj si hay una operación
conflictiva de las transacciones, y la
operación de Ti precede a la de Tj
Si el grafo tiene un ciclo, la Historia es
No Serializable por Conflicto
22. CI-5313 Arquitectura y Administración de Bases de Datos
22
Concurrencia
Otros conceptos por desarrollar
Historias
Recuperable
Cascadeless
Estricta
Control de Concurrencia
Locks
Timestamps
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.
En la clase de hoy comenzaremos con la segunda parte del curso que tiene que ver con el control de concurrencia, la recuperación de la base de datos y los mecanismos de seguridad. Para ello necesitaremos conocer el concepto de Transacción.