Transacci[1]..

30
DAI - Ing. Arturo Rozas Huacho 1 8.1- Transacciones Sistemas de Base de Datos 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

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 4

8.1- Transacciones…Sistemas de Base de Datos

Propiedades ACID

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 10

8.1- Transacciones…Sistemas de 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)