Niveles de bloqueo en DBMS

El bloqueo en una base de datos se puede realizar en 4 niveles, que comienzan con la base de datos en el nivel más alto y descienden a través de la tabla y la página hasta la fila en el nivel más bajo.

  • Nivel de base de datos
  • Nivel de mesa
  • Nivel de página
  • Nivel de fila

Antes de discutir los niveles de bloqueo, debemos conocer los tipos de bloqueo o el modo de bloqueo. Por lo tanto, hay 5 tipos de bloqueos en el bloqueo y estos se analizan a continuación:

  • Bloqueo exclusivo (X):  
    este método de bloqueo diferencia los bloqueos en función de su uso. Esto también asegura que los datos o información de una página serán reservados exclusivamente para aquellas transacciones que usaron el bloqueo exclusivo. Estos bloqueos se aplican en aquellos recursos solo donde se realiza una operación de ESCRITURA. Estos bloqueos se pueden aplicar a una página solo si no se ha aplicado ningún otro tipo de bloqueo compartido o exclusivo.
     
  • Bloqueo compartido (S): 
    este método de bloqueo se aplica solo a las operaciones de lectura. Si este bloqueo se aplica a cualquier fila o página, reservará esa fila o página para la operación de lectura. Podemos aplicar más de un bloqueo en la misma fila o en la misma página, pero no debería aplicarse a ningún otro tipo de bloqueo.
     
  • Bloqueo exclusivo de intención (IX): 
    este método de bloquear el bloqueo explícito en un nivel inferior con bloqueos exclusivos o compartidos. Esto significa que si una transacción ha utilizado este tipo de bloqueo, entonces debe tratarse de modificar el nivel inferior de recursos imponiendo un bloqueo exclusivo por separado.
     
  • Bloqueo de intención compartida (IS): 
    este método de bloqueo es un bloqueo explícito en un nivel inferior del árbol, pero solo con bloqueos compartidos. Esto significa que si una transacción ha utilizado este tipo de bloqueo, debe tratarse de leer el nivel inferior de recursos imponiendo un bloqueo compartido por separado.
     
  • Bloqueo exclusivo de intención compartida (SIX): 
    este método de bloqueo establece que la transacción se usa para leer los recursos en un nivel inferior. Aquí en SIX, imponemos el bloqueo compartido en todos los recursos que están disponibles en el nivel inferior. El subárbol enraizado por ese Node se bloquea explícitamente en modo compartido y el bloqueo explícito se realiza en un nivel inferior con bloqueos de modo exclusivo. En este método, solo se puede adquirir un SIX en una relación a la vez y si hay otras transacciones para actualizar cualquier cambio, bloqueará esas transacciones.
     
  • Bloqueo de actualización (U):  
    este método de bloqueo se puede imponer en un registro que ya consta de un bloqueo compartido y, si ya tiene un bloqueo compartido, el bloqueo de actualización impondrá otro bloqueo compartido en la fila o página de relación de destino. Esto es lo mismo que un candado exclusivo y también, en cierto modo, flexible. Aquí en este bloqueo, después de comprobar que la transacción tiene el bloqueo de actualización para modificar los datos, el bloqueo de actualización se modificará en un bloqueo exclusivo.

Nivel de jerarquía en el bloqueo

Ahora, analicemos los niveles de bloqueo uno por uno.

1. Nivel de base de datos:
en el nivel de base de datos, la base de datos completa o completa está bloqueada. Ahora, si digamos que hay dos relaciones en una base de datos. Si, por ejemplo, R1 y R2, donde R1 usa tablas, entonces R2 no puede usarlas. Siempre encontrará un bloqueo compartido en este nivel que se utiliza cada vez que una transacción se conecta a una base de datos. En este nivel, usamos el bloqueo compartido para evitar la eliminación de la base de datos o la restauración de una copia de seguridad de la base de datos en uso. Veamos un ejemplo. Cuando usamos una declaración SELECT para leer algunos datos, se aplicará un bloqueo compartido en el nivel de la base de datos, un bloqueo compartido de intención se aplicará en la tabla y en el nivel de la página, y un bloqueo compartido en la fila misma.

Aplicaciones de nivel de base de datos –

  • Este tipo de bloqueo es adecuado para un grupo de procesos.
  • Este tipo de bloqueo es muy lento, por lo que no se utiliza para la versión en línea de DBMS multiusuario.

2. Nivel de tabla: 
en el nivel de tabla, la tabla o relación completa está bloqueada. Ahora, si digamos que hay dos relaciones en una base de datos, por ejemplo, R1 y R2, donde R1 usa tablas, entonces R2 no puede usarlas. Pero, dos transacciones pueden acceder a la misma base de datos solo si acceden a relaciones diferentes. Una transacción que utilice un nivel de la tabla mantendrá bloqueos de tabla compartidos y/o exclusivos. A nivel de mesa, hay 5 tipos diferentes de cerraduras. es decir, Exclusivo (X), Compartido (S), Intento exclusivo (IX), Intento compartido (IS) y Compartido con intento exclusivo (SIX) y estos bloqueos ya se han discutido anteriormente.

Aplicaciones de nivel de tabla –

  • Este tipo de nivel de bloqueo no es adecuado para sistemas de gestión de bases de datos multiusuario.
  • También se usa principalmente para evitar que una relación se elimine en una operación DML.

3. Nivel de página:
el nivel de página siempre consiste en un tamaño fijo, es decir, potencia de 2 o 2 tipo i . Una tabla puede abarcar varias páginas y una página puede contener varias tuplas de una o más relaciones. A nivel de página, se impondrá un bloqueo compartido (IS) de intención. Este bloqueo es capaz de bloquear una tabla, página compartida o exclusiva. Se impondrá un bloqueo exclusivo de intención (IX) o un bloqueo de actualización de intención (IU) si hay un caso de declaraciones DML (es decir, insertar, actualizar, eliminar).

Aplicaciones de nivel de página –

  • Este tipo de nivel de bloqueo es adecuado para sistemas de gestión de bases de datos multiusuario.
  • Son comparativamente rápidos pero también hay varios conflictos.

4. Nivel de fila: 
este nivel de bloqueo es menos restrictivo en comparación con otros niveles de bloqueo. En el nivel de fila, si una transacción simultánea accede a diferentes filas en la misma relación, incluso si las filas se encuentran en la misma página, los sistemas de base de datos pueden aceptarlo. Aquí, en este nivel, DBMS permite que las transacciones simultáneas accedan a las filas de la misma relación, incluso en el caso de que las filas estén en la misma página. En este nivel, podemos aplicar 3 tipos diferentes de bloqueos, es decir, Exclusivo, Compartido, Actualizar y estos bloqueos ya se han discutido anteriormente y también, las filas particulares se bloquean en una consulta en este nivel.

Aplicaciones de nivel de Fila –

  • Es muy costoso en comparación con otros niveles de bloqueo.
  • También es muy restrictivo.

Publicación traducida automáticamente

Artículo escrito por tarunsinghwap7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *