Control de concurrencia bd relacionales

Páginas: 6 (1458 palabras) Publicado: 19 de junio de 2010
Control de concurrencia en bases de datos relacionales
La mayoría de las bases de datos se utilizan en entornos multi-usuario, en los que muchos clientes utilizando la misma aplicación, o muchas aplicaciones cada una con uno o muchos clientes acceden a la misma base de datos. Cada una de esas aplicaciones enviará consultas al gestor, y normalmente cada hilo de ejecución será una transaccióndiferente.
En la mayoría de los sistemas operativos actuales, las diferentes tareas o hilos se ejecutan de forma intercalada (incluso en el caso de máquinas con varios procesadores). Es decir, el sistema operativo decide por su cuenta cuando suspender una de las tareas y darle un poco de tiempo de ejecución a otra. Si hay tareas simultáneas o concurrentes sobre la misma base de datos, estaintercalación puede resultar en que las lecturas y escrituras de las diferentes tareas o aplicaciones en el medio físico se realicen en cualquier orden y secuencia.
El acceso simultáneo descrito puede dar como resultados información inconsistente o simplemente incorrecta, dependiendo de la mala o buena suerte que tengamos en la intercalación de las lecturas y escrituras simultáneas. Esta problemática hallevado a diseñar e implementar diferentes estrategias de control de concurrencia, que se encargan de evitar todos esos problemas, de modo que los desarrolladores de las aplicaciones pueden “olvidarse” de ellos al escribir su código.
Por ejemplo, si tenemos una estructura de tablas relacional que incluye las siguientes:
PEDIDO(id, num-cliente, id-prod, cantidad, precio)
PRODUCTO(id-prod,nombre, ..., stock)
...
Pueden ocurrir diferentes problemas relacionados con la escritura simultánea con otras escrituras o lecturas, incluyendo los siguientes:
1. Dos sentencias UPDATE que actualicen un mismo producto decrementando el stock del mismo en una unidad podrían terminar en que una de ellas no se realizase. Si pensamos en un UPDATE como una secuencia de una lectura y una escritura,puede que ambos UPDATE hagan la lectura, por ejemplo, de un stock de 10, y después las escrituras, decrementan ese dato, quedando el resultado en 9, mientras que lo correcto era un resultado de 8.
2. Supongamos una sentencia que primero comprueba que hay stock del producto P, y después inserta un nuevo PEDIDO de diez unidades del producto P, que tiene un stock de 10, seguido de un UPDATE al stockpor esa cantidad. Puede que otra inserción de un pedido se ejecute antes del UPDATE pero después de la comprobación, haciendo quedar el stock del producto en negativo.
Existen varias técnicas para controlar la concurrencia. Los bloqueos son los más conocidos, aunque también se utiliza el control multi-versión y otras técnicas como las marcas de tiempo.
Los bloqueos como solución al problema de laconcurrencia
Una forma de controlar la concurrencia es hacer que cada transacción deba adquirir un derecho de acceso exclusivo a cada fragmento de datos que necesite modificar. A estos “derechos” se les denomina bloqueos.
Bloqueos binarios
La forma más simple de bloquear es utilizar bloqueos binarios. En un bloqueo binario, cada transacción debe solicitar el bloqueo de cada fragmento de datosA que vaya a utilizar antes de acceder a él (sea para leerlo o escribirlo), mediante una operación bloquear(A). Deberá liberar todos los bloqueos, mediante una operación desbloquear(A) de modo que otras tareas puedan tomarlos.
Este sistema de bloqueos tiene una implementación muy simple, ya que solo requiere mantener una tabla que indica qué partes de los datos está bloqueada y por quétransacción.
Bloqueos de lectura/escritura
El sistema de bloqueos binarios es simple pero demasiado restrictivo, ya que no permite que dos transacciones que van a leer el mismo fragmento de datos A lo hagan simultáneamente, cuando en realidad, no puede haber problemas en varios lectores simultáneos. Los bloqueos de lectura/escritura hacen más débil la restricción permitiendo la siguiente compatibilidad...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Control De Concurrencia
  • Control Concurrente
  • control de concurrencia
  • Control De Concurrencia
  • control de concurrencias
  • Bd
  • Algebra Relacional Bd
  • Control de concurrencia

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS