Está en la página 1de 11

angel 

Búsqueda... Búsqueda

Manejo de Transacciones

Lic. Bárbara da Silva


Sistemas de Bases de Datos Distribuidas - UCV

1 / 29

/
 Presentaciones
Manejo de Transacciones
similares
Publicada por Ladislao Jerez Modi cado hace 4 años

 Insertar

 Descargar la presentación
11

Presentación del tema: "Manejo de Transacciones"—


Transcripción de la presentación:

/
1 Manejo de Transacciones
Lic. Bárbara da Silva
Sistemas de Bases de Datos
Distribuidas - UCV

2 Esquema de la Clase
De nición de Transacción
Modelo de Transacción
Propiedades de una transacción
Implementación de transacciones
Transacción Distribuida
Clasi cación de las Transacciones
Distribuidas
Modelos de Transacciones
Distribuidas
Tradicional
Transacciones Anidadas
Modelo del Manejador de
Transacciones

3 De nición de Transacción
Una Transacción es una unidad
de trabajo consistente y
con able, formada por una serie
de operaciones de lectura y/o
escritura sobre la Base de Datos
(BD) que transforman el estado
de la misma
(Date, 1998; Moss, 1985; Ozsü y
Valduriez, 1999).
BD en un Estado Consistente
Transacción
BD en un Estado Consistente

4 De nición de Transacción
Se debe considerar que:
La transacción se puede estar ejecutando junto con otras transacciones ->
Control de Concurrencia.
Durante su ejecución pueden ocurrir fallas. -> Recuperación y
Con abilidad.

5 Modelo de Transacción Primitiva Descripción


BEGIN_TRANSACTION
Inicio de la transacción
COMMIT
/
Permite que todos los cambios realizados por la transacción sobre la BD
permanezcan en la misma y por tanto sean visibles a las demás
transacciones
ROLLBACK ó ABORT
Deshace todos los cambios realizados sobre la BD, dejándola en su estado
inicial
READ
Lectura de la Data
WRITE
Escritura de la Data

6 Ejemplo de Transacción
BEGIN_TRANSACTION Reservation
READ ($numVuelo, $fecha, $nombreCliente)
EXEC UPDATE Vuelo
SET asientoReservado = asientoReservado + 1
WHERE numeroVuelo = $numVuelo
and fechaVuelo = $fecha;
EXEC INSERT
INTO FC (numeroVuelo, fechaVuelo, cNombre, especial)
VALUES ($numVuelo, $fecha, $nombreCliente, null)
output (“Reservación Completada”);
COMMIT;
END_TRANSACTION

7 Propiedades de una Transacción


También conocidas como propiedades ACID, debido a las iniciales en inglés
de las cuatro propiedades presentadas a continuación:
Atomicidad (Atomicity): Se ejecutan todas las operaciones que forman
parte de la transacción o ninguna de las operaciones son ejecutadas (todo
o nada).
Durabilidad (Durability). Todos los cambios realizados por una transacción
validada deben permanecer en la Base de Datos, a pesar de las fallas

8 Propiedades de una Transacción


Consistencia (Consistency): Una transacción toma una base de datos
consistente, hace operaciones sobre ella y debe dejarla en un estado
consistente. Esta propiedad asegura que la transacción transforma el
estado de la BD de forma correcta, es decir, deja la Base de Datos en un
estado consistente.
Aislamiento (Isolation). Una transacción que se está ejecutando no revela
sus resultados a otra transacción concurrente antes de validar, es decir, la
ejecución de una transacción no debe interferir con la ejecución de otras
transacciones que se estén ejecutando concurrentemente.
El aislamiento asegura que cada transacción vea un estado consistente de
la BD
/
9 Implementación de transacciones
Espacio de Trabajo Privado
Se copian los datos en un espacio propio de cada transacción
La transacción opera sobre su copia privada
Al nalizar exitosamente la transacción se actualizan en la base de datos

