1. Sistemas de Base de Datos
8.1- Transacciones
Unidad lógica de procesamiento
Secuencia de operaciones que implican accesos a la base
de datos
Pero también se considera...
– Unidad lógica de integridad
– Unidad lógica de concurrencia
– Unidad lógica de recuperación
Una transacción es atómica
O se ejecutan todas las operaciones que componen la
transacción, o no se realiza ninguna
ejemplo:
transferencia de dinero entre dos cuentas bancarias
DAI - Ing. Arturo Rozas Huacho 1
2. Sistemas de Base de Datos
8.1- Transacciones…
Estado
antes de la BD BD BD
Transacción
SELECT SELECT SELECT
TRANSACCION
UPDATE UPDATE UPDATE
UPDATE UPDATE
¡Fallo de
Hardware!
DELETE DELETE
¡Error de El SGBD deshace
INSERT Programa! Todos los cambios
Estado
después de la El SGBD deshace
BD Todos los cambios
Transacción
DAI - Ing. Arturo Rozas Huacho 2
3. Sistemas de Base de Datos
8.1- Transacciones
Tipos de fallos
- Fallo del computador (hardware)
- Errores de software. Desbordamiento, división por cero,
etc.
- Condiciones de excepción detectadas por la transacción.
(Por ejemplo no se tiene el saldo para cubrir un retiro)
- Imposición del control de concurrencia
(Transacciones en bloqueo mortal)
- Fallo del disco
- Problemas y catástrofesIng. Arturo Rozas Huacho
DAI - físicos 3
4. Sistemas de Base de Datos
8.1- Transacciones…
Propiedades ACID
DAI - Ing. Arturo Rozas Huacho 4
5. Sistemas de Base de Datos
8.1- Transacciones
Sea Ti una transacción para transferir S/. 500.00 de la
cuenta A a la cuenta B. Se puede definir dicha transacción
como:
Ti: leer(A)
A A – 500
escribir(A)
leer(B)
B B + 50
escribir(B)
DAI - Ing. Arturo Rozas Huacho 5
6. Sistemas de Base de Datos
8.1- Transacciones
Atomicidad
•Todas o ninguna de las operaciones de la transacción son
ejecutadas.
•Si la transacción falla, sus resultados parciales deben ser
deshechos.
•La actividad de preservar la atomicidad de la transacción en
la presencia de abortos de la transacción debido a errores de
entrada, interbloqueos es llamada recuperación de la
transacción.
•El sub sistema de recuperación es el responsable de asegurar
la atomicidad en la presencia de fallos.
DAI - Ing. Arturo Rozas Huacho 6
7. Sistemas de Base de Datos
8.1- Transacciones
Consistencia
• Consistencia Interna
- Una transacción que se ejecuta al terminar deja la base de
datos en estado consistente.
- Las transacciones no violan las restricciones de integridad
de las bases de datos.
DAI - Ing. Arturo Rozas Huacho 7
8. Sistemas de Base de Datos
8.1- Transacciones
Aislamiento
• Serialización
– Si varias transacciones son ejecutadas concurrentemente,
los resultados deben ser los mismos como si ellas fueran
ejecutadas serialmente en algún orden.
• Resultados incompletos
– Una transacción incompleta no puede revelar sus
resultados a otras transacciones antes de su
compromiso.
DAI - Ing. Arturo Rozas Huacho 8
9. Sistemas de Base de Datos
8.1- Transacciones
Durabilidad
• Una vez que la transacción se compromete, el sistema
debe garantizar que los resultados de sus operaciones
nunca serán perdidos, a pesar de fallas subsecuentes.
• Recuperación de la base de datos
DAI - Ing. Arturo Rozas Huacho 9
10. Sistemas de Base de Datos
8.1- Transacciones…
DAI - Ing. Arturo Rozas Huacho 10
11. Sistemas de Base de Datos
8.1- Transacciones…
Estados de una transacción
Parcialmente
Comprometida
Comprometida
Activa
Fallida Abortada
DAI - Ing. Arturo Rozas Huacho 11
12. Sistemas de Base de Datos
8.1- Transacciones…
Implementación de la atomicidad y la
durabilidad
Copia en la sombra. Esquema simple pero extremadamente
ineficiente. Asume que sólo una transacción está activa en cada
momento.
Puntero-bd Puntero-bd
Copia anterior de la
Copia anterior de Nueva copia de la
base de datos
la base de datos base de datos
(que será borrada)
Copia en la sombra
(a) Antes de la actualización (b) Después de la actualización
Si el sistema falla antes de que la transacción haya sido confirmada,
entonces solamente se borra la nueva copia.
DAI - Ing. Arturo Rozas Huacho 12
13. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Clasificación de los fallos
Fallo en la transacción.
. Error lógico (desbordamiento).
. Error del sistema (Inter bloqueo)
Caída del sistema
Fallo del disco
Se pueden proponer algoritmos para garantizar la consistencia de la
base de datos y la atomicidad de las transacciones a pesar de los fallos.
DAI - Ing. Arturo Rozas Huacho 13
14. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Estructura del almacenamiento
Para entender cómo se pueden garantizar las propiedades de
atomicidad y durabilidad de una transacción, se deben comprender las
estructuras de almacenamiento y sus métodos de acceso.
Tipos de almacenamiento
. Almacenamiento volátil .- La información no suele sobrevivir a las caídas
del
sistema. Ejemplos: Memoria principal y memoria cache.
. Almacenamiento no volátil .- Sobrevive a las caídas del sistema. Ejemplos:
Discos, CD’s, DVD’s.
. Almacenamiento estable.- La información que reside en almacenamiento
estable “nunca” se pierde.
DAI - Ing. Arturo Rozas Huacho 14
15. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Implementación del almacenamiento estable
Para implementar almacenamiento estable se debe replicar la
información necesaria en varios medios de almacenamiento no volátil
(normalmente discos) con modos de fallo independientes.
. RAID.- (Disposición redundante de discos independientes)
Discos con imagen.
(No protegen contra la pérdida de datos debida a desastres naturales)
. Almacenamiento estable remoto .- Copias de datos en el sistema de
discos
locales y a través de una red de computadoras.
Copia de
Principal RED
seguridad
DAI - Ing. Arturo Rozas Huacho 15
16. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Implementación del almacenamiento estable
Es necesario que, si se produce un fallo durante una transferencia de
datos, el sistema lo detecte e invoque a un procedimiento de
recuperación para restaurar el bloque a un estado estable. Para hacer
esto, el sistema debe mantener dos bloques físicos por cada bloque
lógico de la base de datos.
Una operación de salida se ejecuta de la siguiente manera:
1. Se escribe la información en el primer bloque físico
2. Cuando la primera escritura se completa con éxito, se escribe la misma información
en el segundo bloque físico.
3. La salida está completada sólo después de que la segunda escritura finalice
con éxito.
DAI - Ing. Arturo Rozas Huacho 16
17. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Acceso a los datos
Las transacciones llevan información del disco hacia la memoria
principal y luego devuelven la información al disco.
Las operaciones de entrada y salida se realizan en unidades de bloque
Operaciones:
1. entrada(B) transfiere el bloque físico B a la memoria principal
2. salida(B) transfiere el bloque de memoria intermedia B al disco y reemplaza allí al
correspondiente bloque físico.
A
A
Memoria principal Disco
DAI - Ing. Arturo Rozas Huacho 17
18. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Acceso a los datos
Cada transacción Ti posee un área de trabajo privado en la cual se guardan
copias de todos los elementos de datos accedidos y actualizados por Ti.
Cada elemento de datos X almacenado en el área de trabajo de la
transacción Ti se denotará como xi.
Operaciones de transferencia de datos:
1. leer(X) asigna el valor del elemento de datos X a la variable local x i.
a) Si el bloque Bx en el que reside X no está en la memoria principal, entonces se
emite entrada(Bx).
b) Asignar a xi el valor de X en el bloque de memoria intermedia.
2. escribir(X) asigna el valor de la variable local xi al elemento de datos X en el bloque
de memoria intermedia.
a) Si el bloque Bx en el que reside X no está en la memoria principal, entonces se
lanza entrada(Bx).
b) Asignar el valor de xi a X en la memoria intermedia Bx.
DAI - Ing. Arturo Rozas Huacho 18
19. Sistemas de Base de Datos
8.2- Sistema de Recuperación
RECUPERACION Y ATOMICIDAD
Saldos Iniciales Cuenta A Cuenta B
S/. 1000 S/. 2000
Supóngase que se desea transferir S/. 50 de la cuenta A a la B y que el
sistema cae durante la ejecución de Ti.
- Después de ejecutarse salida(B A ), pero antes de ejecutarse salida (B B )
(Donde BA y BB denotan los bloques de memoria intermedia en los que residen A y B.)
Estados inconsistentes con dos posibles procedimientos de
recuperación
Volver a ejecutar T i No volver a ejecutar T i
Cuenta A Cuenta B Cuenta A Cuenta B
S/. 900 S/. 2050 S/. 950 S/. 2000
DAI - Ing. Arturo Rozas Huacho 19
20. Sistemas de Base de Datos
8.2- Sistema de Recuperación
RECUPERACIÓN BASADA EN EL REGISTRO
HISTÓRICO
El registro histórico es una secuencia de registros que mantiene un registro
de todas las actualizaciones de la base de datos.
Campos del registro de actualización del registro histórico:
- El identificador de la transacción
- El identificador del elemento de datos.
- El valor anterior
- El valor nuevo
<T i , X j , Valor anterior, Valor nuevo>
DAI - Ing. Arturo Rozas Huacho 20
21. Sistemas de Base de Datos
8.2- Sistema de Recuperación
RECUPERACIÓN BASADA EN EL REGISTRO
HISTÓRICO
Tipos de registros del registro histórico:
- <T i iniciada>. La transacción Ti ha comenzado.
- <T i , X j , V 1 , V 2 >. La transacción Ti ha realizado una escritura sobre el elemento de
datos Xj . Xj tenía el valor V1 antes de la escritura y tendrá el valor V2 después de la
escritura.
- <T i comprometida>. La transacción Ti se ha comprometido.
- <T i abortada> La transacción Ti ha sido abortada.
DAI - Ing. Arturo Rozas Huacho 21
22. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Modificación diferida de la base de datos
Garantiza la atomicidad mediante el almacenamiento de todas las
modificaciones de la base de datos en el registro histórico, pero retardando
la ejecución de todas las operaciones escribir de una transacción hasta que
la transacción se compromete parcialmente.
Cuando una transacción se compromete parcialmente, la información del
registro histórico asociada a esa transacción se utiliza para la ejecución de
las escrituras diferidas.
Si el sistema cae antes de que la transacción complete su ejecución o si la
transacción aborta, la información del registro histórico simplemente se
ignora.
DAI - Ing. Arturo Rozas Huacho 22
23. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Modificación diferida de la base de datos
El esquema de recuperación usa un procedimiento de recuperación:
- rehacer(T i ) fija el valor de todos los elementos de datos actualizados
por la transacción Ti a los nuevos valores.
La operación rehacer debe ser idempotente, esto es, el resultado de
ejecutarla varias veces debe ser equivalente al resultado de ejecutarla una
sola vez.
Después de ocurrir un fallo, el subsistema de recuperación consulta el
registro histórico para determinar las transacciones que deben rehacerse.
Una transacción Ti debe rehacerse si y sólo si el registro histórico contiene
los registros <T i iniciada> y <T i comprometida>.
DAI - Ing. Arturo Rozas Huacho 23
24. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Modificación diferida de la base de datos
Sea T0 una transacción que transfiere S/. 50 desde la cuenta A a la cuenta
B. Y sea T1 una transacción que retira S/. 100 de la cuenta C.
(Saldos iniciales: A = 1000, B = 2000 y C = 700)
T0: leer(A) Registro histórico Registro histórico Base de
<T0 iniciada> datos
A := A – 50
<T0 iniciada>
escribir(A) <T0, A, 950>
<T0, A, 950>
leer(B) <T0, B, 2050>
<T0, B, 2050>
B := B + 50 <T0, comprometida>
escribir(B) <T0, comprometida>
A = 950
<T1 iniciada> B = 2050
T1: leer(C)
<T1, C, 600> <T1 iniciada>
C := C – 100
<T1, comprometida> <T1, C, 600>
escribir(C)
<T1, comprometida>
C = 600
DAI - Ing. Arturo Rozas Huacho 24
25. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Modificación diferida de la base de datos
Tres situaciones de caída del sistema:
T0: leer(A) T0: leer(A) T0: leer(A)
A := A – 50 A := A – 50 A := A – 50
escribir(A) escribir(A) escribir(A)
leer(B) leer(B) leer(B)
B := B + 50 B := B + 50 B := B + 50
escribir(B) escribir(B) escribir(B)
T1: leer(C) T1: leer(C) T1: leer(C)
C := C – 100 C := C – 100 C := C – 100
escribir(C) escribir(C) escribir(C)
<T0 iniciada> <T0 iniciada> <T0 iniciada>
<T0, A, 950> <T0, A, 950> <T0, A, 950>
<T0, B, 2050> <T0, B, 2050> <T0, B, 2050>
<T0, comprometida> <T0, comprometida>
<T1 iniciada> <T1 iniciada>
<T1, C, 600> <T1, C, 600>
<T1, comprometida>
DAI - Ing. Arturo Rozas Huacho 25
26. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Modificación diferida de la base de datos
Tres situaciones de caída del sistema:
<T0 iniciada> <T0 iniciada> <T0 iniciada>
<T0, A, 950> <T0, A, 950> <T0, A, 950>
<T0, B, 2050> <T0, B, 2050> <T0, B, 2050>
<T0, comprometida> <T0, comprometida>
<T1 iniciada> <T1 iniciada>
<T1, C, 600> <T1, C, 600>
<T1, comprometida>
No es necesario llevar Se realiza la Se realiza las
a cabo ninguna acción operación operaciones
rehacer , ya que no rehacer(T0) rehacer(T0)
aparece el registro de ya que el registro rehacer(T1)
comprometido. <T0, comprometida> ya que los registros
Aparece en el <T0, comprometida>
registro histórico. <T1, comprometida>
Aparecen en el registro
histórico.
DAI - Ing. Arturo Rozas Huacho 26
27. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Modificación inmediata de la base de datos
Permite realizar la salida de las modificaciones de la base de datos a la
propia base de datos mientras que la transacción está todavía en estado
activo.
En caso de una caída o de un fallo en la transacción, el sistema debe utilizar
el campo para el valor anterior de los registros del registro histórico.
El esquema de recuperación usa dos procedimientos de recuperación:
- deshacer(T i ) restaura el valor de todos los elementos de datos
actualizados por la transacción Ti a los valores anteriores.
- rehacer(T i ) fija el valor de todos los elementos de datos actualizados
por la transacción Ti a los nuevos valores.
DAI - Ing. Arturo Rozas Huacho 27
28. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Modificación inmediata de la base de datos
Sea T0 una transacción que transfiere S/. 50 desde la cuenta A a la cuenta
B. Y sea T1 una transacción que retira S/. 100 de la cuenta C.
(Saldos iniciales: A = 1000, B = 2000 y C = 700)
T0: leer(A) Registro histórico Registro histórico Base de
<T0 iniciada> datos
A := A – 50
<T0 iniciada>
escribir(A) <T0, A, 1000, 950>
<T0, A, 1000, 950>
leer(B) <T0, B, 2000, 2050>
A = 950
B := B + 50 <T0, comprometida>
<T0, B, 2000, 2050>
escribir(B)
B = 2050
<T1 iniciada> <T0, comprometida>
T1: leer(C)
<T1, C, 700, 600>
C := C – 100
<T1, comprometida> <T1 iniciada>
escribir(C)
<T1, C, 600>
C = 600
<T1, comprometida>
DAI - Ing. Arturo Rozas Huacho 28
29. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Modificación diferida de la base de datos
Tres situaciones de caída del sistema:
T0: leer(A) T0: leer(A) T0: leer(A)
A := A – 50 A := A – 50 A := A – 50
escribir(A) escribir(A) escribir(A)
leer(B) leer(B) leer(B)
B := B + 50 B := B + 50 B := B + 50
escribir(B) escribir(B) escribir(B)
T1: leer(C) T1: leer(C) T1: leer(C)
C := C – 100 C := C – 100 C := C – 100
escribir(C) escribir(C) escribir(C)
<T0 iniciada> <T0 iniciada> <T0 iniciada>
<T0, A, 1000, 950> <T0, A, 1000, 950> <T0, A, 1000, 950>
<T0, B, 2000, 2050> <T0, B, 2000, 2050> <T0, B, 2000, 2050>
<T0, comprometida> <T0, comprometida>
<T1 iniciada> <T1 iniciada>
<T1, C, 700, 600> <T1, C, 700, 600>
<T1, comprometida>
DAI - Ing. Arturo Rozas Huacho 29
30. Sistemas de Base de Datos
8.2- Sistema de Recuperación
Modificación diferida de la base de datos
Tres situaciones de caída del sistema:
<T0 iniciada> <T0 iniciada> <T0 iniciada>
<T0, A, 1000, 950> <T0, A, 1000, 950> <T0, A, 1000, 950>
<T0, B, 2000, 2050> <T0, B, 2000, 2050> <T0, B, 2000, 2050>
<T0, comprometida> <T0, comprometida>
<T1 iniciada> <T1 iniciada>
<T1, C, 700, 600> <T1, C, 700, 600>
<T1, comprometida>
Se realiza la operación Se realiza las Se realiza las
deshacer(T0) operaciones operaciones
deshacer(T1) rehacer(T0)
rehacer(T0) rehacer(T1)
DAI - Ing. Arturo Rozas Huacho 30
Notas del editor
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho
ALGORITMICA II - Tipos Abstractos de Datos (TAD) DAI - Ing. Arturo Rozas Huacho