Vous êtes sur la page 1sur 13

INTRODUCCIN

La definicin de concurrencia en trminos generales es:


Coincidencia de varios sucesos o cosas a un mismo tiempo
La concurrencia en las bases de datos :
Se refiere al hecho de que los Sistemas Administradores de Base
de Datos permiten que muchas transacciones accedan a una misma
Base de Datos a la vez.

Cuando existen varios usuarios intentando modificar los datos al mismo


tiempo, se necesita establecer algn tipo de control para que dichas
modificaciones de un usuario no interfieran en las de los otros, a este
sistema se le denomina control de concurrencia.

Los sistemas de control de concurrencia deben garantizar la propiedad


de aislamiento de transacciones que se ejecutan de manera
concurrente.

DEFINICIN DE CONCURRENCIA

En el campo informtico, el termino concurrencia se refiere a la capacidad de los Sistemas de


Administracin de Base de Datos (DBMS), de permitir que mltiples procesos sean ejecutados al
mismo tiempo, y que tambin puedan interactuar entre s.

Los procesos concurrentes pueden ser ejecutados realmente de forma simultnea, slo cuando cada
uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si slo existe un
procesador encargado de ejecutar todos los procesos, simulando la concurrencia, ocupndose de
forma alternada de uno y otro proceso a muy pequeos intervalos de tiempo. De esta manera simula
que se estn ejecutando a la vez.

Algunos casos de concurrencia


La multiprogramacin: El procesador es compartido dinmicamente por varios procesos.
Aplicaciones estructuradas: Se implementa como un conjunto de procesos concurrentes.

Tambin se tiene que la misma estructura recin mencionada es utilizada en el diseo de los sistemas
operativos, los cuales se implementan como un conjunto de procesos.
Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros tambin en
ejecucin, el nmero de caminos de ejecucin puede ser extremadamente grande, resultando en un
comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas
para el desarrollo de lenguajes de programacin y conceptos que permitan hacer la concurrencia ms
manejable.

TRANSACCIONES

El control de concurrencia permite que sus usuarios asuman que cada


una de sus aplicaciones se ejecuta atmicamente, como si no existieran
otras aplicaciones ejecutndose concurrentemente. Esta abstraccin de
una ejecucin atmica y confiable de una aplicacin se conoce como una
transaccin

Informalmente, una transaccin es la ejecucin de ciertas instrucciones


que acceden a una base de datos compartida.

Cada transaccin accede a informacin compartida sin interferir con otras,


si una transaccin termina normalmente, todos sus efectos son
permanentes, en caso contrario no tiene afecto alguno.
Durante una transaccin la base de datos pierde su consistencia, la que
debe restituirse al momento de finalizar la transaccin.

PROPIEDADES FUNDAMENTALES DE UNA TRANSACCIN

Atomicidad: Se refiere al hecho de que una transaccin se trata como una unidad de operacin.
Consistencia: La consistencia de una transaccin es simplemente su correctitud; las transacciones no
violan las restricciones de integridad de una base de datos.
Aislamiento: Una transaccin en ejecucin no puede revelar sus resultados a otras transacciones
concurrentes antes de finalizar.
Permanencia: Es la propiedad de las transacciones que asegura que una vez que una transaccin
finaliza exitosamente, sus resultados son permanentes y no pueden ser borrados de la base de datos
por alguna falla posterior.
En esencia, lo que se persigue con el procesamiento de transacciones es, por una parte obtener una
transparencia adecuada de las acciones concurrentes a una base de datos y por otra, manejar
adecuadamente las fallas que se puedan presentar en una base de datos.
El procesamiento de transacciones es una de las tareas ms importantes dentro de un sistema de base
de datos, pero a la vez, es una de las ms difciles de manejar debido a diversos aspectos, tales como:

Confiabilidad: Puesto que los sistemas de base de datos en lnea no pueden fallar.
Disponibilidad: Debido a que los sistemas de base de datos en lnea deben estar actualizados

correctamente todo el tiempo.


Tiempos de Respuesta: el tiempo de respuesta de las transacciones no debe ser mayor a doce
segundos
Throughput: Los sistemas de base de datos en lnea requieren procesar miles de transacciones por
segundo.
Atomicidad: en el procesamiento de transacciones: No se aceptan resultados parciales.

PROBLEMAS DE CONCURRENCIA

Existen tres formas en las que una transaccin,


aunque sea correcta por s misma, puede producir
una respuesta incorrecta si alguna otra transaccin
interfiere con ella en alguna forma.
El

problema de la Actualizacin Perdida


El problema de la Dependencia No Confirmada
El problema del Anlisis Inconsistente

Actualizacin Perdida
Procedure Depositar(Cuenta, Monto)
begin
Start;
temp := Leer(Cuentas[Cuenta]);
temp := temp + Monto;
Escribir(Cuentas[Cuenta],temp);
Commit;
End

Leer1(Cuentas[7]) devuelve el valor de $1000


Leer2(Cuentas[7]) devuelve el valor de $1000
Escribir2(Cuentas[7], $101000)
Commit2
Escribir1(Cuentas[7], $1100)
Commit1

Anlisis Inconsistente
Procedure ImprimirSuma(Cuenta1, Cuenta2)
begin
Start;
temp1 := Leer(Cuentas[Cuenta1]);
output(temp1);
temp2 := Leer(Cuentas[Cuenta2]);
output(temp2);
temp1 := temp1 $+$ temp2;
output(temp1);
Commit;
end

Leer4(Cuentas[8]) devuelve el valor de $200


Escribir4(Cuentas[8], $100)

Leer3 (Cuentas[8]) devuelve el valor de $100


Leer3 (Cuentas[9]) devuelve el valor de $200
Leer4 (Cuentas[9]) devuelve el valor de $200
Escribir4 (Cuentas[9], $300)

Commit4
Commit3

Sincronizador o Serializador

Bloqueos

La idea bsica de un Bloqueo es que cuando


se esta procesando una transaccin, inhibe
todas las dems transacciones

Bloqueos
Bloqueo Exclusivo o de Escritura
Transacciones
Base de datos

Transaccin A

Tupla

Bloqueo
Exclusivo

Transaccin B

DB

Si la transaccin A pone un bloqueo exclusivo (X) sobre una tupla,


entonces se rechazar una peticin de cualquier otra transaccin B
para un bloqueo de cualquier tipo sobre la tupia

Bloqueos
Bloqueo Compartido o de Lectura
Transacciones

Base de datos
Tupla

Transaccin A
Bloqueo
Compartido

Transaccin B

Transaccin C

DB

Bloqueo
Exclusivo

Si la transaccin A pone un bloqueo compartido (S) sobre la tupla entonces:


Se rechazar una peticin de cualquier otra transaccin B para un bloqueo Exclusivo sobre
la tupla.
Se otorgar una peticin de cualquier otra transaccin B para un bloqueo S sobre la tupla
(esto es, ahora tambin B tendr un bloqueo S sobre la tupla

Bloqueos
Matriz de Compatibilidad

Transaccin B

Transaccin A

No

No

Si

No

Si

Si

No

Si

Si

Si

X Bloqueo Exclusivo
S Bloqueo Compartido

Vous aimerez peut-être aussi