SlideShare una empresa de Scribd logo
CLASE 9 y 10

ADMINISTRACIÓN DE BASE DE DATOS

CONTROL DE CONCURRENCIA

                          AUTORES:

                          Prof. Roxydel Dulcey

                          Prof. Josué Ramírez

            Marzo, 2011
Control de Concurrencia

• Cuando se ejecutan varias transacciones
  concurrentemente en la base de datos,
  puede que deje de conservarse la
  propiedad de aislamiento.

• Es necesario que el sistema controle la
  interacción entre las transacciones
  concurrentes.
Control de Concurrencia

• Este control se lleva a cabo a través de
  uno de los muchos mecanismos
  existentes llamado esquemas de control
  de concurrencia.
Control de Concurrencia

• Los esquemas de control de concurrencia
  que veremos a continuación se basan en
  la propiedad de secuencialidad.

• Es decir, aseguran que las planificaciones
  sean secuenciables.
Control de Concurrencia

• Una forma de asegurar la secuencialidad
  es exigir que el acceso a los elementos de
  datos se haga en exclusión mutua; es
  decir, mientras una transacción accede a
  un elemento de datos, ninguna otra
  transacción     puede    modificar   dicho
  elemento.
Control de Concurrencia

• El método más habitual que se usa para
  implementar este requisito es permitir que
  una transacción acceda a un elemento de
  datos sólo si posee actualmente un
  bloqueo sobre dicho elemento.
Tipos de Bloqueo

• Bloqueo Compartido.

• Bloqueo Exclusivo.
Bloqueos

• Bloqueo Compartido:
  Si una transacción Ti obtiene un bloqueo
  en modo compartido (denotado por C)
  sobre el elemento Q, entonces Ti puede
  leer Q pero no lo puede escribir.
Bloqueos

• Bloqueo Exclusivo:
  Si una transacción Ti obtiene un bloqueo
  en modo exclusivo (denotado por X)
  sobre el elemento Q, entonces Ti puede
  tanto leer como escribir Q.
Bloqueos

• Es necesario que toda transacción
  solicite un bloqueo del modo apropiado
  sobre el elemento de datos Q
  dependiendo de los tipos de operaciones
  que se vayan a realizar sobre Q.
Bloqueos

• La petición se hace al gestor de control de
  concurrencia.

• La transacción puede realizar la operación
  sólo después de que el gestor de control
  de concurrencia conceda el bloqueo a la
  transacción.
Matriz de Compatibilidad de
            bloqueos




• Nótese que el modo compartido es compatible
  con otro modo compartido, pero no con el modo
  exclusivo.
Compatibilidad de bloqueos

• En todo momento se pueden tener varios
  bloqueos en modo compartido (por varias
  transacciones) sobre un elemento de datos en
  concreto.

• Una petición posterior de bloqueo en modo
  exclusivo debe esperar hasta que se liberen los
  bloqueos en modo compartido que estén en ese
  momento.
Bloqueos

Instrucciones de bloqueo:
• Bloquear-C(Q): solicita un bloqueo
  compartido sobre el elemento de datos Q.

• Bloquear-X(Q): solicita un bloqueo
  exclusivo sobre el elemento de datos Q.
Bloqueos

• Desbloquear(Q):      desbloquea   un
  elemento de datos Q.
Bloqueos

• Para acceder a un elemento de datos, una
  transacción Ti debe en primer lugar bloquear
  dicho elemento.

• Si éste ya se encuentra bloqueado por otra
  transacción en un modo incompatible, el gestor
  de control de concurrencia no concederá el
  bloqueo hasta que todos los bloqueos
  incompatibles que posean otras transacciones
  hayan sido liberados.
Bloqueos

• De este modo Ti debe esperar hasta que
  se    liberen  todos    los   bloqueos
  incompatibles   que    posean     otras
  transacciones.

• La transacción Ti puede desbloquear un
  elemento de datos que haya bloqueado en
  algún momento anterior.
Bloqueos

• Nótese que la transacción debe poseer un
  bloqueo sobre un elemento de datos durante
  todo el tiempo que acceda a dicho elemento.

• Además, no siempre es aconsejable que una
  transacción desbloquee un elemento de datos
  inmediatamente después de finalizar su acceso
  sobre él, ya que puede dejar de asegurarse la
  secuencialidad.
Ejemplo 1
• La transacción T1 transfiere 50 € desde la
  cuenta B a la A.
Ejemplo 1
• La transacción T2 visualiza la cantidad total de
  dinero de las cuentas A y B, es decir, la suma A
  + B.
Bloqueos

• Supóngase que los valores de las cuentas
  A y B son 100 € y 200 € respectivamente.
  Si estas dos transacciones se ejecutan
  secuencialmente, tanto en el orden T1, T2
  como en el orden T2, T1, entonces la
  transacción T2 visualizará el valor 300 €.
Bloqueos

• Si por el contrario estas transacciones se
  ejecutan concurrentemente, entonces
  puede darse la siguiente planificación.
Planificación 1
Bloqueos

• En ese caso la transacción T2 visualiza
  250 €, lo cual es incorrecto.

