En las bases de datos, un índice es una estructura de datos, parte de la base de datos, que utiliza un sistema de base de datos para navegar de manera eficiente en el acceso a los datos del usuario . Los datos del índice son datos del sistema distintos de los datos del usuario y consisten principalmente en punteros . Los cambios en una base de datos (por operaciones de inserción, eliminación o modificación) pueden requerir que los índices se actualicen para mantener los accesos precisos a los datos del usuario. [1] El bloqueo de índices es una técnica utilizada para mantener la integridad del índice. Una parte de un índice se bloquea durante una transacción de base de datos cuando la transacción accede a esta parte como resultado de un intento de acceder a los datos del usuario relacionados. Además, se pueden invocar transacciones especiales del sistema de base de datos (no transacciones invocadas por el usuario) para mantener y modificar un índice, como parte de las actividades de automantenimiento de un sistema. Cuando una parte de un índice está bloqueada por una transacción, se puede bloquear el acceso de otras transacciones a esta parte del índice (se puede bloquear su modificación e incluso su lectura, según el tipo de bloqueo y la operación necesaria). El protocolo de bloqueo de índices garantiza que no se producirá el fenómeno de lectura fantasma . El protocolo de bloqueo de índices establece:
[1]
Existen técnicas especializadas de control de concurrencia para acceder a índices. Estas técnicas dependen del tipo de índice y aprovechan su estructura. Suelen ser mucho más eficaces que aplicar a los índices métodos de control de concurrencia comunes aplicados a los datos de usuario. Entre las técnicas especializadas para árboles B (control de concurrencia de árboles B [2] ), que se utilizan habitualmente como índices de bases de datos, destacan las más estudiadas.
Los bloqueos de índice se utilizan para coordinar los subprocesos que acceden a los índices de manera simultánea y, por lo general, tienen una duración más corta que los bloqueos de transacciones comunes en los datos de usuario. En la literatura profesional, a menudo se los denomina bloqueos . [2]