1 / 29

Manejo de Transacciones

Manejo de Transacciones. Lic. Bárbara da Silva. Sistemas de Bases de Datos Distribuidas - UCV. Esquema de la Clase. Definición de Transacción Modelo de Transacción Propiedades de una transacción Implementación de transacciones Transacción Distribuida

tam
Download Presentation

Manejo de Transacciones

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Esquema de la Clase • Definición de Transacción • Modelo de Transacción • Propiedades de una transacción • Implementación de transacciones • Transacción Distribuida • Clasificación de las Transacciones Distribuidas • Modelos de Transacciones Distribuidas • Tradicional • Transacciones Anidadas • Modelo del Manejador de Transacciones

  3. Definición de Transacción Una Transacción es una unidad de trabajo consistente y confiable, 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. Definició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 Confiabilidad.

  5. Modelo de Transacción

  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 finalizar 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. Clasificació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. Clasificación de Transacciones Distribuidas 2. Organización de las Operaciones de Lectura y Escritura General: Las operaciones no tienen un orden específico. 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 modificado.

  14. Clasificación de Transacciones Distribuidas 2. Organización de las Operaciones de Lectura y Escritura Restringida a dos Pasos: Antes de ser modificado 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. Clasificación de Transacciones Distribuidas 2. Organización de las Operaciones de Lectura y Escritura

  16. Clasificació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 fin 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: final 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: final 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 modificaciones 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 Transacciones Manejador de Transacciones BEGIN_TRANSACTION END_TRANSACTION LOCK/RELEASE Timestamp Scheduler Execute Read/write Administrador de la Data

  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 interfieran 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.

More Related