Sunteți pe pagina 1din 22

1.

3 TRANSACCIONES Y
CONCURRENCIA
AGENDA
 Transacción
 Definición
 Propiedades ACAD/ACID
 Estados de transacción
 Concurrencia
 Definición
 Esquema de control

Fuente: Fundamentos de Bases de Datos, 5ta Ed.


2
Silberschatz. Korth,Sudarshan. 2006
TRANSACCIÓN (1/2)

 Es una colección de operaciones que conforman


una única unidad lógica de trabajo.
 Pe. Una transferencia de cuenta A --- a la --- cuenta B

 Un SABD debe garantizar:


 La ejecución de las transacciones (completas) a pesar
de los fallos.
 La gestión concurrente de las transacciones evitando
inconsistencias

3
TRANSACCIÓN (2/2)

 Está delimitada por:


 begin transaction
…. operaciones a realizarse
 end transaction

 Está representada a través de un programa


escrito en algún lenguaje: SQL, C++, Java, etc.

 Debe cumplir con propiedades para garantizar


la integridad de los datos.
4
TRANSACCIÓN (2/2)

 Está delimitada por:


 begin transaction
…. operaciones a realizarse
 end transaction

 Está representada a través de un programa


escrito en algún lenguaje: SQL, C++, Java, etc.

 Debe cumplir con propiedades para garantizar


la integridad de los datos.
¿Integridad de los datos?
¿Consistencia de los 5
datos?
TRANSACCIÓN (2/2)

 Está delimitada por:


 begin transaction
…. operaciones a realizarse
 end transaction

 Está representada a través de un programa


escrito en algún lenguaje: SQL, C++, Java, etc.

 Debe cumplir con propiedades para garantizar


la integridad de los datos.
Operaciones como UPDATE,
DELETE, INSERT pueden 6
alteral la Integridad de datos
PROPIEDADES (ACAD/ ACID)

 Atomicidad (Atomicity)
 Todas las operaciones de la transacción se realizan
adecuadamente en la BD o ninguna se ellas se
realiza. (todo o nada).

 Consistencia (Consistency)
 La ejecución de la transacción conserva la
consistencia de la BD.

 Aislamiento (Isolation)
 El SABD garantiza que para cada par de
transacciones, cada una se realiza ignorando el resto
de las transacciones que se ejecuten de manera
7
concurrente en el sistema.
PROPIEDADES (ACAD/ ACID)

 Durabilidad (Durability)
 Garantiza que los cambios realizados al finalizar una
transacción permanecen, incluso si hay fallos en el
sistema.

 Ejemplo: Sistema bancario


 Varias cuentas: A, B, …
 Transacciones que aplican sobre éstas

 Se asume que la BD reside permanentemente en disco, pero

una porción de la misma reside en memoria principal.

8
EJEMPLO: BANCO

 Operaciones
 Leer (X), Transfiere el dato X de la BD a una memoria
intermedia de la transacción que ejecuta esta operación
(LEER).
 Escribir (X), Transfiere el dato X de la memoria
intermedia de la transacción que ejecuta esta operación
(ESCRIBIR) a la BD.

 Transacción (Ti) es la transacción que transfiere 1500


pesos de la cuenta A a la cuenta B.

 Ti = Leer (A);
A:= A-1500;
Escribir (A);
Leer (B) Operaciones de la
B:= B+1500; transacción (Ti)
9
Escribir (B).
EJEMPLO Ti = Leer (A);
A:= A-1500;
Escribir (A);
Leer (B)
B:= B+1500;
Escribir (B).

Atomicidad Todas las acciones de la transacción se ven reflejadas en


la BD o ninguna.

Asegurar la atomicidad:

•El sistema de BD mantiene los valores


antiguos (en disco) de aquellos datos sobre los que
una transacción realiza una escritura.

•Si la transacción no se ejecuta


completamente, los valores antiguos se
10
recuperan para que parezca que la transacción no
fue ejecutada.
EJEMPLO Ti = Leer (A);
A:= A-1500;
Escribir (A);
Leer (B)
B:= B+1500;
Escribir (B).

La suma de A y B no se altera al ejecutar


Consistencia la transacción. Si una BD es consistente
antes de ejecutar una transacción DEBE
seguir siéndolo después de la misma

11
EJEMPLO Ti = Leer (A);
A:= A-1500;
Escribir (A);
Leer (B)
B:= B+1500;
Escribir (B).

•Relacionada con la concurrencia de transacciones.


Aislamiento
•Asegura que el resultado obtenido al ejecutar
concurrentemente las transacciones es un estado
equivalente al ejecutar transacciones
secuencialmente.

•La responsabilidad de asegurar el aislamiento está en


el componente de Control de Concurrencia de un SABD.

12
EJEMPLO Ti = Leer (A);
A:= A-1500;
Escribir (A);
Leer (B)
B:= B+1500;
Escribir (B).

Asegura que: al finalizar con éxito una transacción los


Durabilidad cambios realizados persisten en la BD incluso si hay un
fallo en el sistema después de completarse la
transacción .

Fallo en el sistema  perdida de datos en memoria


 No perdida de datos en disco

Asegurar durabilidad:

•Modificaciones guardadas en disco al finalizar Ti


13
•La información guardada permite reconstruirlas al
reiniciar el sistema después de un fallo
ESTADOS DE UNA TRANSACCIÓN

Activa Estado inicial.

Parcialmente Después de ejecutarse la última instrucción


comprometida
Fallida Al descubrir que no puede continuar la ejecución
normal
Abortada • Estado final.
• Después del retroceso de la transacción;
• Restablece el estado de la BD al estado de
comienzo de la transacción
Comprometida Estado final; tras completarse con éxito la
transacción.
14
DIAGRAMA DE ESTADOS DE UNA TRANSACCIÓN

Parcialmente
comprometida

Activa

Fallida

15
DIAGRAMA DE ESTADOS DE UNA TRANSACCIÓN

Parcialmente
Comprometida
comprometida

Activa

Fallida

16
DIAGRAMA DE ESTADOS DE UNA TRANSACCIÓN

Parcialmente
Comprometida
comprometida

Activa

Fallida

17
DIAGRAMA DE ESTADOS DE UNA TRANSACCIÓN

Parcialmente
Comprometida
comprometida

Activa

Fallida

18
DIAGRAMA DE ESTADOS DE UNA TRANSACCIÓN

Parcialmente
Comprometida
comprometida

Activa

Fallida Abortada

19
CONCURRENCIA

20
CONCURRENCIA

 Es la ejecución simultánea de transacciones

 Gestionada por el componente de gestión de


concurrencia de la BD:
 Encargado de conservar la consistencia de los
datos a pesar de que las transacciones se ejecuten de
manera concurrente.

 Existen varios esquemas de control de


concurrencia.
21
CONCURRENCIA

 Existen varios esquemas de control de


concurrencia.

 Protocolo de bloque,
 Esquemas de ordenación por marcas temporales,
 Técnicas de validación,
 Esquemas multiversión.

Fuente: Fundamentos de Bases de Datos, 5ta Ed.


22
Silberschatz. Korth,Sudarshan. 2006

S-ar putea să vă placă și