• Dado que la transacción T1 desbloquea el
  elemento B demasiado pronto, lo cual
  provoca que T2 perciba un estado
  inconsistente.
Bloqueos

• La planificación muestra los puntos en los
  que el gestor de control de concurrencia
  concede los bloqueos.

• La transacción que realiza una petición de
  bloqueo no puede ejecutar su siguiente
  acción hasta que el gestor de control de
  concurrencia conceda dicho bloqueo.
Ejemplo 2

• Supóngase ahora que el desbloqueo se retrasa
  hasta el final de la transacción:

                        La transacción T3 corresponde a
                        T1 con el desbloqueo retrasado
Ejemplo 2

      La transacción T4 corresponde a
      T2 con el desbloqueo retrasado




   Se puede verificar que la secuencia
   de lecturas y escrituras de la
   planificación 1, que provoca que se
   visualice un total incorrecto de 250 €,
   ya no es posible con T3 y T4.
Interbloqueos

• El uso de bloqueos puede conducir a una
  situación no deseada, denominada
  interbloqueos.
Interbloqueos


  • T3 posee en bloqueo sobre B en modo exclusivo y
  T4 solicita un bloqueo sobre B en modo compartido,
  T4 espera a que T3 desbloquee B.



  • T4 posee un bloqueo sobre A en modo compartido y
  T3 solicita un bloqueo sobre A en modo exclusivo,
  T3 espera a que T4 desbloquee A.
Interbloqueos

• Así se llega a un estado en el cual
  ninguna de las transacciones puede
  continuar su ejecución normal. Esta
  situación se denomina interbloqueo.
Interbloqueos

• Cuando aparece un interbloqueo, el sistema
  debe retroceder una de las dos transacciones.

• Una vez que una de ellas se ha retrocedido, se
  desbloquean los elementos de datos que
  estuvieran bloqueados por la transacción.

• Estos elementos de datos están disponibles
  entonces para otra transacción, la cual puede
  continuar su ejecución.
Bloqueos

• Si no se usan bloqueos, o se desbloquean los
  elementos de datos tan pronto como sea posible
  después de leerlos o escribirlos, se pueden
  obtener estados inconsistentes.

• Y si no se desbloquea un elemento de datos
  antes de solicitar un bloqueo sobre otro, pueden
  producirse interbloqueos.
Bloqueos

• Sin      embargo,     en     general, los
  interbloqueos son un mal necesario
  asociado a los bloqueos si se quieren
  evitar los estados inconsistentes.
Bloqueos

• Los interbloqueos son absolutamente
  preferibles a los estados inconsistentes,
  ya que se pueden tratar retrocediendo las
  transacciones, mientras que los estados
  inconsistentes producen problemas en el
  mundo real que el sistema de base de
  datos no puede manejar.
Protocolos de bloqueo

• Se exige que toda transacción del sistema
  siga un conjunto de reglas llamado
  protocolo de bloqueo, que indica el
  momento en que una transacción puede
  bloquear y desbloquear cada uno de los
  elementos de datos.
Protocolos de bloqueo

• Los protocolos de bloqueo restringen el
  número de planificaciones posibles.

• El conjunto de tales planificaciones es un
  subconjunto de todas las planificaciones
  secuenciables posibles.
Protocolos de bloqueo

  Definiciones:
• Sean {T0,T1,           , Tn} un conjunto de
  transacciones que participan en la planificación
  S. Se dice que Ti precede a Tj en S, denotado
  por Ti → Tj, si existe un elemento de datos Q tal
  que Ti ha obtenido un bloqueo en modo A sobre
  Q, y Tj ha obtenido un bloqueo en modo B sobre
  Q más tarde y comp(A,B) = falso.
Protocolos de bloqueo

• Si Ti → Tj entonces esta precedencia
  implica que en cualquier planificación
  secuencial equivalente, Ti debe aparecer
  antes que Tj.
Protocolos de bloqueo

• Este grafo es similar al grafo de
  precedencia    que    utilizamos   para
  comprobar la secuencialidad en cuanto a
  conflictos.

• Los    conflictos   entre   instrucciones
  corresponden a      modos   de bloqueo
  incompatibles.
Protocolos de bloqueo

  Planificación legal:
• Una planificación S es legal bajo un
  protocolo de bloqueo dado si S es una
  planificación posible para un conjunto de
  transacciones que sigan las reglas del
  protocolo de bloqueo.
Protocolos de bloqueo

• Se dice que un protocolo asegura la
  secuencialidad en cuanto a conflictos si y sólo si
  todas     las   planificaciones    legales    son
  secuenciables en cuanto a conflictos; en otras
  palabras, para todas las planificaciones legales
  la relación → asociada es acíclica.
Concesión de bloqueos

• Cuando una transacción solicita un
  bloqueo de un modo particular sobre un
  elemento de datos y ninguna otra
  transacción posee un bloqueo sobre el
  mismo elemento de datos en un modo
  conflictivo, se puede conceder el bloqueo.
Concesión de bloqueos

• Supóngase que la transacción T2 posee
  un bloqueo en modo compartido sobre un
  elemento de datos y que la transacción T1
  solicita un bloqueo en modo exclusivo
  sobre dicho elemento de datos.