10 Implementación de transacciones
Registro Previo de actualizaciones (Writeahead Log)
Las actualizaciones son realizadas directamente en la base de datos.
Antes de realizar una actualización registra en el log el valor previo del dato
y el valor que tomará el dato.
Se lleva un registro de los cambios realizados.

11 Transacción Distribuida
Una Transacción distribuida es una transacción que se ejecuta sobre varios
nodos (computadores).
La transacción es dividida en partes, donde cada parte es asignada,
siguiendo ciertas políticas, a un determinado nodo para ser ejecutada,
pudiendo la transacción acceder a datos ubicados en diferentes nodos.

12 Clasi cación de Transacciones Distribuidas


1. Duración de las Transacciones
Transacciones en Línea o de Corta Vida: Posee un tiempo corto de
ejecución y acceden a una pequeña porción de la BD. Por ejemplo una
transacción bancaria.
Transacciones Batch o de Larga Vida: Transacciones de larga ejecución
(minutos, horas o días) y que acceden a una amplia porción de la BD. Como
por ejemplo: aplicaciones estadísticas, procesamiento de imágenes, entre
otras.

13 Clasi cación de Transacciones Distribuidas


2. Organización de las Operaciones de Lectura y Escritura
General: Las operaciones no tienen un orden especí co.
Transacciones en dos Pasos: Todas las lecturas se hacen antes de cualquier
escritura.
Restringida o lectura antes de escritura: Un dato es leído antes de que
pueda ser modi cado.

14 Clasi cación de Transacciones Distribuidas


2. Organización de las Operaciones de Lectura y Escritura
Restringida a dos Pasos: Antes de ser modi cado un dato debe ser leído,
pero todas las lecturas deben estar antes de todas las escrituras. /
Modelo de Acción: Similar al modelo Restringido pero con la característica
adicional de que cada par de operaciones <lectura, escritura> debe ser
ejecutado atómicamente.

15 Clasi cación de Transacciones Distribuidas


2. Organización de las Operaciones de Lectura y Escritura

16 Clasi cación de Transacciones Distribuidas


3. Estructura
Transacciones Planas (Flat Transaction): La Transacción es un solo bloque
de programa, que tiene un único punto de comienzo (begin) y un único
punto de terminación (commit o rollback).
Transacciones Anidadas (Nested Transaction): Una Transacción puede
estar compuesta a su vez de otras transacciones, es decir que dentro de
sus puntos de inicio y n pueden colocarse una o más transacciones, cuyas
transacciones a su vez también pueden ser anidadas.

17 Modelo Tradicional de Transacciones Distribuidas


El modelo tradicional propone una transacción con una estructura de una
Transacción Plana que cumple a cabalidad las propiedades ACID.
Ti = {Op1, Op2, Op3, … , Opn, F}
Donde:
Opj, j=1…n: operaciones
F: nal o terminación de la transacción

18 Modelo Tradicional de Transacciones Distribuidas


El modelo resulta limitado para aplicaciones que poseen operaciones más
complejas y tienen un tiempo de ejecución mucho más largo porque:
Es más probable de ser interrumpida por fallas.
Acceden a mucho más datos que una corta, y siguiendo este modelo la
transacción mantiene el bloqueo sobre esos datos hasta su terminación
Mayor probabilidad de interbloqueo.
No permite la cooperación entre transacciones.

19 Modelo de Transacciones Anidadas


Una Transacción Anidada es una transacción que se conforma por
transacciones, que pueden a su vez ser anidadas.
Las transacciones que se encuentran dentro de otras transacciones son
llamadas subtransacciones.
Ti = {T1, T2, … , Tn, F}
Donde:
Ti está formada por transacciones (Tj, j=1…n)
F: nal o terminación de la transacción

/
20 Modelo de Transacciones Anidadas
La raíz del árbol es denominada Transacción Raíz ó Top-Level.
Una transacción que tiene subtransacciones es llamada Transacción Madre
y sus subtransacciones son sus Transacciones Hijas. Las transacciones que
no tiene subtransacciones son llamadas Transacciones Hojas.

