P. 1
Concurrencia en Base de Datos

Concurrencia en Base de Datos

|Views: 13.540|Likes:
Publicado porHector Gerardo G

More info:

Published by: Hector Gerardo G on May 12, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

08/21/2013

pdf

text

original

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.

Uno de ellos es la multiprogramación ya que el tiempo del procesador es compartido dinámicamente por varios procesos. Se tiene que existe interbloqueo si el grafo de espera tiene un ciclo. Otro caso son las aplicaciones estructuradas. · Los recursos no se pueden obtener de los procesos que están a la espera. Detección del interbloqueo: este enfoque es más práctico. elige una transacción víctima para abortarla y así romper el anterior. · 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. . La concurrencia es un fenómeno que se presenta en varios contextos. 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. Su inconveniente es que obliga al programador a conocer la manera en que están ordenados estos elementos. y más interesante si esperamos que haya poca interferencia entre transacciones. 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. El sistema revisa periódicamente este grafo. Y por ultimo se tiene que la misma estructuración recién mencionada es utilizada en el diseño de los sistemas operativos. bien a detectarlo y evitarlo. La forma más sencilla y conocida es mediante el grafo de espera de transacciones/elementos. y si encuentra un ciclo. El tratamiento del interbloqueo está orientado bien a prevenirlo. donde la programación estructurada se implementa como un conjunto de procesos concurrentes. · Los procesos necesitan mantener ciertos recursos exclusivos mientras esperan por otros.Existen cuatro condiciones necesarias para que se pueda producir deadlock: · Los procesos necesitan acceso exclusivo a los recursos. los cuales se implementan como un conjunto de procesos.

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

etc. en tanto las entidades débiles no tienen atributos claves propios. una entidad es la representación de un objeto o concepto del mundo real que se describe en una base de datos. . nombres de entidades pueden ser: Alumno. etc. Pero basándose solo en las operaciones de lectura y escritura. Cada entidad está constituida por uno o más atributos. apellido. y y Seriabilidad por visión y Se basa en definir una regla de equivalencia menos estricta que la de conflicto. Empleado. año de nacimiento. En el modelo de entidad-relación se emplean dos tipos de entidades: entidad fuerte y entidad débil. Se puede considerar como un refinamiento de la equivalencia por conflicto. la entidad "Alumno" podría tener los atributos: nombre. y y Ordenamiento por entidades En bases de datos. Por ejemplo. Las entidades fuertes tienen atributos claves.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. Artículo. Por ejemplo. Una entidad se describe en la estructura de la base de datos empleando un modelo de datos.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->