Free Web Site - Free Web Space and Site Hosting - Web Hosting - Internet Store and Ecommerce Solution Provider - High Speed Internet
Search the Web


Bases de Datos II. Concurrencia.
 

Para garantizar la serializabilidad pueden utilizarse varios esquemas de control de concurrencia.  Todos trabajan retrasando una operación o abortando la transacción que solicitó la operación.  Los más comunes son:
 

· Protocolos de bloqueo.  Un bloqueo es una acción que impide el acceso a los datos bloqueados por parte de
                                           cualquier otra transacción, hasta que estos hayan sido desbloqueados.  Así, un protocolo
                                           de bloqueo es un conjunto de reglas que definen cuando una transacción puede bloquear
  y desbloquear cada uno de los datos de la base de datos, con lo cual se puede lograr la consistencia en las
  transacciones concurrentes.

· Ordenación por hora de entrada.  Un esquema de ordenación por hora de entrada garantiza la serializabilidad
                                                             seleccionando por adelantado una ordenación entre cada par de
                                                             transacciones.  A cada transacción del sistema se le asocia una hora de
   entrada única fija, esta se puede asignar utilizando el valor del reloj del sistema o utilizando un contador que
   se incremente después de asignar una nueva hora de entrada.  Las horas de entrada de las
   transacciones  determinan el orden de serializabilidad.  Así, si la hora de entrada de la transacción A es menor
   que la de B, el esquema garantiza que la planificación que se produce es equivalente a una serie en la que la
   transacción A aparece antes de B.  Esto se logra haciendo que una transacción retroceda siempre que viole el
   orden establecido.

· Validación.  Un esquema de validación es un método de control de concurrencia adecuado en los casos en los que
                       la mayor parte de las transacciones son sólo de lectura, y, así la incidencia de conflictos entre estas
                       transacciones puede ser muy baja.  A cada transacción del sistema se le asocia una hora de entrada
  única fija.  El orden de serializabilidad se determina por la hora de entrada de la transacción.  Una transacción
  en  este esquema nunca se retrasa.  Sin embargo debe pasar una prueba de validación para poderse completar.
  Si una transacción no pasa la prueba de validación retrocederá a su estado inicial.

· Multiversión.  Un esquema de control de concurrencia multiversión supone que cada operación write(Q) crea una
                          nueva versión de Q.  Cuando se solicita una operación read(Q), el sistema selecciona una de las
                          versiones de Q para ser leída.  El esquema de control de concurrencia se encarga de que la
  selección de la versión que se va a leer se haga de una manera que garantice la serializabilidad.  Esto se logra
  mediante el uso de horas de entrada.  Una operación de lectura siempre se lleva a cabo con éxito, mientras que
  una operación de escritura puede ocasionar el retroceso de la transacción.
 

Fuente bibliográfica:   “Fundamentos de Bases de Datos”. Henry F. Kort, Abraham Silberschatz.
                                       Segunda edición. Editorial  Mc Graw Hill.