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 algún 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 operación perdida. Métodos de control de concurrencia Protocolos basados en técnicas de bloqueo Cabe destacar antes de comenzar el estudio de los protocolos basados en bloqueos que son los más utilizados por los SGBD comerciales. Los demás tienen un alcance más teórico que práctico. 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 práctica), y bloqueos de certificación. Las operaciones sobre bloqueos se deben implementar como secciones críticas, 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 señala si una transacción está operando sobre el elemento o está libre para que se pueda operar con él. De esta manera se impide que dos o más transacciones estén operando sobre un mismo elemento al mismo tiempo. La implementación 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 ampliación de los bloqueos binarios. Tenemos que el bloqueo puede tener tres posibles posiciones: libre, bloqueado para lectura, y bloqueado para escritura. De esta forma, más de una transacción puede tener un mismo elemento de datos bloqueado para lectura, pero sólo una para escritura. Si una transacción quiere escribir en ese elemento, habrá de esperar a que el bloqueo quede libre (cualquiera que sea el tipo de bloqueo), y a continuación, bloquearlo para escritura. Si quiere leer, sólo 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 transacción T en un conjunto de dos o más transacciones está esperando a algún elemento que está bloqueado por alguna otra transacción T' de dicho conjunto. En este estado, cada transacción está parada en espera a que otra transacción libere el recurso. Las condiciones para que se produzca en interbloqueo son las siguientes: 1. Exclusión mutua. Cada elemento está bloqueado por una transacción, o está libre. 2. Retención y espera: Una transacción 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 apropiación: Sólo puede liberar un elemento la transacción que lo tiene asignado; no se lo puede quitar otra transacción que tenga mayor prioridad, ni el SGBD. 4. Espera circular: Existe una cadena circular, compuesta por dos transacciones o más, 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 deadlock: Un proceso se encuentra en estado de deadlock si esta esperando por un suceso que no ocurrirá nunca. Se puede producir en la comunicación de procesos y mas frecuentemente en la gestión de recursos.

Otro caso son las aplicaciones estructuradas. La forma más sencilla y conocida es mediante el grafo de espera de transacciones/elementos. La concurrencia es un fenómeno que se presenta en varios contextos. y más interesante si esperamos que haya poca interferencia entre transacciones. los cuales se implementan como un conjunto de procesos. El inconveniente de este sistema es decidir una política adecuada para la frecuencia de la comprobación y la selección de víctimas. elige una transacción víctima para abortarla y así romper el anterior. . Detección del interbloqueo: este enfoque es más práctico. El tratamiento del interbloqueo está orientado bien a prevenirlo.Existen cuatro condiciones necesarias para que se pueda producir deadlock: · Los procesos necesitan acceso exclusivo a los recursos. Protocolos de prevención de interbloqueo Bloqueo en dos fases conservador: consiste en ordenar todos los elementos de la base de datos y asegurarse de que una transacción que necesite varios elementos los bloqueará según ese orden. El sistema revisa periódicamente este grafo. y si encuentra un ciclo. donde la programación estructurada se implementa como un conjunto de procesos concurrentes. · Los procesos necesitan mantener ciertos recursos exclusivos mientras esperan por otros. · Los recursos no se pueden obtener de los procesos que están a la espera. Se tiene que existe interbloqueo si el grafo de espera tiene un ciclo. Su inconveniente es que obliga al programador a conocer la manera en que están ordenados estos elementos. Y por ultimo se tiene que la misma estructuración recién mencionada es utilizada en el diseño de los sistemas operativos. · Existe una cadena circular de procesos en la cual cada proceso posee uno o más de los recursos que necesita el siguiente proceso en la cadena. bien a detectarlo y evitarlo. Uno de ellos es la multiprogramación ya que el tiempo del procesador es compartido dinámicamente por varios procesos.

Seriabilidad por conflicto y y Eliminar conflictos entre dos o mas transacciones Operaciones sobre los mismos datos en mas de una transacción * . se da por hecho que transforman un estado correcto de la base de datos en otro estado correcto.Por lo tanto una ejecución intercalada es correcta cuando equivale a una ejecución serial.Las transacciones individuales son tomadas como correctas es decir. cualquier ejecución de esas transacciones se dice que es una calendarización (³scheduling´) Esta es la ejecución de esta aseveración: 1. En un sistema de estos se necesitan algún tipo de mecanismos de control de concurrencia para asegurar que las transacciones concurrentes no interfieran entre si. Formas de planificar la seriabilidad: 1) por conflicto 2) por visión Por simplicidad solo se consideran las operaciones de lectura y escritura. es decir cuando es seriable.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.Por lo tanto también es correcta la ejecución de una transacción 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í. Un conjunto entrelazado de transacciones es correcto si es serializable. . Dado un conjunto de transacciones entrelazadas. 3. No se consideran las operaciones de cálculo sobre los datos obtenidos. Es decir si produce el mismo resultado mediante la ejecución en serie de las mismas transacciones. SERIABILIDAD La serialización es el criterio de lo correcto. 2. . Es la propiedad que garantiza que un plan de ejecución concurrente es equivalente al secuencial. .. para el control de la concurrencia.

En el modelo de entidad-relación se emplean dos tipos de entidades: entidad fuerte y entidad débil. Por ejemplo. Las entidades fuertes tienen atributos claves. apellido. Se puede considerar como un refinamiento de la equivalencia por conflicto. Pero basándose solo en las operaciones de lectura y escritura. Empleado. en tanto las entidades débiles no tienen atributos claves propios. Una entidad se describe en la estructura de la base de datos empleando un modelo de datos. . la entidad "Alumno" podría tener los atributos: nombre. Cada entidad está constituida por uno o más atributos.y Tipos de operaciones: o T1: lectura y T2: lectura  No hay conflicto o T1: lectura y T2: escritura ó T1: escritura y T2: lectura  Conflicto: hay que respetar el orden o T1: escritura y T2: escritura  Conflicto: el orden afecta al valor final de la BD y Se dice que hay conflicto cuando se consideran operaciones sobre los mismos datos en dos transacciones diferentes Un plan de ejecución se puede transformar en otro cambiando de orden las instrucciones y manteniendo la seriabilidad Todos estos planes son equivalentes al plan secuencial. etc. una entidad es la representación de un objeto o concepto del mundo real que se describe en una base de datos. etc. Artículo. Por ejemplo. y y Seriabilidad por visión y Se basa en definir una regla de equivalencia menos estricta que la de conflicto. año de nacimiento. y y Ordenamiento por entidades En bases de datos. nombres de entidades pueden ser: Alumno.

Sign up to vote on this title
UsefulNot useful