• Se sabe que T1 debe esperar a que T2
  libere el bloqueo en modo compartido.
Concesión de bloqueos

• Pero, es posible que haya una secuencia de
  transacciones que soliciten un bloqueo en modo
  compartido sobre ese elemento de datos, y que
  cada una de ellas libere el bloqueo un poco
  después de que sea concedido, de forma que
  T1 nunca obtenga el bloqueo en modo exclusivo
  sobre dicho elemento.
Concesión de bloqueos

• La transacción T1 nunca progresa y se
  dice que tiene inanición.
Concesión de bloqueos

 ¿Cómo se puede evitar la inanición de las
 transacciones?

• Al conceder los bloqueos de la siguiente
  manera:

• Cuando una transacción Ti solicita un bloqueo
  sobre un elemento de datos Q en un modo
  particular M, el gestor de control de
  concurrencia concede el bloqueo siempre que
  se cumpla:
Concesión de bloqueos

1. No existe otra transacción que posea un
   bloqueo sobre Q en un modo que esté
   en conflicto con M.

2. No existe otra transacción que esté
   esperando un bloqueo sobre Q y que lo
   haya solicitado antes que Ti.
Concesión de bloqueos

• De este modo, una petición de bloqueo
  nunca se quedará bloqueada por otra
  petición solicitada posteriormente.
Protocolo de bloqueo de 2 fases

• Este protocolo asegura la secuencialidad.

• Exige que cada transacción realice las
  peticiones de bloqueo y desbloqueo en
  dos fases:
     • Fase de crecimiento.
     • Fase de decrecimiento.
Protocolo de bloqueo de 2 fases

1. Fase de crecimiento. Una transacción
   puede obtener bloqueos pero no puede
   liberarlos.

2. Fase de decrecimiento. Una transacción
    puede liberar bloqueos pero no puede
    obtener ninguno nuevo.
Protocolo de bloqueo de 2 fases

• Inicialmente una transacción está en la fase de
  crecimiento.

• La transacción adquiere los bloqueos que
  necesite.

• Una vez que la transacción libera un bloqueo,
  entra en la fase de decrecimiento y no puede
  realizar más peticiones de bloqueo.
Protocolo de bloqueo de 2 fases

 Ejemplo:

• Las transacciones T3 y T4 son de dos
  fases.

• Las transacciones T1 y T2 no son de dos
  fases.
Ejemplo
Ejemplo
Protocolo de bloqueo de 2 fases

• Nótese que no es necesario que las
  instrucciones de desbloqueo aparezcan al final
  de la transacción.

• Por ejemplo, en el caso de la transacción T3 se
  puede trasladar la instrucción desbloquear(B)
  justo después de la instrucción bloquear-X(A) y
  se sigue cumpliendo la propiedad del bloqueo
  de dos fases.
Protocolo de bloqueo de 2 fases

  Punto de bloqueo:
• Es el punto de la planificación en el cual la
  transacción obtiene su bloqueo final (el
  final de la fase de crecimiento).
Protocolo de bloqueo de 2 fases

• El protocolo de bloqueo de dos fases
  asegura la secuencialidad en cuanto a
  conflictos.

• No asegura la ausencia de interbloqueos.
Protocolo de bloqueo de 2 fases

• Por ejemplo: las transacciones T3 y T4
  son de dos fases, pero en la planificación
  2 llegan a un interbloqueo.

• En el bloqueo de dos fases puede ocurrir
  el retroceso en cascada.
Ejemplo 3




• Cada transacción sigue el protocolo de bloqueo de dos fases pero
un fallo de T5 después del paso leer(A) de T7 lleva a un
retroceso en cascada de T6 y T7.
Protocolo de bloqueo estricto de 2
              fases

• Los retrocesos en cascada se pueden
  evitar por medio de una modificación del
  protocolo de bloqueo de dos fases que se
  denomina protocolo de bloqueo estricto
  de dos fases.
Protocolo de bloqueo estricto de 2
              fases

• Este protocolo exige que, además de que
  el bloqueo sea de dos fases, una
  transacción debe poseer todos los
  bloqueos en modo exclusivo que tome
  hasta que dicha transacción se complete.
Protocolo de bloqueo estricto de 2
              fases

• Este requisito asegura que todo dato que
  escribe una transacción no comprometida
  está bloqueado en modo exclusivo hasta
  que la transacción se completa, evitando
  que ninguna otra transacción lea el dato.
Protocolo de bloqueo riguroso de 2
               fases

• Otra variante del bloqueo de dos fases es
  el protocolo de bloqueo riguroso de
  dos fases, el cual exige que se posean
  todos los bloqueos hasta que se
  comprometa (COMMIT) la transacción.
Ejemplo 4
• Si se emplea el protocolo de bloqueo de
  dos fases entonces T8 debe bloquear a1
  en modo exclusivo.
• Por tanto, toda ejecución concurrente de
  ambas transacciones conduce a una
  ejecución secuencial.
