You are on page 1of 14

CONCURRENCIA

Un esquema de BD incluye la descripcin de los datos y las restricciones de integridad. Las restricciones de integridad (RI) son consistentes en s mismas si no incluyen contradicciones desde el punto de vista semntico

QUE ES CONCURRENCIA?
Es cuando muchas transacciones acceden a la misma Base de Datos al mismo tiempo. Especialmente, cuando acceden a los mismos datos de la misma Base de Datos al mismo tiempo

BD

INTRODUCCION
Los sistemas de bases de datos, segn el nmero 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 multiprogramacin: el computador puede procesar al mismo tiempo varias transacciones

Por qu es necesario el control de la concurrencia?

porque pueden surgir problemas si las transacciones concurrentes se ejecutan de manera no controlada

Problemas potenciales provocados por la concurrencia

Transaccin T1

leer_elemento(X); X:= X-N; escribir_elemento(X); leer_elemento(Y); Y:=Y+N; escribir_elemento(Y);

Transaccin T2

leer_elemento(X); X:= X+M; escribir_elemento(X);

Problemas potenciales provocados por la concurrencia


La actualizacin perdida
T1 y T2 que acceden a los mismos datos, tienen sus operaciones intercaladas de modo que hacen incorrecto el valor de algn dato
T1

leer_elemento(X); X:= X-N;

T2

escribir_elemento(X); leer_elemento(Y);
Y:=Y+N; escribir_elemento(Y);

leer_elemento(X); X:= X+M; escribir_elemento(X);

Problemas potenciales provocados por la concurrencia

La actualizacin temporal (o lectura sucia)


T1 actualiza un elemento X de la BD y luego falla, pero antes de que se restaure el valor original de X, T2 tiene acceso al valor temporal de X

Problemas potenciales provocados por la concurrencia


El resumen incorrecto
Otra transaccin T3 calcula una funcin agregada de resumen sobre varios registros (suma las plazas reservadas para todos los vuelos), mientras otras transacciones, como T1, actualizan dichos registros: puede que T3 considere unos registros antes de ser actualizados y otros despus

Problemas potenciales provocados por la concurrencia


La lectura no repetible
T4 lee un elemento X dos veces y otra transaccin, como T1, modifica dicho X entre las dos lecturas: T4 recibe diferentes valores para el mismo elemento

Serializabilidad

Objetivo de un protocolo de control de concurrencia:


Planificar las transacciones de forma que no ocurran interferencias entre ellas, y as evitar la aparicin de los problemas mencionados

Serializabilidad

Pero el objetivo de un SGBD multiusuario tambin es maximizar el grado de concurrencia del sistema

Si se permite la intercalacin de operaciones, existen muchos rdenes posibles de ejecucin de las transacciones

Tcnicas de control de concurrencia

Mtodos basados en la teora de la serializabilidad, que definen un conjunto de reglas (o protocolo) . Clasificacin
Mtodos de bloqueo Mtodos de marca de tiempo Tcnicas de multiversin Mtodos optimistas

Mtodos de bloqueo

Uso de bloqueos para controlar el acceso concurrente a los elementos de datos almacenados en la base de datos

Reglas de uso de los bloqueos

1. T debe emitir bloquear_lectura(X) o bloquear_escritura(X) antes de ejecutar una operacin leer_elemento(X) 2. T debe emitir bloquear_escritura(X) antes de realizar una operacin escribir_elemento(X) en T 3. T debe emitir desbloquear(X) una vez completadas todas las operaciones leer_elemento(X) y escribir_elemento(X) 4. Si T ya posee un bloqueo, compartido o exclusivo, sobre X no emitir bloquear_lectura(X) ni bloquear_escritura(X) 5. T no emitir desbloquear(X) salvo si posee un bloqueo, compartido o exclusivo, sobre X

You might also like