Gestión de Transacciones

Documentos relacionados
Mecanismos de Recuperación

Mecanismos de Recuperación

Transacciones. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile andrea

Administración de Bases de Datos

Tema 6. Transacciones y seguridad

15. Recuperación de fallos del sistema

Transacciones, Recuperación y Control de Concurrencia

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero

ADMINISTRACIÓN DE BASES DE DATOS. Control de Concurrencia y Recuperación

Recuperación de Fallos del Sistema

Introducción a los sistemas de bases de datos

El Sistema Gestor de Base de Datos (DBMS)

T ema 2. S is tem as ges tores de bas es de datos

TEMA 4 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ

SISTEMAS DE RECUPERACIÓN

Concurrencia y Recuperabilidad

CAPITULO 6. Control de Concurrencia y Recuperación

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

Manejo de Transacciones

TEMA 4.4: Recuperación ante fallos

Bases de Datos I. Cursada Clase 7: Recuperación de BD. Introducción a la Seguridad. Introducción a la Seguridad

Procedimientos de recuperación

BASES DE DATOS TEMA 5 RECUPERACIÓN DE FALLAS

Sistema de Recuperación. Carlos A. Olarte BDII

5(&83(5$&,Ð1'(&$Ì'$6'(/6,67(0$

Introducción Definición de base de datos Conceptos básicos Sistema de Gestión de Base de Datos (SGBD) Conclusiones

Recuperación de Bases de Datos

RECUPERACIÓN ANTE FALLAS EN BASES DE DATOS

BASES DE DATOS, MODELOS DE DATOS Y DBMS

5. RECUPERACIÓN DE FALLAS

ESTRUCTURA BÁSICA DE UN ORDENADOR

Control de Concurrencia

LENGUAJES DE DEFINICIÓN Y MODIFICACIÓN DE DATOS SQL 60h

2. Proceso de creación de bases de datos

BASES DE DATOS curso 2002/3

CONTROL DE CONCURRENCIA Y RECUPERACIÓN EN BASES DE DATOS

ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN

Asignatura: Administración de Bases de Datos

Herramientas Informáticas I Software: Sistemas Operativos

Bases de Datos 2. Teórico

PostgreSQL, Oracle, MySQL y otros. Sahyra Yépez

Elementos de Bases de Datos. Serializabilidad en Bases de Datos Distribuidas. Protocolo de Bloqueo de Dos Fases. Protocolo de Compromiso de 2 Fases

Carlos Castillo UPF 2008

Bases de Datos 3º Informática de Sistemas

Servicios del Sistema Operativo (SO)

Problemas Fundamentales. Amenazas a la Seguridad de la Base de Datos. Diseño o de Alto Nivel. en las Bases de Datos. Índice. Seguridad Completa

Sistemas Distribuidos Sincronización, Concurrencia y Transacciones

Procesamiento de transacciones Fernando Berzal,

Sistemas Operativos. Curso 2016 Sistema de Archivos

TEMA 2.- EL SISTEMA GESTOR DE BASES DE DATOS.

Formato para prácticas de laboratorio

Sistemas de Información II Tema 2. Sistemas gestores de bases de datos Bibliografía: Elmasri y Navathe: Fundamentos de Sistemas de Bases de Datos 3ª

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERIA EAP INGENIERIA INFORMATICA. Ciclo Académico 2003 II SILABO

Introducción a las bases de datos

TEORIA DE BASES DE DATOS. M. Sc. Cristina Bender Lic. Diana Gázquez

GESTION DE TRANSACCIONES

TRANSACCIONES DISTRIBUIDAS

BASES DE DATOS DSIC. Curso

Capítulo 5. Edición de datos

Introducción a los Sistemas de Gestión de Bases de Datos

INDICE Capitulo 1. Introducción Capitulo 2. Modelo entidad relación Capitulo 3. Modelo Relacional Capitulo 4. Lenguajes relacionados comerciales

Administración de Bases de Datos

Segundo Parcial de Fundamentos de Bases de Datos. Noviembre 2016

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3

Base de Datos PLANIFICACIONES Actualización: 1ºC/2013. Planificaciones Base de Datos. Docente responsable: ALE JUAN MARIA.

Sistemas de Operación II

BASES DE DATOS DSIC. Curso

BD Relacionales. Introducción. Marta Zorrilla

República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción

Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr

Universidad Católica San Pablo Facultad de Ingeniería y Computación Programa Profesional de Ciencia de la Computación SILABO

Ingeniero Técnico en Informática de Sistemas &DUiFWHU Troncal

SYLLABUS. NUMERO DE ESTUDIANTES: NÚMERO DE CREDITOS: Tres (3) TIPO DE CURSO: TEÓRICO ( ) PRACTICO ( ) TEO-PRAC (X)

1. Introducción Información y datos Ficheros vs. Bases de datos

SISTEMAS OPERATIVOS Arquitectura de computadores

Asignaturas, profesores, alumnos. Profesores, grupos, asignaturas, aulas

UNIDAD 1: CONCEPTOS BA SICOS DE BASE DE DATOS

Temario Curso Bases de Datos

Bases de datos. Diseño y gestión

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

CICLOS DEL PROCESADOR

Integridad Transaccional

TÍTULO: BASES DE DATOS Disponibilidad Objetivos 5 Definicion de una base de datos 9 Datos de nomina (tabla) 9 Esquema de bases de datos (mapa

Administración de Bases de Datos (Ingeniería Técnica en Informática de Gestión)

Guía práctica de estudio 05: Diagramas de flujo

TEMARIO. - Programa de teoría

Transacciones y concurrencia. Sistemas de persistencia de objetos

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

UNIVERSIDAD NACIONAL DEL SUR 1 BAHIA BLANCA DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACION

ASIGNATURA: BASE DE DATOS II

Ingeniería de Software II. SETEPROS Plan de pruebas. Versión 1.0

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

6. PROGRAMACIÓN CON TRANSACT-SQL

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002

Transcripción:

Gestión de Transacciones y su relación con el gestor de concurrencia (planificador) y el gestor de recuperación 1 Sistema Monousuario vs. Multiusuario. concurrencia Transacciones Estado de las transacciones. 2 Sist. Monousuario vs Multiusuario Clasificación BD según el numero de usuarios: Monousuario: Un usuario a la vez Multiusuario: Acceso simultaneo a la BD Multiprogramación (intercambio de proceso) proceso A Definición de transacción Unidad lógica de procesamiento de la BD que incluye una o más operaciones de acceso a la BD que pueden ser de inserción, eliminación, modificación o recuperación. proceso B Cjto. de lecturas/escrituras sobre la BD Procesamiento Paralelo. Mas de una CPU 3 4 Limites de la transacción Begin Transaction (set_transaction) End Transaction (commit, rollback) Todas las operaciones entre los límites se considera que forman parte de la transacción. Una aplicación puede contener más de una transacción (si contiene varios límites) Fin de una transacción COMMIT. Con éxito. Las actualizaciones que realiza la transacción se graban ROLLBACK. Con fracaso. Las actualizaciones que realiza la transacción deben deshacerse. 5 6 ABD 2006-2007 1

Ejemplo de transacción (2) % Sean las tablas: PASAJERO(Nombre...) VUELO(Codigo...) PAS_VUE(Nombre,Codigo) con dos restricciones rest1: todo pasajero debe estar en un vuelo rest2: todo vuelo tiene al menos un pasajero Transacción: asignar el primer pasajero a un avión set_transaction insert into VUELO values (123...); insert into PASAJERO values ( aitor,...); insert into PAS_VUE values ( aitor,123); Commit Durante la transacción puede NO cumplirse las rest. de integridad Al finalizar la transacción, todas las restricciones deben ser satisfechas La transacción es una unidad de consistencia 7 Ejemplo de transacción (1) % transferencia de 1000 entre dos cuentas corrientes set_transaction leer(c1.saldo); c1.saldo = c1.saldo - 1000; escribir(c1.saldo); leer(c2.saldo); c2.saldo = c2.saldo + 1000; escribir(c2.saldo); Commit Transacción: unidad de interacción con la BD. No puede quedarse a medias a riesgo de dejar la BD en un estado inconsistente. Es la aplicación (y no el SGBD) el que define que cjto. de acciones constituyen una transacción. Si se quiere asegurar un orden entre las acciones, englobarlas dentro de una misma transacción o poner condiciones 8 Sistema Monousuario vs. Multiusuario concurrencia Transacciones Estado de las transacciones 9 Concurrencia: Necesidad Premisa: cada transacción ejecutada individualmente preserve la consistencia de la BD 10 Ejecución en serie Concurrencia: Necesidad Premisa: cada transacción ejecutada individualmente preserve la consistencia de la BD Pero la ejecución concurrente de las transacciones no nos lleva necesariamente a un estado consistente 1000 2000, 855 2145 1000 2000, A 11 B 850 2150 12 ABD 2006-2007 2

Ejecución concurrente Concurrencia: Problemas Premisa: cada transacción ejecutada individualmente preserve la consistencia de la BD Pero la ejecución concurrente de las transacciones no nos lleva necesariamente a un estado consistente Problemas: pérdida de actualizaciones actualizaciones asumidas lecturas inconsistentes 1000 2000, 855 2145 1000 2000, A 13 B 950 2100 14 Problema. La actualización perdida x:= x - 100; escribir(x); leer(y); y := y + 100; escribir(y) x := x + 33; escribir(x); x tiene un valor incorrecto porque su actualización por se sobre-escribió 15 Problema. La actualización sucia (Modificación Temporal) x:= x - 100; escribir(x); leer(y); error-abortar x := x +50; escribir(x); ha leído un valor temporal incorrecto de x (valor sucio) 16 Problema. El resumen incorrecto Concurrencia: Solución x:= x - 100; escribir(x); leer(y); y := y + 100; escribir(y); suma := 0; leer(a); suma := suma + A;.. suma := suma + x; leer(y); suma := suma + y; ha leído el valor de x después de restar n, y el valor de y antes de sumar n. El valor suma no será correcto. 17 Conclusión: se necesita un mecanismo de control de la concurrencia que asegure que la ejecución concurrente de las transacciones preserve la consistencia. 18 ABD 2006-2007 3

Sistema Monousuario vs. Multiusuario concurrencia Transacciones Estado de las transacciones 19 recuperación: Necesidad El SGBD debe asegurar que toda transacción confirmada quede registrada en el sistema y que la misma no tenga efecto sobre la BD o sobre otra transacción. Esto puede suceder si una transacción falla después de ejecutar alguna operaciones. 20 recuperación: Problema Fallo del ordenador (caída del sistema) Error de la transacción (ej. Overflow, violación restricción) Errores de los usuarios (ej. el usuario borra accidentalmente una tabla) Imposición de control de concurrencia (ej. estado de bloqueo mortal) Fallo disco Recuperación. Solución Deben existir algoritmos que garanticen la consistencia de la BD y la atomicidad de las transacciones a pesar de los fallos. Solución: Mecanismos de control de concurrencia Mecanismos de recuperación Catástrofes físicas (Ej. inundación) 21 22 Sistema Monousuario vs. Multiusuario concurrencia Transacciones Estado de las transacciones 23 Estados de las transacciones Una transacción es una unidad atómica que se realiza por completo o no, pasando por: leer/escribir begin_of_tra ACTIVA end_of_tra abortar PARCIALMENTE CONFIRMADA abortar FALLIDA confirmar Parcialmente Confirmada: el SGBD verifica que no hay interferencias dañinas con otras transacciones. CONFIRMADA TERMINADA 24 ABD 2006-2007 4

El diario del sistema Las entradas del diario del sistema son: [start_transaction, T ] T es el identificador [commit, T] [abort, T] [read_item, T, dato, <valorleido>] [write_item, T, dato, <valorantigüo>, <valornuevo>] Operaciones: REDO: se escriben los <valornuevo> en la BD UNDO: se repone los <valorantigüo> en la BD Principio ACID (I) Su cumplimiento debe estar asegurado por el SGBD Se ejecuta como unidad (Atomicity) Preserva la consistencia(consistency) Una transacción no muestra los cambios que produce hasta que finaliza (Isolation) Si termina correctamente, sus cambios permanecen (Durability) 25 26 Principio ACID (II) Principio ACID (III) Transacciones Buffer Planificador Concurrencia Recuperación Se ejecuta como unidad (Atomicity) transacciones, recuperación Preserva la consistencia(consistency) Gestor de Rest. de integridad Una transacción no muestra los cambios que produce hasta que finaliza (Isolation) Control de Concurrencia 27 Si termina correctamente, sus cambios permanecen (Durability) Recuperaciones 28 Sistema Monousuario vs. Multiusuario concurrencia Transacciones Estado de las transacciones 29 Planificador Hay que regular el orden en el que se ejecutan las acciones de las diferentes transacciones. Encargado de la función de control: Planificador (Scheduler) 30 ABD 2006-2007 5

El planificador (scheduler) transacciones peticiones READ/WRITE o.k/wait/abort Planificador Buffer le llegan peticiones de lectura/escritura, y bien las ejecuta en los buffers o bien las retrasa Cuándo es problemática la ejecución concurrente? Cómo controlar que estos problemas no se dan? 31 Operaciones básicas memoria volátil read/write buffer local buffer local buffer local buffer local Las operaciones básicas de acceso a una BD que una transacción puede incluir son: leer-elemento (READ) escribir-elemento (WRITE) INPUT OUTPUT buffer global input/output bloque Área de trabajo privada para cada transacción memoria estable BD 32 Planificación (Plan) Definición: serie intercalada de acciones de distintas transacciones donde se respeta el orden relativo de la acción dentro de cada transacción. Las acciones que nos interesan son únicamente lecturas/escrituras sobre la base de datos = {a11,a12,a13} ; = {a21,a22} ; T3 = {a31,a32,a33} Planif(,,T3) = {a11,a21,a12,a31,a22,a13,a32,a33} Planificación en SERIE es aquella donde NO se solapan las transacciones con n transacciones tenemos n! planificaciones en serie no hay concurrencia poco eficientes 33 obviamente, no existen los problemas de la ejecución concurrente Principio de corrección Cualquier transacción ejecutada de forma aislada transforma un estado consistente en otro estado consistente. Pero!!!!!!!!!!! Las transacciones se ejecutan concurrentemente 34 Planificación serializable Definición: planificación que no siendo en serie, produce un resultado equivalente a una planificación en serie Condición para asegurar que una planificación sea serializable? Noción de conflicto Conflicto: par de acciones de una planificación tal que si se altera su orden, el resultado de al menos una de las transacciones involucradas puede cambiar. Los conflictos sólo se dan al trabajar sobre un mismo gránulo G. Acción 1 Acción 2 conflicto? READ(G,t) READ(G,t) NO READ(G,t) WRITE(G,t) SI WRITE(G,t) READ(G,t) SI WRITE(G,t) WRITE(G,t) SI 35 Gránulo: unidad de reserva 36 ABD 2006-2007 6

Conflicto Dos acciones de dos transacciones diferentes NO se pueden intercambiar (están en conflicto) si: Trabajan con el mismo elemento de la BD Al menos una de ellas es una operación de escritura Planificaciones equivalentes en conflictos Dos planificaciones son equivalentes en conflictos si se puede convertir una en otra siguiendo una secuencia de intercambios no conflictivos (es decir, sin cambiar el resultado final) entre acciones adyacentes Se cumple que el orden de dos acciones cualesquiera en conflicto es el mismo en ambas planificaciones. Nota: La equivalencia por resultados no sirve para definir la equivalencia entre planificaciones 37 38 Planificación serializable en conflictos Una planificación es serializable en conflicto si es equivalente en conflicto a una planificación en serie 39 Cuál es su planif. en serie equivalente? planif. en serie:, No es serializable en conflictos 40 Condición de serializable en conflictos De cara a garantizar la serializabilidad, esta condición (la de serializable en conflictos ) es suficiente. Lo imponen los sistemas comerciales planificaciones serializables planificaciones serializables en conflictos Grafo de precedencia de una planif. (Grafo de serialización) Nodo: para cada una de las transacciones de la planificación Arco de a si existe una acción a1 de y una acción a2 de tal que: a1 se encuentra antes que a2 en la planif. a1 y a2 actuan sobre el mismo gránulo bien a1 ó a2 es una escritura El grafo precedencia de una planif. en serie NO tiene ciclos El grafo de precedencia de una planifserializable en conflicto NO puede tener ciclos 41 Nota: Existe un algoritmo para construir grafos de precedencia 42 ABD 2006-2007 7

Serializabilidad de Vistas Definición menos restrictiva de la equivalencia entre planificaciones que la serializabilidad de conflictos. Una planificación es serializable en términos de vistas si es equivalente en términos de vistas a una planificación serie. Toda planificación serializable en términos de conflictos es serializable en términos de vistas, aunque la inversa no es cierta. 43 Serializabilidad de Vistas Dos planificaciones S1 y S2 compuestas por las mismas operaciones tomadas de n transacciones,, Tn son equivalentes en términos de vistas si se cumplen las tres siguientes condiciones: Para cada elemento de datos x, si la transacción T i lee el valor inicial de x en la planificación S1, entonces la transacción T i también debe leer el valor inicial de x en la planificación S2. Para cada operación de lectura sobre el elemento de datos x por parte de la transacción Ti en la planificación S1, si el valor leído de x ha sido escrito por la transacción Tj, entonces la transacción Ti también debe leer el valor de x producido por la transacción Tj en la planificación S2. Para cada elemento de datos x, si la última operación de escritura sobre x fue realizada por la transacción T i en la planificación S1, la misma transacción debe realizar la escritura final del elemento de datos x en la planificación S2. 44 Ejemplo. Planificación serializable en términos de vistas Tiempo 1 2 3 t1 t2 t3 t4 t5 t6 t7 t8 t9 READ(A,X) WRITE(A,X) WRITE(A,X) WRITE(A,X) Planificación serializable En la práctica es difícil comprobar la serializabilidad de una planificación. Por ello la estrategia que se sigue en casi todos los sistemas prácticos es encontrar métodos que garanticen la serializabilidad sin tener que verificar las planificaciones. 45 46 Protocolos de concurrencia Bibliografía Para asegurar que las transacciones se enreden de forma serializable, el SGBD impone unas reglas en el momento de utilizar los gránulos: el protocolo Tres protocolos: el de reserva, de Bloqueo (locks) el de la marca de (time stamping) el de validación 47 Database System Implementation H. García Molina, J.D. Ullman, J. Widom Prentice Hall 2000 Fundamentals of Database Systems (4. edición 2004) Fundamentos de Sistemas de Bases de Datos (3. Edición 2002). R.A. Elmasri, S. B. Navathe. Addison Wesley Sistemas de Bases de Datos. Un enfoque práctico para diseño, implementación y gestión. (4. edición, 2005) T. Connolly, C. Begg Addison-Wesley 48 ABD 2006-2007 8