• Nótese sin embargo que T8 sólo necesita
  el bloqueo en modo exclusivo sobre a1 al
  final de su ejecución, cuando escribe a1.
• Así, si T8 pudiera bloquear inicialmente
  a1 en modo compartido y después
  pudiera cambiar el bloqueo a modo
  exclusivo, se obtendría una mayor
  concurrencia, ya que T8 y T9 podrían
  acceder a a1 y a2 simultáneamente.
Protocolo de bloqueo de 2 fases


• Esta observación lleva a un refinamiento
  del protocolo de bloqueo de dos fases
  básico en el cual se permiten
  conversiones de bloqueo.
Protocolo de bloqueo de 2 fases

• Esto se refiere a un mecanismo para cambiar un
  bloqueo compartido por un bloqueo exclusivo y
  un bloqueo exclusivo por uno compartido.

• Se denota la conversión del modo compartido al
  modo exclusivo como subir, y la conversión del
  modo exclusivo al modo compartido como bajar.
Protocolo de bloqueo de 2 fases


• No se puede permitir la conversión de
  modos arbitrariamente.

• Por el contrario, la subida puede tener
  lugar sólo en la fase de crecimiento,
  mientras que la bajada puede tener lugar
  sólo en la fase de decrecimiento.
Ejemplo 5


• Las transacciones T8 y T9 se pueden
  ejecutar  concurrentemente  bajo  el
  protocolo de bloqueo de dos fases
  refinado.
Ejemplo 5

  • Nótese que se puede forzar a
    esperar a una transacción que
    intente subir un bloqueo sobre
    un elemento Q.

  • Esta espera forzada tiene lugar
    si    Q     está    bloqueado
    actualmente       por       otra
    transacción      en      modo
    compartido.
Protocolo de bloqueo de 2 fases


• Un esquema simple pero de uso
  extendido genera automáticamente las
  instrucciones apropiadas de bloqueo y
  desbloqueo     para     una     transacción,
  basándose en peticiones de lectura y
  escritura desde la transacción:
Protocolo de bloqueo de 2 fases


1.Cuando una transacción Ti realiza una
  operación leer(Q), el sistema genera una
  instrucción bloquear-C(Q) seguida de una
  instrucción leer(Q).
Protocolo de bloqueo de 2 fases

2. Cuando Ti realiza una operación escribir(Q), el
   sistema comprueba si Ti posee ya un bloqueo
   en modo compartido sobre Q. Si es así,
   entonces el sistema genera una instrucción
   subir(Q) seguida de la instrucción escribir(Q). En
   otro caso el sistema genera una instrucción
   bloquear-X(Q) seguida de la instrucción
   escribir(Q).
Protocolo de bloqueo de 2 fases


3.Todos los bloqueos que obtenga una
  transacción no se desbloquean hasta que
  dicha    transacción   se   comprometa
  (COMMIT) o aborte (ABORT).
Protocolo de bloqueo de 2 fases

• Los protocolos de bloqueo de dos fases básico y
  de bloqueo de dos fases con conversión de
  bloqueos     generan    sólo     planificaciones
  secuenciables en cuanto a conflictos.

• Además, si se poseen los bloqueos hasta el final
  de la transacción, las planificaciones son sin
  cascada.

Más contenido relacionado

PPTX
Estructura de datos - Unidad 2: Recursividad
PPTX
Estructura de Datos - Unidad 5 metodos de ordenamiento
PPTX
grafos conexos
PDF
Ejercicios resueltos grafos
PPTX
Ordenamientos por selección y Shell
PPTX
Ordenamiento Simple
PPTX
Busqueda Binaria
Estructura de datos - Unidad 2: Recursividad
Estructura de Datos - Unidad 5 metodos de ordenamiento
grafos conexos
Ejercicios resueltos grafos
Ordenamientos por selección y Shell
Ordenamiento Simple
Busqueda Binaria

La actualidad más candente (9)

