Manejo de Transacciones

Slides:



Advertisements
Presentaciones similares
Construcción de Sistemas Distribuidos “Transacciones Distribuidas”
Advertisements

Transacciones y Concurrencia en Oracle
Definición En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido se comunican.
Administración de procesos Lic. Orlando Zamora Rdz.
2.3 DESARROLLO DE LA INVENTIVA. del latín invenire, "encontrar" -véase también inventio-) es un objeto, técnico o proceso que posee características novedosas.
IBD Clase 17.
IBD Clase 7.
Administración de transacciones y bloqueos
Noveno Semestre UNIDEC
BASES DE DATOS DISTRIBUIDAS
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Sistemas de Bases de Datos Distribuidas
Confiabilidad de BDD Sistemas de Bases de Datos Distribuidas - UCV
Introducción a los Sistemas de Bases de Datos
Confiabilidad en Bases de Datos Distribuidas
Metodología de la Programación
Arquitectura CLARO-TECNOTREE
Sistemas Distribuidos y Paralelos
SISTEMAS TRANSACCIONALES
Introducción a los Sistemas de Bases de Datos Distribuidos
UNIDAD II Modelo de Datos.
BASES DE DATOS DISTRIBUIDAS
Transacción Es una unidad de trabajo sobre la base de datos
Introducción a los Conceptos de Bases de Datos Docente: Ing. Marleny Soria Medina.
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
Transacciones (MySQL). Definición: Conjunto de sentencias que se tratan como una sola. Comienzan con BEGIN/START TRANSACTION; Se puede confirmar (COMMIT)
Administración de Bases de Datos
Árboles, montículos y grafos Cola de prioridades, montículos
TRANSACCIONES DISTRIBUIDAS
Unidad III Administración de procesos
6. Recuperación de fallos
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
(Organización y Manejo de Archivos)
Asignación de Espacio No Contiguo
Hilos En La Computación. (THREADS).
Una transacción debe estar en uno de los estados siguientes: Activa Parcialmente comprometida Fallida Abortada Comprometida Activa: El estado inicial;
Control de Transacciones.
Elaborado por: Guillermo Baquerizo I Término
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Manipulación de Datos Conceptos básicos.
CONCEPTO SOBRE TRANSACCIONES
Transacciones en sistemas de base de datos
TRANSACCIONES DISEÑO DE BASE DE DATOS.
SISTEMAS DE PROCEDIMENTO DE TRANSACCIONES
Administración de Bases de Datos
Universidad Tecnológica de Izúcar de Matamoros
Los Sistemas de Archivos
PROYECTO EMPRESARIAL Clase # 1.
Características Generales de un Sistema de Bases de Datos.
Programación Orientada a Objeto
DIAGRAMA DE FLECHAS O RUTA CRITICA
C ONCURRENCIA Y M ANEJO DE S ESIONES. C ONCURRENCIA Es una propiedad del sistema en el cual muchos calculos se estan ejecutando simultaneamente, y son.
Visual Basic FUNCIONES Y PROCEDIMIENTOS
1 FUNDAMENTOS DE BASES DE DATOS SISTEMA GESTOR DE BASES DE DATOS (SGBD) Consiste en una colección de datos interrelacionados y un conjunto de programas.
Protocolos de Sondeo SNOOPY
¿QUE ES EL DIAGRAMA DE ESTADO ?
UNIVERSIDAD TECNOLOGICA DE IZUCAR DE MATAMOROS TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO: GONZALO ROSAS CABRERA.
Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
La Programación Orientado a Objetos
Características Generales de un Sistema de Bases de Datos. Profesor: John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. Profesor: John Freddy Duitama.
 Definir conceptos fundamentales de las BDD como DTM y DBMS.  Conocer el esquema actual de la Base de datos de la UNACH.  Analizar cuándo utilizar.
Paralelización de operaciones
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Bases de datos ITecnológico San Agustín1 BASES DE DATOS Conceptos Básicos Paulo César Acosta Lozano –
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
INSTITUTO TECNOLÓGICO DE JIQUILPAN REQUISITOS PARA LA IMPLEMENTACIÓN DE COBIT Integrantes: Ariel Alejandro Sánchez Valencia. Javier Cervantes Higareda.
Consistencia y Replicación
1 Tema 16: Servidores de Archivos y otros Conceptos Sistemas Operativos (Tema 18 en apuntes prof. Rovayo)
Una transacción corresponde a un grupo de sentencias que representan una unidad de trabajo y deben ejecutarse en su totalidad.
Transcripción de la presentación:

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 Clasificación de las Transacciones Distribuidas Modelos de Transacciones Distribuidas Tradicional Transacciones Anidadas Modelo del Manejador de Transacciones

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

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.

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

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

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

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

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

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.

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.

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.

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.

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.

Clasificación de Transacciones Distribuidas 2. Organización de las Operaciones de Lectura y Escritura

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.

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

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.

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

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.

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.

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

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.

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.

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.

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.

Modelo del Manejador de Transacciones BEGIN_TRANSACTION END_TRANSACTION Scheduler LOCK/RELEASE Timestamp Administrador de la Data Execute Read/write

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.

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