21 Modelo de Transacciones Anidadas


Las transacciones encontradas en el camino desde una subtransacción
determinada hasta la raíz del árbol son llamadas Ancestros a dicha
subtransacción.
Y aquellas que se encuentran desde la subtransacción hasta las
subtransacciones hojas del árbol del cual la subtransacción es raíz son
llamadas Descendientes.
Se tienen subtransacciones Vitales y No Vitales. Las Vitales son aquellas
subtransacciones que tienen que obligatoriamente validar para que la
transacción madre pueda validar y las No Vitales son aquellas que aunque
no validen su transacción madre puede validar.

22 Modelo de Transacciones Anidadas


Ventajas
Mayor nivel de Concurrencia
Paralelismo
Menor Costo en Recuperación
Modularidad

23 Modelo de Transacciones Anidadas


Limitaciones
Es más compleja la administración de transacciones.
Puesto que las transacciones se pueden anidar con un nivel de
profundidad arbitrario, es necesaria una considerable administración para
que todo sea correcto.
No permite la cooperación entre transacciones.

24 Modelo de Transacciones Anidadas


Reglas de Comportamiento
Una transacción hija comienza después que su madre y termina antes de la
misma.
Una transacción madre no puede terminar hasta que todas sus hijas hayan
sido resueltas, es decir ya hayan terminado. Así se asegura el orden
requerido de validación.
La validación de la subtransacción es condicional a la validación de su
madre, es decir que las modi caciones de una subtransacción validada
tendrán efecto siempre y cuando su transacción madre valide.
/
25 Modelo de Transacciones Anidadas
Reglas de Comportamiento
Si una subtransacción falla, no necesariamente su transacción madre
aborta. Esto depende si la subtransacción que falló es vital para que la
transacción madre valide o no.
El aborto de una transacción implica que sus inferiores aborten, pero no
necesariamente el de sus superiores.
Cuando una transacción valida, sus actualizaciones son heredadas por su
madre.
Los cambios de una subtransacción se hacen permanentes solo cuando la
transacción raíz valida, es decir que las actualizaciones que haya heredado
la transacción raíz son llevadas a la BD.

26 Modelo de Transacciones Anidadas


Propiedades ACID
En las transacciones anidadas las propiedades de atomicidad y de
durabilidad son reformuladas, porque aún cuando parte de su árbol haya
abandonado la transacción puede validar.
Se cumple la propiedad de aislamiento por cada una de las
subtransacciones, ya que los cambios realizados por las descendientes de
una transacción solo serán visibles por las transacciones en el árbol del
cual dicha transacción es raíz.
En cuanto a la propiedad de consistencia, al igual que la durabilidad ésta es
conservada solamente por la transacción raíz, ya que la transacción raíz es
la que garantiza que la base de datos se encuentre en un estado
consistente.

27 Modelo del Manejador de Transacciones


BEGIN_TRANSACTION
END_TRANSACTION
Scheduler
LOCK/RELEASE
Timestamp
Administrador
de la Data
Execute
Read/write

28 Modelo del Manejador de Transacciones


Transaction Manager: Encargado de supervisar la ejecución de las
transacciones y de coordinar las peticiones de la base de datos que realiza
la transacción.

/
Scheduler: Maximiza la concurrencia sin permitir la ejecución concurrente
de transacciones que inter eran en otra, y así comprometer la integridad o
la consistencia de la base de datos.

29 Tarea
Investigar la implementación de las transacciones distribuidas en los SMBD
Comerciales.

Descargar ppt "Manejo de Transacciones"

 Presentaciones similares

/
/
© 2020 SlidePlayer.es Inc. Feedback Sobre el proyecto
All rights reserved.
Política de privacidad SlidePlayer
Feedback Condiciones de uso

Búsqueda... Búsqueda

También podría gustarte