PPTX
Algoritmo ricart y Agrawala
PDF
Algoritmos de Ordenamiento externo
PPTX
Ordenamiento parte 2
PPTX
Ordenamientos burbuja e inserción
PPTX
MÉTODO SIMPLEX.pptx
PDF
Álgebra Booleana.
PPTX
Método de ordenamiento por selección (selection sort
PPT
Problema de Asignación
PPTX
Método de ordenación por inserción directa
Algoritmo ricart y Agrawala
Algoritmos de Ordenamiento externo
Ordenamiento parte 2
Ordenamientos burbuja e inserción
MÉTODO SIMPLEX.pptx
Álgebra Booleana.
Método de ordenamiento por selección (selection sort
Problema de Asignación
Método de ordenación por inserción directa
Publicidad

Destacado (8)

DOCX
Matris de propuestas de estrategias
PDF
Seminario 6 tcpe tipos transición
PDF
Curso fundamentos itil_v3
ODP
DISEÑO DE SERVICIO ITIL
PDF
ITIL V3
PDF
Ciclo de vida del servicio itil (operación del servicio-)
PDF
Matriz de consistencia
PPTX
Protocolo de atención a un cliente por teléfono
Matris de propuestas de estrategias
Seminario 6 tcpe tipos transición
Curso fundamentos itil_v3
DISEÑO DE SERVICIO ITIL
ITIL V3
Ciclo de vida del servicio itil (operación del servicio-)
Matriz de consistencia
Protocolo de atención a un cliente por teléfono
Publicidad

Similar a Abd clase 9 y 10 (20)

PPT
Transacciones y seguridad
DOCX
Control de concurrencias investigación
PPTX
Administración de transacciones, problemas, candados e interbloqueos
PDF
transacciones Base de datos con SQL SERVER
PPTX
RECICLAJE
PPT
BD: Cuestiones de Repaso del Capitulo 20.
PPT
Concurrencia 2 ABD UCV
PPT
Gestion de transacciones
PPT
Gestion de transacciones
PPT
Transacciones
PPT
Concurrencia 1 ABD UCV
DOC
transaction-management
DOCX
Investigación Control de-concurrencia - Sindy
PPT
Gestion de transacciones
DOCX
Inv 1 algoritmos de control de concurrencias
PPT
Cuestiones de Repaso Capitulo 20
PPTX
Simultaneidad impedidos por los bloqueos
PPT
cuestiones de repaso capitulo 20
PPTX
Transacciones y bloqueos usando base de datos mysql
PPT
B. manejo de concurrencia
Transacciones y seguridad
Control de concurrencias investigación
Administración de transacciones, problemas, candados e interbloqueos
transacciones Base de datos con SQL SERVER
RECICLAJE
BD: Cuestiones de Repaso del Capitulo 20.
Concurrencia 2 ABD UCV
Gestion de transacciones
Gestion de transacciones
Transacciones
Concurrencia 1 ABD UCV
transaction-management
Investigación Control de-concurrencia - Sindy
Gestion de transacciones
Inv 1 algoritmos de control de concurrencias
Cuestiones de Repaso Capitulo 20
Simultaneidad impedidos por los bloqueos
cuestiones de repaso capitulo 20
Transacciones y bloqueos usando base de datos mysql
B. manejo de concurrencia

Más de Yusmar Devia (8)

PDF
Abd clase 7
PDF
Abd clase 8
PDF
Tripticoinfluenza
PDF
Abd clase 5 y 6
PDF
Abd clase 3
PDF
Abd clase 2
PDF
Abd clase 4
PDF
Abd clase 1
Abd clase 7
Abd clase 8
Tripticoinfluenza
Abd clase 5 y 6
Abd clase 3
Abd clase 2
Abd clase 4
Abd clase 1

Último (20)

PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PDF
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
PPTX
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
PDF
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
PPTX
Presentación de la Cetoacidosis diabetica.pptx
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PPTX
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
Tomo 1 de biologia gratis ultra plusenmas
Escuelas Desarmando una mirada subjetiva a la educación
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
Ernst Cassirer - Antropologia Filosofica.pdf
Presentación de la Cetoacidosis diabetica.pptx
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
PLANES DE área ciencias naturales y aplicadas
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf

Abd clase 9 y 10

  • 1. CLASE 9 y 10 ADMINISTRACIÓN DE BASE DE DATOS CONTROL DE CONCURRENCIA AUTORES: Prof. Roxydel Dulcey Prof. Josué Ramírez Marzo, 2011
  • 2. Control de Concurrencia • Cuando se ejecutan varias transacciones concurrentemente en la base de datos, puede que deje de conservarse la propiedad de aislamiento. • Es necesario que el sistema controle la interacción entre las transacciones concurrentes.
  • 3. Control de Concurrencia • Este control se lleva a cabo a través de uno de los muchos mecanismos existentes llamado esquemas de control de concurrencia.
  • 4. Control de Concurrencia • Los esquemas de control de concurrencia que veremos a continuación se basan en la propiedad de secuencialidad. • Es decir, aseguran que las planificaciones sean secuenciables.
  • 5. Control de Concurrencia • Una forma de asegurar la secuencialidad es exigir que el acceso a los elementos de datos se haga en exclusión mutua; es decir, mientras una transacción accede a un elemento de datos, ninguna otra transacción puede modificar dicho elemento.
  • 6. Control de Concurrencia • El método más habitual que se usa para implementar este requisito es permitir que una transacción acceda a un elemento de datos sólo si posee actualmente un bloqueo sobre dicho elemento.
  • 7. Tipos de Bloqueo • Bloqueo Compartido. • Bloqueo Exclusivo.
  • 8. Bloqueos • Bloqueo Compartido: Si una transacción Ti obtiene un bloqueo en modo compartido (denotado por C) sobre el elemento Q, entonces Ti puede leer Q pero no lo puede escribir.
  • 9. Bloqueos • Bloqueo Exclusivo: Si una transacción Ti obtiene un bloqueo en modo exclusivo (denotado por X) sobre el elemento Q, entonces Ti puede tanto leer como escribir Q.
  • 10. Bloqueos • Es necesario que toda transacción solicite un bloqueo del modo apropiado sobre el elemento de datos Q dependiendo de los tipos de operaciones que se vayan a realizar sobre Q.
  • 11. Bloqueos • La petición se hace al gestor de control de concurrencia. • La transacción puede realizar la operación sólo después de que el gestor de control de concurrencia conceda el bloqueo a la transacción.
  • 12. Matriz de Compatibilidad de bloqueos • Nótese que el modo compartido es compatible con otro modo compartido, pero no con el modo exclusivo.
  • 13. Compatibilidad de bloqueos • En todo momento se pueden tener varios bloqueos en modo compartido (por varias transacciones) sobre un elemento de datos en concreto. • Una petición posterior de bloqueo en modo exclusivo debe esperar hasta que se liberen los bloqueos en modo compartido que estén en ese momento.
  • 14. Bloqueos Instrucciones de bloqueo: • Bloquear-C(Q): solicita un bloqueo compartido sobre el elemento de datos Q. • Bloquear-X(Q): solicita un bloqueo exclusivo sobre el elemento de datos Q.
  • 15. Bloqueos • Desbloquear(Q): desbloquea un elemento de datos Q.
  • 16. Bloqueos • Para acceder a un elemento de datos, una transacción Ti debe en primer lugar bloquear dicho elemento. • Si éste ya se encuentra bloqueado por otra transacción en un modo incompatible, el gestor de control de concurrencia no concederá el bloqueo hasta que todos los bloqueos incompatibles que posean otras transacciones hayan sido liberados.
  • 17. Bloqueos • De este modo Ti debe esperar hasta que se liberen todos los bloqueos incompatibles que posean otras transacciones. • La transacción Ti puede desbloquear un elemento de datos que haya bloqueado en algún momento anterior.
  • 18. Bloqueos • Nótese que la transacción debe poseer un bloqueo sobre un elemento de datos durante todo el tiempo que acceda a dicho elemento. • Además, no siempre es aconsejable que una transacción desbloquee un elemento de datos inmediatamente después de finalizar su acceso sobre él, ya que puede dejar de asegurarse la secuencialidad.
  • 19. Ejemplo 1 • La transacción T1 transfiere 50 € desde la cuenta B a la A.
  • 20. Ejemplo 1 • La transacción T2 visualiza la cantidad total de dinero de las cuentas A y B, es decir, la suma A + B.
  • 21. Bloqueos • Supóngase que los valores de las cuentas A y B son 100 € y 200 € respectivamente. Si estas dos transacciones se ejecutan secuencialmente, tanto en el orden T1, T2 como en el orden T2, T1, entonces la transacción T2 visualizará el valor 300 €.
  • 22. Bloqueos • Si por el contrario estas transacciones se ejecutan concurrentemente, entonces puede darse la siguiente planificación.
  • 24. Bloqueos • En ese caso la transacción T2 visualiza 250 €, lo cual es incorrecto. • Dado que la transacción T1 desbloquea el elemento B demasiado pronto, lo cual provoca que T2 perciba un estado inconsistente.
  • 25. Bloqueos • La planificación muestra los puntos en los que el gestor de control de concurrencia concede los bloqueos. • La transacción que realiza una petición de bloqueo no puede ejecutar su siguiente acción hasta que el gestor de control de concurrencia conceda dicho bloqueo.
  • 26. Ejemplo 2 • Supóngase ahora que el desbloqueo se retrasa hasta el final de la transacción: La transacción T3 corresponde a T1 con el desbloqueo retrasado
  • 27. Ejemplo 2 La transacción T4 corresponde a T2 con el desbloqueo retrasado Se puede verificar que la secuencia de lecturas y escrituras de la planificación 1, que provoca que se visualice un total incorrecto de 250 €, ya no es posible con T3 y T4.
  • 28. Interbloqueos • El uso de bloqueos puede conducir a una situación no deseada, denominada interbloqueos.
  • 29. Interbloqueos • T3 posee en bloqueo sobre B en modo exclusivo y T4 solicita un bloqueo sobre B en modo compartido, T4 espera a que T3 desbloquee B. • T4 posee un bloqueo sobre A en modo compartido y T3 solicita un bloqueo sobre A en modo exclusivo, T3 espera a que T4 desbloquee A.
  • 30. Interbloqueos • Así se llega a un estado en el cual ninguna de las transacciones puede continuar su ejecución normal. Esta situación se denomina interbloqueo.
  • 31. Interbloqueos • Cuando aparece un interbloqueo, el sistema debe retroceder una de las dos transacciones. • Una vez que una de ellas se ha retrocedido, se desbloquean los elementos de datos que estuvieran bloqueados por la transacción. • Estos elementos de datos están disponibles entonces para otra transacción, la cual puede continuar su ejecución.
  • 32. Bloqueos • Si no se usan bloqueos, o se desbloquean los elementos de datos tan pronto como sea posible después de leerlos o escribirlos, se pueden obtener estados inconsistentes. • Y si no se desbloquea un elemento de datos antes de solicitar un bloqueo sobre otro, pueden producirse interbloqueos.
  • 33. Bloqueos • Sin embargo, en general, los interbloqueos son un mal necesario asociado a los bloqueos si se quieren evitar los estados inconsistentes.
  • 34. Bloqueos • Los interbloqueos son absolutamente preferibles a los estados inconsistentes, ya que se pueden tratar retrocediendo las transacciones, mientras que los estados inconsistentes producen problemas en el mundo real que el sistema de base de datos no puede manejar.
  • 35. Protocolos de bloqueo • Se exige que toda transacción del sistema siga un conjunto de reglas llamado protocolo de bloqueo, que indica el momento en que una transacción puede bloquear y desbloquear cada uno de los elementos de datos.
  • 36. Protocolos de bloqueo • Los protocolos de bloqueo restringen el número de planificaciones posibles. • El conjunto de tales planificaciones es un subconjunto de todas las planificaciones secuenciables posibles.
  • 37. Protocolos de bloqueo Definiciones: • Sean {T0,T1, , Tn} un conjunto de transacciones que participan en la planificación S. Se dice que Ti precede a Tj en S, denotado por Ti → Tj, si existe un elemento de datos Q tal que Ti ha obtenido un bloqueo en modo A sobre Q, y Tj ha obtenido un bloqueo en modo B sobre Q más tarde y comp(A,B) = falso.
  • 38. Protocolos de bloqueo • Si Ti → Tj entonces esta precedencia implica que en cualquier planificación secuencial equivalente, Ti debe aparecer antes que Tj.
  • 39. Protocolos de bloqueo • Este grafo es similar al grafo de precedencia que utilizamos para comprobar la secuencialidad en cuanto a conflictos. • Los conflictos entre instrucciones corresponden a modos de bloqueo incompatibles.
  • 40. Protocolos de bloqueo Planificación legal: • Una planificación S es legal bajo un protocolo de bloqueo dado si S es una planificación posible para un conjunto de transacciones que sigan las reglas del protocolo de bloqueo.
  • 41. Protocolos de bloqueo • Se dice que un protocolo asegura la secuencialidad en cuanto a conflictos si y sólo si todas las planificaciones legales son secuenciables en cuanto a conflictos; en otras palabras, para todas las planificaciones legales la relación → asociada es acíclica.
  • 42. Concesión de bloqueos • Cuando una transacción solicita un bloqueo de un modo particular sobre un elemento de datos y ninguna otra transacción posee un bloqueo sobre el mismo elemento de datos en un modo conflictivo, se puede conceder el bloqueo.
  • 43. Concesión de bloqueos • Supóngase que la transacción T2 posee un bloqueo en modo compartido sobre un elemento de datos y que la transacción T1 solicita un bloqueo en modo exclusivo sobre dicho elemento de datos. • Se sabe que T1 debe esperar a que T2 libere el bloqueo en modo compartido.
  • 44. Concesión de bloqueos • Pero, es posible que haya una secuencia de transacciones que soliciten un bloqueo en modo compartido sobre ese elemento de datos, y que cada una de ellas libere el bloqueo un poco después de que sea concedido, de forma que T1 nunca obtenga el bloqueo en modo exclusivo sobre dicho elemento.
  • 45. Concesión de bloqueos • La transacción T1 nunca progresa y se dice que tiene inanición.
  • 46. Concesión de bloqueos ¿Cómo se puede evitar la inanición de las transacciones? • Al conceder los bloqueos de la siguiente manera: • Cuando una transacción Ti solicita un bloqueo sobre un elemento de datos Q en un modo particular M, el gestor de control de concurrencia concede el bloqueo siempre que se cumpla:
  • 47. Concesión de bloqueos 1. No existe otra transacción que posea un bloqueo sobre Q en un modo que esté en conflicto con M. 2. No existe otra transacción que esté esperando un bloqueo sobre Q y que lo haya solicitado antes que Ti.
  • 48. Concesión de bloqueos • De este modo, una petición de bloqueo nunca se quedará bloqueada por otra petición solicitada posteriormente.
  • 49. Protocolo de bloqueo de 2 fases • Este protocolo asegura la secuencialidad. • Exige que cada transacción realice las peticiones de bloqueo y desbloqueo en dos fases: • Fase de crecimiento. • Fase de decrecimiento.
  • 50. Protocolo de bloqueo de 2 fases 1. Fase de crecimiento. Una transacción puede obtener bloqueos pero no puede liberarlos. 2. Fase de decrecimiento. Una transacción puede liberar bloqueos pero no puede obtener ninguno nuevo.
  • 51. Protocolo de bloqueo de 2 fases • Inicialmente una transacción está en la fase de crecimiento. • La transacción adquiere los bloqueos que necesite. • Una vez que la transacción libera un bloqueo, entra en la fase de decrecimiento y no puede realizar más peticiones de bloqueo.
  • 52. Protocolo de bloqueo de 2 fases Ejemplo: • Las transacciones T3 y T4 son de dos fases. • Las transacciones T1 y T2 no son de dos fases.
  • 55. Protocolo de bloqueo de 2 fases • Nótese que no es necesario que las instrucciones de desbloqueo aparezcan al final de la transacción. • Por ejemplo, en el caso de la transacción T3 se puede trasladar la instrucción desbloquear(B) justo después de la instrucción bloquear-X(A) y se sigue cumpliendo la propiedad del bloqueo de dos fases.
  • 56. Protocolo de bloqueo de 2 fases Punto de bloqueo: • Es el punto de la planificación en el cual la transacción obtiene su bloqueo final (el final de la fase de crecimiento).
  • 57. Protocolo de bloqueo de 2 fases • El protocolo de bloqueo de dos fases asegura la secuencialidad en cuanto a conflictos. • No asegura la ausencia de interbloqueos.
  • 58. Protocolo de bloqueo de 2 fases • Por ejemplo: las transacciones T3 y T4 son de dos fases, pero en la planificación 2 llegan a un interbloqueo. • En el bloqueo de dos fases puede ocurrir el retroceso en cascada.
  • 59. Ejemplo 3 • Cada transacción sigue el protocolo de bloqueo de dos fases pero un fallo de T5 después del paso leer(A) de T7 lleva a un retroceso en cascada de T6 y T7.
  • 60. Protocolo de bloqueo estricto de 2 fases • Los retrocesos en cascada se pueden evitar por medio de una modificación del protocolo de bloqueo de dos fases que se denomina protocolo de bloqueo estricto de dos fases.
  • 61. Protocolo de bloqueo estricto de 2 fases • Este protocolo exige que, además de que el bloqueo sea de dos fases, una transacción debe poseer todos los bloqueos en modo exclusivo que tome hasta que dicha transacción se complete.
  • 62. Protocolo de bloqueo estricto de 2 fases • Este requisito asegura que todo dato que escribe una transacción no comprometida está bloqueado en modo exclusivo hasta que la transacción se completa, evitando que ninguna otra transacción lea el dato.
  • 63. Protocolo de bloqueo riguroso de 2 fases • Otra variante del bloqueo de dos fases es el protocolo de bloqueo riguroso de dos fases, el cual exige que se posean todos los bloqueos hasta que se comprometa (COMMIT) la transacción.
  • 64. Ejemplo 4 • Si se emplea el protocolo de bloqueo de dos fases entonces T8 debe bloquear a1 en modo exclusivo. • Por tanto, toda ejecución concurrente de ambas transacciones conduce a una ejecución secuencial. • Nótese sin embargo que T8 sólo necesita el bloqueo en modo exclusivo sobre a1 al final de su ejecución, cuando escribe a1. • Así, si T8 pudiera bloquear inicialmente a1 en modo compartido y después pudiera cambiar el bloqueo a modo exclusivo, se obtendría una mayor concurrencia, ya que T8 y T9 podrían acceder a a1 y a2 simultáneamente.
  • 65. Protocolo de bloqueo de 2 fases • Esta observación lleva a un refinamiento del protocolo de bloqueo de dos fases básico en el cual se permiten conversiones de bloqueo.
  • 66. Protocolo de bloqueo de 2 fases • Esto se refiere a un mecanismo para cambiar un bloqueo compartido por un bloqueo exclusivo y un bloqueo exclusivo por uno compartido. • Se denota la conversión del modo compartido al modo exclusivo como subir, y la conversión del modo exclusivo al modo compartido como bajar.
  • 67. Protocolo de bloqueo de 2 fases • No se puede permitir la conversión de modos arbitrariamente. • Por el contrario, la subida puede tener lugar sólo en la fase de crecimiento, mientras que la bajada puede tener lugar sólo en la fase de decrecimiento.
  • 68. Ejemplo 5 • Las transacciones T8 y T9 se pueden ejecutar concurrentemente bajo el protocolo de bloqueo de dos fases refinado.
  • 69. Ejemplo 5 • Nótese que se puede forzar a esperar a una transacción que intente subir un bloqueo sobre un elemento Q. • Esta espera forzada tiene lugar si Q está bloqueado actualmente por otra transacción en modo compartido.
  • 70. Protocolo de bloqueo de 2 fases • Un esquema simple pero de uso extendido genera automáticamente las instrucciones apropiadas de bloqueo y desbloqueo para una transacción, basándose en peticiones de lectura y escritura desde la transacción:
  • 71. Protocolo de bloqueo de 2 fases 1.Cuando una transacción Ti realiza una operación leer(Q), el sistema genera una instrucción bloquear-C(Q) seguida de una instrucción leer(Q).
  • 72. Protocolo de bloqueo de 2 fases 2. Cuando Ti realiza una operación escribir(Q), el sistema comprueba si Ti posee ya un bloqueo en modo compartido sobre Q. Si es así, entonces el sistema genera una instrucción subir(Q) seguida de la instrucción escribir(Q). En otro caso el sistema genera una instrucción bloquear-X(Q) seguida de la instrucción escribir(Q).
  • 73. Protocolo de bloqueo de 2 fases 3.Todos los bloqueos que obtenga una transacción no se desbloquean hasta que dicha transacción se comprometa (COMMIT) o aborte (ABORT).
  • 74. Protocolo de bloqueo de 2 fases • Los protocolos de bloqueo de dos fases básico y de bloqueo de dos fases con conversión de bloqueos generan sólo planificaciones secuenciables en cuanto a conflictos. • Además, si se poseen los bloqueos hasta el final de la transacción, las planificaciones son sin cascada.