Documente Academic
Documente Profesional
Documente Cultură
depto
1
12
Jos
Antonio
10
20
Cristina
30
22
5
Julia
Rubn
20
10
...
...
...
DEPARTAMENTO
codDep nomDep
ciudSede numEmp
20
10
Produccin Murcia
Direccin
Madrid
2
2
30
Sistemas
Valencia
...
...
...
...
2. Locales no previstos
Error de programacin (bug), interrupcin
Slo afecta a la T
fallida
Prdida de datos
de T en memoria
princ. y bfer E/S
(y 2)
5. Fallos de disco
Fallos en dispositivos de almacenamiento
T1
COMMIT T1
SGBD
T2
K
O
BD
ROLLBACK T2
SubSistema de
Recuperacin
Todo o nada
Conservacin de la Consistencia
SS de Integridad
+ Programadores
Aislamiento (Isolation)
SS de Control de
T no muestra los cambios que produce hasta que finaliza
Puede no imponerse de forma estricta (niveles de aislamiento) Concurrencia
Durabilidad
Una vez que T finaliza con xito y es confirmada,
los cambios perduran aunque el sistema falle despus
SubSistema de
Recuperacin
10
LEER /
ESCRIBIR
FIN DE
TRANSACCION
ACTIVA
Verificaciones para
control de concurrencia
y recuperacin
PARCIALMENTE
CONFIRMADA
CONFIRMAR
CONFIRMADA
ABORTAR
ABORTAR
Otras:
* DESHACER una operacin
* REHACER (algunas operaciones de)
una transaccin
FALLIDA
TERMINADA
11
12
13
FICHERO
DE
BITCORA
16
(2)
Se mantiene en el disco
En un rea distinta a donde se almacenan los datos de la BD
No le afecta ningn tipo de fallo, salvo los de tipo 5 y 6
Se suele realizar peridicamente una copia de seguridad (en cinta)
17
(3):
tipos de entradas
(y 4)
Suponemos que...
Las transacciones no se pueden anidar
Toda modificacin permanente de la BD ocurre
dentro de una transaccin
Recuperar un fallo de T consistir en deshacer o rehacer
algunas de sus operaciones, a partir del contenido de la
bitcora (se ver)
19
Area de
trabajo
de T
Bfer
de BD
BD
20
BD ok
T1
Bitcora
...
<INICIAR,T1>
<ESCRIBIR,T1,...>
<LEER,T1,...>
<ESCRIBIR,T1,...>
<COMMIT,T1>
...
21
(y 2)
T1
...
<INICIAR,T1>
<ESCRIBIR,T1,...>
<LEER,T1,...>
<ROLLBACK,T1>
...
22
UPDATE... SELECT...
COMMIT
23
24
reversin en cascada
...
< ESCRIBIR, T1, X, 10, 5 >
...
< LEER, T2, X >
< ESCRIBIR, T2, X, 5, 25 >
...
< ROLLBACK, T1 >
...
COMMIT
PUNTO DE CONFIRMACIN
T
BITCORA
a disco
CAMBIOS
a disco
ESCRITURA EN
DISCO DE CAMBIOS
COMMIT
ESCRITURA EN
DISCO DE BITCORA
PUNTO DE CONFIRMACIN
COMMIT
T
BITCORA
a disco
SELECT... INSERT...
CAMBIOS
a disco
COMMIT
T
BITCORA
a disco
CAMBIOS
a disco
29
UPDATE... SELECT...
DELETE...
INSERT...
SELECT... COMMIT
T2
T3
UPDATE...
INSERT...
SELECT...
...
<INICIAR,T2>
<INICIAR,T3>
<ESCRIBIR,T2,...>
<INICIAR,T1>
<ESCRIBIR,T1,...>
<ESCRIBIR,T3,...>
<LEER,T1,...>
<ESCRIBIR,T3,...>
<LEER,T2,...>
<ESCRIBIR,T1,...>
<COMMIT,T2>
<LEER,T3,...>
mejora con
puntos de
validacin
30
(2)
31
(3)
(4)
COMMIT
BITCORA
a disco
CAMBIOS
a disco
T
Si el fallo ocurre antes de alcanzar T su punto de
confirmacin, no es necesario deshacer sus operaciones
(2)
(y 3)
UPDATE... DELETE...
CAMBIOS
a disco
COMMIT
(2)
(3)
UPDATE... DELETE...
CAMBIOS
a disco
PUNTO DE CONFIRMACIN
COMMIT
42
Fin de transaccin
COMMIT
Finaliza la transaccin actual y hace permanentes (confirma) los cambios
realizados
COMMIT implcito (por parte del SGBD)
El programa finaliza de forma normal
Se sale de la herramienta (SQL*Plus, ...) correctamente
Se ejecuta una sentencia LDD
Oracle realiza COMMIT antes y despus (si tiene xito) de ejecutarla
43
(cont.)
44
45
6. Recuperacin de fallos
Bibliografa
[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases de
Datos. 3 Edicin. Addison-Wesley. (Cap. 19 y 21)
[EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos. Conceptos
fundamentales. 2 Edicin. Addison-Wesley Iberoamericana. (Cap. 17, 18
y 20)
[CBS 1998] Connolly, T.; Begg C.; Strachan, A.: Database Systems: A Practical
Approach to Design, Implementation and Management. 2nd Edition. AddisonWesley. (Cap. 17)
46