Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
8.1- Transacciones
Estado antes de la Transaccin
BD
BD
BD
SELECT
UPDATE
UPDATE
DELETE INSERT
Fallo de Hardware!
BD
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)
8.1- Transacciones
Propiedades ACID
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)
8.1- Transacciones
Atomicidad Todas o ninguna de las operaciones de la transaccin son ejecutadas.
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.
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.
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
8.1- Transacciones
10
8.1- Transacciones
Estados de una transaccin
Parcialmente Comprometida
Comprometida
Activa
Fallida
Abortada
11
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
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
Se pueden proponer algoritmos para garantizar la consistencia de la base de datos y la atomicidad de las transacciones a pesar de los fallos.
13
14
Principal
RED
Copia de seguridad
15
3. La salida est completada slo despus de que la segunda escritura finalice con xito.
DAI - Ing. Arturo Rozas Huacho 16
A A
Memoria principal Disco
DAI - Ing. Arturo Rozas Huacho 17
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.)
19
El identificador de la transaccin El identificador del elemento de datos. El valor anterior El valor nuevo
20
<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.
21
22
24
<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
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.
26
27
A = 950
<T1, comprometida>
28
<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
30