1 Control de la concurrencia Objetivos
Conocer la problemática asociada a la concurrencia de transacciones en los sistemas de bases de datos Entender el significado de la serializabilidad y su aplicación al control de la concurrencia Comprender algunas técnicas para el control de la concurrencia empleadas por los sistemas gestores de bases de datos
2 Control de la concurrencia Contenidos
1. Introducción y problemas de la concurrencia 2. Serializabilidad 3. Técnicas de control de la concurrencia 4. Granularidad de datos
3 Bibliografía
[CB 2005] Connolly, T.; Begg C.: Sistemas de bases de datos. 4ª Edición. Pearson Educación. Addison Wesley. (Cap. 20) [EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases de Datos. 3ª Edición. Addison-Wesley. (Cap. 19 y 20) [EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos. Conceptos fundamentales. 2ª Edición. Addison-Wesley Iberoamericana. (Cap. 17 y 18) Control de la concurrencia
4
Los sistemas de bases de datos, según el número de usuarios que pueden utilizarlos de forma concurrente, se clasifican en sistemas monousuario y multiusuario
Varios usuarios pueden usar un mismo equipo a la vez gracias a la multiprogramación: el computador puede procesar al mismo tiempo varias transacciones Si el equipo tiene varias CPU, es posible el procesamiento simultáneo (paralelo) de transacciones Si sólo hay una CPU, el SO de multiprogramación reparte el tiempo de CPU entre las transacciones: ejecución concurrente intercalada modelo que supondremos Introducción
5
Varias transacciones introducidas por usuarios, que se ejecutan de manera concurrente, pueden leer/modificar los mismos elementos almacenados en la base de datos
Razones para permitir la concurrencia: Aumentar la productividad: número de transacciones ejecutadas por minuto. Aumentar la utilización de la CPU (menos tiempo ociosa) y Control del disco. Reducir el tiempo medio de respuesta de transacciones (las pequeñas no esperan a las grandes).
Introducción
6 … porque pueden surgir problemas si las transacciones concurrentes se ejecutan de manera no controlada Ejemplo sencillo:sistema de bases de datos que permite hacer y anular reservas de plazas en vuelos de diferentes compañías aéreas. Se almacena un registro por cada vuelo, que incluye, entre otras cosas, el número de asientos reservados en el vuelo Sean dos transacciones T1 y T2 concurrentes: T1 transfiere N reservas realizadas en un vuelo X a otro vuelo Y T2 reserva M plazas en el vuelo X y problemas de la concurrencia ¿Por qué es necesario el control de la concurrencia?
7 y problemas de la concurrencia Problemas potenciales provocados por la concurrencia Transacción T1 leer_elemento(X); X:= X-N; escribir_elemento(X); leer_elemento(Y); Y:=Y+N; escribir_elemento(Y); Transacción T2 leer_elemento(X); X:= X+M; escribir_elemento(X); Aunque las transacciones pueden ser perfectamente correctas en sí mismas, la ejecución concurrente de T1 y T2 puede producir un resultado incorrecto, debido a la intercalación de sus operaciones, poniendo en cuestión la integridad y la coherencia de la base de datos
8 La actualización perdida T1 y T2 que acceden a los mismos datos, tienen sus operaciones intercaladas de modo que hacen incorrecto el valor de algún dato y problemas de la concurrencia Problemas potenciales provocados por la concurrencia T1 leer_elemento(X); X:= X-N;
escribir_elemento(X); leer_elemento(Y);
Y:=Y+N; escribir_elemento(Y); T2
leer_elemento(X); X:= X+M;
escribir_elemento(X); El elemento X tiene un valor incorrecto porque su actualización por T1 se perdió (se sobreescribió)
Página siguiente |