Sei sulla pagina 1di 30

Sistemas de Base de Datos

8.1- Transacciones

Unidad lgica de procesamiento Secuencia de operaciones que implican accesos a la base de datos Pero tambin se considera... Unidad lgica de integridad Unidad lgica de concurrencia Unidad lgica de recuperacin Una transaccin es atmica O se ejecutan todas las operaciones que componen la transaccin, o no se realiza ninguna ejemplo: transferencia de dinero entre dos cuentas bancarias
DAI - Ing. Arturo Rozas Huacho 1

Sistemas de Base de Datos

8.1- Transacciones
Estado antes de la Transaccin

BD

BD

BD

SELECT UPDATE TRANSACCION

SELECT UPDATE UPDATE DELETE


Error de Programa! El SGBD deshace Todos los cambios
DAI - Ing. Arturo Rozas Huacho

SELECT

UPDATE

UPDATE
DELETE INSERT

Fallo de Hardware!

El SGBD deshace Todos los cambios

Estado despus de la Transaccin

BD

Sistemas de Base de Datos

8.1- Transacciones

Tipos de fallos - Fallo del computador (hardware) - Errores de software. Desbordamiento, divisin por cero, etc. - Condiciones de excepcin detectadas por la transaccin. (Por ejemplo no se tiene el saldo para cubrir un retiro) - Imposicin del control de concurrencia (Transacciones en bloqueo mortal)

- Fallo del disco


- Problemas y catstrofes fsicos
DAI - Ing. Arturo Rozas Huacho 3

Sistemas de Base de Datos

8.1- Transacciones
Propiedades ACID

DAI - Ing. Arturo Rozas Huacho

Sistemas de Base de Datos

8.1- Transacciones

Sea Ti una transaccin para transferir S/. 500.00 de la cuenta A a la cuenta B. Se puede definir dicha transaccin como: Ti: leer(A) A A 500 escribir(A) leer(B) B B + 50 escribir(B)

DAI - Ing. Arturo Rozas Huacho

Sistemas de Base de Datos

8.1- Transacciones
Atomicidad Todas o ninguna de las operaciones de la transaccin son ejecutadas.

Si la transaccin falla, sus resultados parciales deben ser deshechos.


La actividad de preservar la atomicidad de la transaccin en la presencia de abortos de la transaccin debido a errores de entrada, interbloqueos es llamada recuperacin de la transaccin.

El sub sistema de recuperacin es el responsable de asegurar la atomicidad en la presencia de fallos.


DAI - Ing. Arturo Rozas Huacho 6

Sistemas de Base de Datos

8.1- Transacciones
Consistencia
Consistencia Interna

- Una transaccin 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

Sistemas de Base de Datos

8.1- Transacciones
Aislamiento Serializacin Si varias transacciones son ejecutadas concurrentemente, los resultados deben ser los mismos como si ellas fueran ejecutadas serialmente en algn orden. Resultados incompletos Una transaccin incompleta no puede revelar sus resultados a otras transacciones antes de su compromiso.

DAI - Ing. Arturo Rozas Huacho

Sistemas de Base de Datos

8.1- Transacciones
Durabilidad Una vez que la transaccin se compromete, el sistema debe garantizar que los resultados de sus operaciones nunca sern perdidos, a pesar de fallas subsecuentes. Recuperacin de la base de datos

DAI - Ing. Arturo Rozas Huacho

Sistemas de Base de Datos

8.1- Transacciones

DAI - Ing. Arturo Rozas Huacho

10

Sistemas de Base de Datos

8.1- Transacciones
Estados de una transaccin

Parcialmente Comprometida

Comprometida

Activa

Fallida

Abortada

DAI - Ing. Arturo Rozas Huacho

11

Sistemas de Base de Datos

8.1- Transacciones
Implementacin de la atomicidad y la durabilidad
Copia en la sombra. Esquema simple pero extremadamente ineficiente. Asume que slo una transaccin est activa en cada momento.
Puntero-bd Puntero-bd

Copia anterior de la base de datos

Copia anterior de la base de datos (que ser borrada)


Copia en la sombra

Nueva copia de la base de datos

(a) Antes de la actualizacin

(b) Despus de la actualizacin

Si el sistema falla antes de que la transaccin haya sido confirmada, entonces solamente se borra la nueva copia.
DAI - Ing. Arturo Rozas Huacho 12

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Clasificacin de los fallos
Fallo en la transaccin. . Error lgico (desbordamiento). . Error del sistema (Inter bloqueo) Cada 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

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Estructura del almacenamiento
Para entender cmo se pueden garantizar las propiedades de atomicidad y durabilidad de una transaccin, se deben comprender las estructuras de almacenamiento y sus mtodos de acceso. Tipos de almacenamiento
. Almacenamiento voltil.- La informacin no suele sobrevivir a las cadas del sistema. Ejemplos: Memoria principal y memoria cache. Almacenamiento no voltil.- Sobrevive a las cadas del sistema. Ejemplos: Discos, CDs, DVDs. Almacenamiento estable.- La informacin que reside en almacenamiento estable nunca se pierde.

