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 sí. 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.
Control de concurrencia
·
El
problema de las actualizaciones perdidas: cuando dos transacciones concurrentes
borran el efecto una de la otra
·
Recuperaciones
inconsistentes: acceder a información modificada parcialmente por una
transacción de Ian.
Métodos
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.
El ejemplo más común de un bloqueo mutuo es cuando un recurso
A está siendo utilizado por una transacción A que a su vez solicita un recurso
B que está siendo utilizado por una transacción B que solicita el recurso A.
Ejemplos
- El hecho de reservar un asiento en un avión mediante un sistema basado en aplicaciones web, cuando decenas de personas en el mundo pueden reservarlo también, nos da una idea de lo importante y crucial que es el control de concurrencia en un sistema de base de datos a mediana o gran escala.
- Otro ejemplo en el que podemos observar la incidencia del control de concurrencia en el siguiente: en una Base de Datos bancaria podría ocurrir que se paguen dos cheques en forma simultánea sobre una cuenta que no tiene saldo suficiente para cubrirlos en su totalidad, esto es posible evitarlo si se tiene un control de concurrencia.
Comentarios
Publicar un comentario