Está en la página 1de 5

CONCURRENCIA EN BASE DE DATOS

El termino concurrencia se refiere al hecho de que los DBMS (SISTEMAS DE ADMINISTRACION DEBD) permiten que muchas transacciones puedan accesar a una misma base de datos a la vez. En un sistema de estos se necesitan algn tipo de mecanismos de control de concurrencia para asegurar que las transacciones concurrentes no interfieran entre si. En sistemas multiusuario, es necesario un mecanismo para controlar la concurrencia. Se pueden producir inconsistencias importantes derivadas del acceso concurrente, como por ejemplo, el problema de la operacin perdida. Mtodos de control de concurrencia Protocolos basados en tcnicas de bloqueo Cabe destacar antes de comenzar el estudio de los protocolos basados en bloqueos que son los ms utilizados por los SGBD comerciales. Los dems tienen un alcance ms terico que prctico. Un bloqueo es una variable asociada a un elemento de datos de la base de datos, usada para restringir las operaciones que se pueden aplicar sobre l. Existen varios tipos de bloqueo: binarios (de propiedades limitadas), compartidos, exclusivos (usados en la prctica), y bloqueos de certificacin. Las operaciones sobre bloqueos se deben implementar como secciones crticas, es decir, de forma indivisible; el SGBD no deber alternar sus instrucciones con otras. Bloqueos binarios Se caracterizan por tener dos valores posibles, bloqueados y desbloqueados. Cada elemento de la base de datos tiene un bloqueo distinto. El bloqueo seala si una transaccin est operando sobre el elemento o est libre para que se pueda operar con l. De esta manera se impide que dos o ms transacciones estn operando sobre un mismo elemento al mismo tiempo. La implementacin de un bloqueo binario es simple; basta con un vector de la siguiente forma: donde el booleano es en s el indicador del bloqueo. Bloqueos de lectura/escritura Son una ampliacin de los bloqueos binarios. Tenemos que el bloqueo puede tener tres posibles posiciones: libre, bloqueado para lectura, y bloqueado para escritura. De esta forma, ms de una transaccin puede tener un mismo elemento de datos bloqueado para lectura, pero slo una para escritura. Si una transaccin quiere escribir en ese elemento, habr de esperar a que el bloqueo quede libre (cualquiera que sea el tipo de bloqueo), y a continuacin, bloquearlo para escritura. Si quiere leer, slo tendr que esperar si el elemento est bloqueado para escritura. Se dice por tanto, que el bloqueo de lectura es compartido y el de escritura exclusivo. Tendremos por tanto tres operaciones; bloquear_escritura(X), bloquear_lectura(X) y desbloquear(X). Problemas del bloqueo en dos fases: interbloqueo y espera indefinida El interbloqueo se produce cuando cada transaccin T en un conjunto de dos o ms transacciones est esperando a algn elemento que est bloqueado por alguna otra transaccin T' de dicho conjunto. En este estado, cada transaccin est parada en espera a que otra transaccin libere el recurso. Las condiciones para que se produzca en interbloqueo son las siguientes: 1. Exclusin mutua. Cada elemento est bloqueado por una transaccin, o est libre. 2. Retencin y espera : Una transaccin que ya tiene elementos bloqueados puede solicitar un elemento adicional, y esperar que se le asigne, sin devolver previamente ninguno de los anteriores. 3. No apropiacin: Slo puede liberar un elemento la transaccin que lo tiene asignado; no se lo puede quitar otra transaccin que tenga mayor prioridad, ni el SGBD. 4. Espera circular: Existe una cadena circular, compuesta por dos transacciones o ms, y otros tantos elementos intercalados, de manera que cada proceso est esperando que se le asigne un elemento, el cual, a su vez, est asignado al siguiente proceso de la cadena. 5. Bloqueo mutuo o dea dlock : Un proceso se encuentra en estado de deadlock si esta esperando por un suceso que no ocurrir nunca. Se puede producir en la comunicacin de procesos y mas frecuentemente en la gestin de recursos.

Existen cuatro condiciones necesarias para que se pueda producir deadlock: Los procesos necesitan acceso exclusivo a los recursos. Los procesos necesitan mantener ciertos recursos exclusivos mientras esperan por otros. Los recursos no se pueden obtener de los procesos que estn a la espera. Existe una cadena circular de procesos en la cual cada proceso posee uno o ms de los recursos que necesita el siguiente proceso en la cadena.

El tratamiento del interbloqueo est orientado bien a prevenirlo, bien a detectarlo y evitarlo. Protocolos de prevencin de interbloqueo Bloqueo en dos fases conserv ador: consiste en ordenar todos los elementos de la base de datos y asegurarse de que una transaccin que necesite varios elementos los bloquear segn ese orden. Su inconveniente es que obliga al programador a conocer la manera en que estn ordenados estos elementos. Deteccin del interbloqueo: este enfoque es ms prctico, y ms interesante si esperamos que haya poca interferencia entre transacciones. La forma ms sencilla y conocida es mediante el grafo de espera de transacciones/elementos. Se tiene que existe interbloqueo si el grafo de espera tiene un ciclo. El sistema revisa peridicamente este grafo, y si encuentra un ciclo, elige una transaccin vctima para abortarla y as romper el anterior. El inconveniente de este sistema es decidir una poltica adecuada para la frecuencia de la comprobacin y la seleccin de vctimas.

La concurrencia es un fenmeno que se presenta en varios contextos. Uno de ellos es la multiprogramacin ya que el tiempo del procesador es compartido dinmicamente por varios procesos. Otro caso son las aplicaciones estructuradas, donde la programacin estructurada se implementa como un conjunto de procesos concurrentes. Y por ultimo se tiene que la misma estructuracin recin mencionada es utilizada en el diseo de los sistemas operativos, los cuales se implementan como un conjunto de procesos.

El termino concurrencia se refiere al hecho de que los DBMS(SISTEMAS DE ADMINISTRACION DE BD)permiten que muchas transacciones puedan accesar a una misma base de datos a la vez.. En un sistema de estos se necesitan algn tipo de mecanismos de control de concurrencia para asegurar que las transacciones concurrentes no interfieran entre si. SERIABILIDAD La serializacin es el criterio de lo correcto, para el control de la concurrencia. Un conjunto entrelazado de transacciones es correcto si es serializable. Es decir si produce el mismo resultado mediante la ejecucin en serie de las mismas transacciones. Dado un conjunto de transacciones entrelazadas, cualquier ejecucin de esas transacciones se dice que es una calendarizacin (scheduling) Esta es la ejecucin de esta aseveracin: 1. - Las transacciones individuales son tomadas como correctas es decir, se da por hecho que transforman un estado correcto de la base de datos en otro estado correcto. 2. - Por lo tanto tambin es correcta la ejecucin de una transaccin a la vez en cualquier orden serial y se dice en cualquier orden serial debido a que las transacciones individuales son consideradas independientes entre s. 3. - Por lo tanto una ejecucin intercalada es correcta cuando equivale a una ejecucin serial, es decir cuando es seriable. Es la propiedad que garantiza que un plan de ejecucin concurrente es equivalente al secuencial. Formas de planificar la seriabilidad: 1) por conflicto 2) por visin Por simplicidad solo se consideran las operaciones de lectura y escritura. No se consideran las operaciones de clculo sobre los datos obtenidos. Seriabilidad por conflicto
y y

Eliminar conflictos entre dos o mas transacciones Operaciones sobre los mismos datos en mas de una transaccin *

Tipos de operaciones:
o

T1: lectura y T2: lectura




No hay conflicto

T1: lectura y T2: escritura T1: escritura y T 2: lectura




Conflicto: hay que respetar el orden

T1: escritura y T2: escritura




Conflicto: el orden afecta al valor final de la BD

Se dice que hay conflicto cuando se consideran operaciones sobre los mismos datos en dos transacciones diferentes Un plan de ejecucin se puede transformar en otro cambiando de orden las instrucciones y manteniendo la seriabilidad Todos estos planes son equivalentes al plan secuencial.

Seriabilidad por visin


y

Se basa en definir una regla de equivalencia menos estricta que la de conflicto. Pero basndose solo en las operaciones de lectura y escritura. Se puede considerar como un refinamiento de la equivalencia por conflicto.

y y

Ordenamiento por entidades


En bases de datos, una entidad es la representacin de un objeto o concepto del mundo real que se describe en una base de datos. Una entidad se describe en la estructura de la base de datos empleando un modelo de datos. Por ejemplo, nombres de entidades pueden ser: Alumno, Empleado, Artculo, etc. Cada entidad est constituida por uno o ms atributos. Por ejemplo, la entidad "Alumno" podra tener los atributos: nombre, apellido, ao de nacimiento, etc. En el modelo de entidad-relacin se emplean dos tipos de entidades: entidad fuerte y entidad dbil. Las entidades fuertes tienen atributos claves, en tanto las entidades dbiles no tienen atributos claves propios.

También podría gustarte