DAI - Ing. Arturo Rozas Huacho

14

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Implementacin del almacenamiento estable
Para implementar almacenamiento estable se debe replicar la informacin necesaria en varios medios de almacenamiento no voltil (normalmente discos) con modos de fallo independientes.
. RAID.- (Disposicin redundante de discos independientes) Discos con imagen. (No protegen contra la prdida de datos debida a desastres naturales) Almacenamiento estable remoto.- Copias de datos en el sistema de discos locales y a travs de una red de computadoras.

Principal

RED

Copia de seguridad

DAI - Ing. Arturo Rozas Huacho

15

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Implementacin 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 recuperacin para restaurar el bloque a un estado estable. Para hacer esto, el sistema debe mantener dos bloques fsicos por cada bloque lgico de la base de datos.
Una operacin de salida se ejecuta de la siguiente manera:

1. Se escribe la informacin en el primer bloque fsico


2. Cuando la primera escritura se completa con xito, se escribe la misma informacin en el segundo bloque fsico.

3. La salida est completada slo despus de que la segunda escritura finalice con xito.
DAI - Ing. Arturo Rozas Huacho 16

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Acceso a los datos
Las transacciones llevan informacin del disco hacia la memoria principal y luego devuelven la informacin al disco. Las operaciones de entrada y salida se realizan en unidades de bloque
Operaciones: 1. entrada(B) transfiere el bloque fsico B a la memoria principal 2. salida(B) transfiere el bloque de memoria intermedia B al disco y reemplaza all al correspondiente bloque fsico.

A A
Memoria principal Disco
DAI - Ing. Arturo Rozas Huacho 17

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Acceso a los datos
Cada transaccin 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 transaccin 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 xi. 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

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


RECUPERACION Y ATOMICIDAD
Saldos Iniciales Cuenta A S/. 1000 Cuenta B S/. 2000

Supngase que se desea transferir S/. 50 de la cuenta A a la B y que el sistema cae durante la ejecucin de Ti. Despus 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.)

Estados inconsistentes con dos posibles procedimientos de recuperacin

Volver a ejecutar Ti Cuenta A S/. 900 Cuenta B S/. 2050

No volver a ejecutar Ti Cuenta A S/. 950 Cuenta B S/. 2000

DAI - Ing. Arturo Rozas Huacho

19

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


RECUPERACIN BASADA EN EL REGISTRO HISTRICO
El registro histrico es una secuencia de registros que mantiene un registro de todas las actualizaciones de la base de datos.
Campos del registro de actualizacin del registro histrico: -

El identificador de la transaccin El identificador del elemento de datos. El valor anterior El valor nuevo

<Ti, Xj, Valor anterior, Valor nuevo>

DAI - Ing. Arturo Rozas Huacho

20

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


RECUPERACIN BASADA EN EL REGISTRO HISTRICO
Tipos de registros del registro histrico:

<Ti iniciada>. La transaccin Ti ha comenzado. <Ti, Xj, V1, V2>. La transaccin Ti ha realizado una escritura sobre el elemento de datos Xj. Xj tena el valor V1 antes de la escritura y tendr el valor V2 despus de la escritura.

<Ti comprometida>. La transaccin Ti se ha comprometido.


<Ti abortada> La transaccin Ti ha sido abortada.

DAI - Ing. Arturo Rozas Huacho

21

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Modificacin diferida de la base de datos
Garantiza la atomicidad mediante el almacenamiento de todas las modificaciones de la base de datos en el registro histrico, pero retardando la ejecucin de todas las operaciones escribir de una transaccin hasta que la transaccin se compromete parcialmente. Cuando una transaccin se compromete parcialmente, la informacin del registro histrico asociada a esa transaccin se utiliza para la ejecucin de las escrituras diferidas. Si el sistema cae antes de que la transaccin complete su ejecucin o si la transaccin aborta, la informacin del registro histrico simplemente se ignora.

DAI - Ing. Arturo Rozas Huacho

22

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Modificacin diferida de la base de datos
El esquema de recuperacin usa un procedimiento de recuperacin: rehacer(Ti) fija el valor de todos los elementos de datos actualizados por la transaccin Ti a los nuevos valores. La operacin rehacer debe ser idempotente, esto es, el resultado de ejecutarla varias veces debe ser equivalente al resultado de ejecutarla una sola vez. Despus de ocurrir un fallo, el subsistema de recuperacin consulta el registro histrico para determinar las transacciones que deben rehacerse.
Una transaccin Ti debe rehacerse si y slo si el registro histrico contiene los registros <Ti iniciada> y <Ti comprometida>.
DAI - Ing. Arturo Rozas Huacho 23

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Modificacin diferida de la base de datos
Sea T0 una transaccin que transfiere S/. 50 desde la cuenta A a la cuenta B. Y sea T1 una transaccin que retira S/. 100 de la cuenta C. (Saldos iniciales: A = 1000, B = 2000 y C = 700)
T0: leer(A) A := A 50 escribir(A) leer(B) B := B + 50 escribir(B) T1: leer(C) C := C 100 escribir(C) Registro histrico <T0 iniciada> <T0, A, 950> <T0, B, 2050> <T0, comprometida>
Registro histrico <T0 iniciada> <T0, A, 950> <T0, B, 2050> <T0, comprometida> Base de datos

