You are on page 1of 9

Administración de Bases de Datos

Integridad

 Transacciones

 Control de concurrencia

1
Administración de Bases de Datos

Transacciones

 Objetivos
 Entender el concepto de transacción en un SGBD
 Entender las propiedades básicas que toda transacción debe
poseer
 Identificar las operaciones que pueden realizarse dentro de
una transacción
 Comprender los conceptos de confirmación y reversión de
una transacción
 Comprender los distintos estados por los que pasa una
transacción desde su inicio hasta su finalización

2
Administración de Bases de Datos

Transacciones

 Contenidos

 Concepto de transacción
 Propiedades deseables de una transacción
 Operaciones de una transacción

 Anexo: Control de transacciones en Oracle

3
Administración de Bases de Datos

Transacción

 Unidad lógica de procesamiento


 Secuencia de operaciones de acceso (inserción, borradon,
modificación o consulta) de la BD
 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

4
Administración de Bases de Datos

Transacción

 Conjunto de lecturas/escrituras entre los límites


explícitos de una transacción:
 Begin transaction (set_transaction)
 End transaction (commit, rollback)

 Fin de la transacción:

 COMMIT: La transacción acabó con éxito. Las modificaciones


realizadas se confirman.

 ROLLBACK: La transacción termina en fracaso. Las


actualizaciones realizadas por la transacción deben
deshacerse.

5
Administración de Bases de Datos

Propiedades deseables de las transacciones

 ACID

 Atomicity: La transacción es una unidad atómica de


procesamiento. La transacción no puede realizarse a medias.
Todo o nada.
 Consistency: La transacción pasa la BD de un estado
consistente a otro (antes y después de la transacción).
 Isolation: La transacción debe aparecer como realizada
independientemente de otras transacciones. La ejecución de
una transacción no puede ser interferida por otras.
 Durability: Los cambios realizados en la BD tras un COMMIT
deben persistir en la BD

6
Administración de Bases de Datos

Ejemplo de transacción (1)

 Transferencia de Q euros entre dos cuentas

set_transaction(CuentaO, CuentaD, Q)
read(cuentaO, SaldoO)
SaldoO = SaldoO – Q
write(CuentaO, SaldoO)
leer(CuentaD, SaldoD)
SaldoD = SaldoD + Q
write(CuentaD, SaldoD)
commit

 No puede quedarse a medias a riesgo de dejar la BD


inconsistente
 Es la aplicación quien define qué conjunto de acciones
constituyen una transacción
7
Administración de Bases de Datos

Ejemplo de transacción (2)

 pasajero(nombre, ...)
 vuelo(código, ...)
 pasajero_vuelo(nombre, código)

 RI1: todo pasajero debe estar en un vuelo


 RI2: todo vuelo tiene al menos un pasajero

set_transaction
INSERT INTO vuelo values(122, ...)
INSERT INTO pasajero values(german, ...)
INSERT INTO pasajero_vuelo(german, 122)
commit

 Durante la transacción pueden no cumplirse las restricciones de


integridad
8
Administración de Bases de Datos

Estados y operaciones de una transacción

protocolos de
recuperación
commit

leer/escribir

inicio fin Parcialmente confirmar


activa confirmada
confirmada

abortar abortar

rollback fallida terminada

You might also like