Transacci[1]..
-
Upload
richard-castro -
Category
Documents
-
view
171 -
download
0
Transcript of Transacci[1]..
DAI - Ing. Arturo Rozas Huacho 1
8.1- TransaccionesSistemas de Base de Datos
Unidad lógica de procesamientoSecuencia 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ómicaO se ejecutan todas las operaciones que componen latransacción, o no se realiza ninguna
ejemplo: transferencia de dinero entre dos cuentas bancarias
DAI - Ing. Arturo Rozas Huacho 2
8.1- Transacciones…Sistemas de Base de Datos
BD
BD
BD BD
SELECT
UPDATE
UPDATE
DELETE
INSERT
DELETE
UPDATE
UPDATE
SELECT
UPDATE
SELECT
¡Error dePrograma!
¡Fallo deHardware!
TR
AN
SA
CC
ION
Estadoantes de laTransacción
Estadodespués de laTransacción
El SGBD deshaceTodos los cambios
El SGBD deshaceTodos los cambios
DAI - Ing. Arturo Rozas Huacho 3
8.1- TransaccionesSistemas de Base de Datos
Tipos de fal los
- 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ástrofes físicos
DAI - Ing. Arturo Rozas Huacho 5
8.1- TransaccionesSistemas de Base de Datos
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 – 500escribir(A)leer(B)B B + 50escribir(B)
DAI - Ing. Arturo Rozas Huacho 6
8.1- TransaccionesSistemas de Base de Datos
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 l lamada 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 7
8.1- TransaccionesSistemas de Base de Datos
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 8
8.1- TransaccionesSistemas de Base de Datos
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 9
8.1- TransaccionesSistemas de Base de Datos
Durabil idad
• 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 11
8.1- Transacciones…Sistemas de Base de Datos
Estados de una transacción
Activa
ParcialmenteComprometida
Fallida Abortada
Comprometida
DAI - Ing. Arturo Rozas Huacho 12
8.1- Transacciones…Sistemas de Base de Datos
Implementación de la atomicidad y la durabil idad
Copia anterior de la base de datos
(a) Antes de la actualización (b) Después de la actual ización
Puntero-bd Puntero-bd
Copia anterior de la base de datos
(que será borrada)
Nueva copia de la base de datos
Copia en la sombra. Esquema simple pero extremadamente ineficiente. Asume que sólo una transacción está activa en cada momento.
Copia en la sombra
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 13
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Clasif icación de los fal los
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 14
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Estructura del almacenamiento
Tipos de almacenamiento. Almacenamiento voláti l .- La información no suele sobrevivir a las caídas del
sistema. Ejemplos: Memoria principal y memoria cache.
. Almacenamiento no voláti l .- 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.
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.
DAI - Ing. Arturo Rozas Huacho 15
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Implementación del almacenamiento estable
. 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.
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.
Principal Copia de seguridadRED
DAI - Ing. Arturo Rozas Huacho 16
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Implementación del almacenamiento estable
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.
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.
DAI - Ing. Arturo Rozas Huacho 17
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Acceso a los datos
Operaciones:1. entrada(B) transfiere el bloque físico B a la memoria principal2. salida(B) transfiere el bloque de memoria intermedia B al disco y reemplaza allí al
correspondiente bloque físico.
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
A
A
Memoria principal Disco
DAI - Ing. Arturo Rozas Huacho 18
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Acceso a los datos
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.
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.
DAI - Ing. Arturo Rozas Huacho 19
8.2- Sistema de RecuperaciónSistemas de Base de Datos
RECUPERACION Y ATOMICIDAD
Saldos Iniciales Cuenta AS/. 1000
Cuenta BS/. 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(BA), pero antes de ejecutarse salida (BB)(Donde BA y BB denotan los bloques de memoria intermedia en los que residen A y B.)
No volver a ejecutar T i
Cuenta AS/. 900
Cuenta AS/. 950
Cuenta BS/. 2000
Cuenta BS/. 2050
Volver a ejecutar T i
Estados inconsistentes con dos posibles procedimientos de recuperación
DAI - Ing. Arturo Rozas Huacho 20
8.2- Sistema de RecuperaciónSistemas de Base de Datos
RECUPERACIÓN BASADA EN EL REGISTRO HISTÓRICO
Campos del registro de actual ización del registro histórico:
- El identi f icador de la transacción
- El identi f icador del elemento de datos.
- El valor anterior
- El valor nuevo
<T i, X j, Valor anterior, Valor nuevo>
El registro histórico es una secuencia de registros que mantiene un registro de todas las actualizaciones de la base de datos.
DAI - Ing. Arturo Rozas Huacho 21
8.2- Sistema de RecuperaciónSistemas de Base de Datos
RECUPERACIÓN BASADA EN EL REGISTRO HISTÓRICO
- <T i iniciada>. La transacción Ti ha comenzado.
- <T i, X j, V1, V2>. 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.
Tipos de registros del registro histórico:
DAI - Ing. Arturo Rozas Huacho 22
8.2- Sistema de RecuperaciónSistemas de Base de Datos
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 23
8.2- Sistema de RecuperaciónSistemas de Base de Datos
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 24
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Modificación diferida de la base de datos
T0: leer(A)A := A – 50escribir(A)leer(B)B := B + 50escribir(B)
T1: leer(C)C := C – 100escribir(C)
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)
Registro histórico<T0 iniciada><T0, A, 950><T0, B, 2050><T0, comprometida>
<T1 iniciada><T1, C, 600><T1, comprometida>
Registro histórico Base de datos
<T0 iniciada><T0, A, 950><T0, B, 2050><T0, comprometida>
A = 950B = 2050
<T1 iniciada><T1, C, 600><T1, comprometida>
C = 600
DAI - Ing. Arturo Rozas Huacho 25
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Modificación diferida de la base de datosTres situaciones de caída del sistema:
<T0 iniciada><T0, A, 950><T0, B, 2050>
<T0 iniciada><T0, A, 950><T0, B, 2050><T0, comprometida><T1 iniciada><T1, C, 600>
<T0 iniciada><T0, A, 950><T0, B, 2050><T0, comprometida><T1 iniciada><T1, C, 600><T1, comprometida>
T0: leer(A)A := A – 50escribir(A)leer(B)B := B + 50escribir(B)
T1: leer(C)C := C – 100escribir(C)
T0: leer(A)A := A – 50escribir(A)leer(B)B := B + 50escribir(B)
T1: leer(C)C := C – 100escribir(C)
T0: leer(A)A := A – 50escribir(A)leer(B)B := B + 50escribir(B)
T1: leer(C)C := C – 100escribir(C)
DAI - Ing. Arturo Rozas Huacho 26
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Modificación diferida de la base de datosTres situaciones de caída del sistema:
<T0 iniciada><T0, A, 950><T0, B, 2050>
<T0 iniciada><T0, A, 950><T0, B, 2050><T0, comprometida><T1 iniciada><T1, C, 600>
<T0 iniciada><T0, A, 950><T0, B, 2050><T0, comprometida><T1 iniciada><T1, C, 600><T1, comprometida>
No es necesario l levar a cabo ninguna acción rehacer , ya que no aparece el registro de comprometido.
Se realiza la operación
rehacer(T0)ya que el registro
<T0, comprometida>Aparece en el registro histórico.
Se realiza las operaciones
rehacer(T0)rehacer(T1)
ya que los registros<T0, comprometida><T1, comprometida>
Aparecen en el registro histórico.
DAI - Ing. Arturo Rozas Huacho 27
8.2- Sistema de RecuperaciónSistemas de Base de Datos
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 28
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Modificación inmediata de la base de datos
T0: leer(A)A := A – 50escribir(A)leer(B)B := B + 50escribir(B)
T1: leer(C)C := C – 100escribir(C)
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)
Registro histórico<T0 iniciada><T0, A, 1000, 950><T0, B, 2000, 2050><T0, comprometida>
<T1 iniciada><T1, C, 700, 600><T1, comprometida>
Registro histórico Base de datos
<T0 iniciada><T0, A, 1000, 950>
A = 950<T0, B, 2000, 2050>
B = 2050<T0, comprometida>
<T1 iniciada><T1, C, 600>
C = 600<T1, comprometida>
DAI - Ing. Arturo Rozas Huacho 29
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Modificación diferida de la base de datosTres situaciones de caída del sistema:
<T0 iniciada><T0, A, 1000, 950><T0, B, 2000, 2050>
<T0 iniciada><T0, A, 1000, 950><T0, B, 2000, 2050><T0, comprometida><T1 iniciada><T1, C, 700, 600>
<T0 iniciada><T0, A, 1000, 950><T0, B, 2000, 2050><T0, comprometida><T1 iniciada><T1, C, 700, 600><T1, comprometida>
T0: leer(A)A := A – 50escribir(A)leer(B)B := B + 50escribir(B)
T1: leer(C)C := C – 100escribir(C)
T0: leer(A)A := A – 50escribir(A)leer(B)B := B + 50escribir(B)
T1: leer(C)C := C – 100escribir(C)
T0: leer(A)A := A – 50escribir(A)leer(B)B := B + 50escribir(B)
T1: leer(C)C := C – 100escribir(C)
DAI - Ing. Arturo Rozas Huacho 30
8.2- Sistema de RecuperaciónSistemas de Base de Datos
Modificación diferida de la base de datosTres situaciones de caída del sistema:
<T0 iniciada><T0, A, 1000, 950><T0, B, 2000, 2050>
<T0 iniciada><T0, A, 1000, 950><T0, B, 2000, 2050><T0, comprometida><T1 iniciada><T1, C, 700, 600>
<T0 iniciada><T0, A, 1000, 950><T0, B, 2000, 2050><T0, comprometida><T1 iniciada><T1, C, 700, 600><T1, comprometida>
Se real iza la operacióndeshacer(T0)
Se real iza las operaciones
deshacer(T1)rehacer(T0)
Se realiza las operaciones
rehacer(T0)rehacer(T1)