<T1 iniciada> <T1, C, 600> <T1, comprometida>

A = 950 B = 2050 <T1 iniciada> <T1, C, 600> <T1, comprometida> C = 600

DAI - Ing. Arturo Rozas Huacho

24

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Modificacin diferida de la base de datos
Tres situaciones de cada del sistema:
T0: leer(A) A := A 50 escribir(A) leer(B) B := B + 50 escribir(B) T1: leer(C) C := C 100 escribir(C) T0: leer(A) A := A 50 escribir(A) leer(B) B := B + 50 escribir(B) T1: leer(C) C := C 100 escribir(C) T0: leer(A) A := A 50 escribir(A) leer(B) B := B + 50 escribir(B) T1: leer(C) C := C 100 escribir(C)

<T0 iniciada> <T0, A, 950> <T0, B, 2050>

<T0 iniciada> <T0, A, 950> <T0, B, 2050> <T0, comprometida> <T1 iniciada> <T1, C, 600>
DAI - Ing. Arturo Rozas Huacho

<T0 iniciada> <T0, A, 950> <T0, B, 2050> <T0, comprometida> <T1 iniciada> <T1, C, 600> <T1, comprometida>
25

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Modificacin diferida de la base de datos
Tres situaciones de cada 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>
Se realiza las operaciones rehacer(T0) rehacer(T1) ya que los registros <T0, comprometida> <T1, comprometida> Aparecen en el registro histrico.

No es necesario llevar a cabo ninguna accin rehacer , ya que no aparece el registro de comprometido.

Se realiza la operacin rehacer(T0) ya que el registro <T0, comprometida> Aparece en el registro histrico.

DAI - Ing. Arturo Rozas Huacho

26

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Modificacin 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 transaccin est todava en estado activo. En caso de una cada o de un fallo en la transaccin, el sistema debe utilizar el campo para el valor anterior de los registros del registro histrico. El esquema de recuperacin usa dos procedimientos de recuperacin: deshacer(Ti) restaura el valor de todos los elementos de datos actualizados por la transaccin Ti a los valores anteriores. rehacer(Ti) fija el valor de todos los elementos de datos actualizados por la transaccin Ti a los nuevos valores.

DAI - Ing. Arturo Rozas Huacho

27

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Modificacin inmediata de la base de datos
Sea T0 una transaccin que transfiere S/. 50 desde la cuenta A a la cuenta B. Y sea T1 una transaccin que retira S/. 100 de la cuenta C. (Saldos iniciales: A = 1000, B = 2000 y C = 700)
T0: leer(A) A := A 50 escribir(A) leer(B) B := B + 50 escribir(B) T1: leer(C) C := C 100 escribir(C) Registro histrico <T0 iniciada> <T0, A, 1000, 950> <T0, B, 2000, 2050> <T0, comprometida>
Registro histrico <T0 iniciada> <T0, A, 1000, 950> <T0, B, 2000, 2050> B = 2050 <T0, comprometida> <T1 iniciada> <T1, C, 600> C = 600 Base de datos

A = 950

<T1 iniciada> <T1, C, 700, 600> <T1, comprometida>

<T1, comprometida>

DAI - Ing. Arturo Rozas Huacho

28

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Modificacin diferida de la base de datos
Tres situaciones de cada del sistema:
T0: leer(A) A := A 50 escribir(A) leer(B) B := B + 50 escribir(B) T1: leer(C) C := C 100 escribir(C) T0: leer(A) A := A 50 escribir(A) leer(B) B := B + 50 escribir(B) T1: leer(C) C := C 100 escribir(C) T0: leer(A) A := A 50 escribir(A) leer(B) B := B + 50 escribir(B) T1: leer(C) C := C 100 escribir(C)

<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>
DAI - Ing. Arturo Rozas Huacho

<T0 iniciada> <T0, A, 1000, 950> <T0, B, 2000, 2050> <T0, comprometida> <T1 iniciada> <T1, C, 700, 600> <T1, comprometida>
29

Sistemas de Base de Datos

8.2- Sistema de Recuperacin


Modificacin diferida de la base de datos
Tres situaciones de cada 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 realiza las operaciones rehacer(T0) rehacer(T1)

Se realiza la operacin deshacer(T0)

Se realiza las operaciones deshacer(T1) rehacer(T0)

DAI - Ing. Arturo Rozas Huacho

30

Potrebbero piacerti anche