Indexación en DBMS: Qué es, Tipos de Índices con EJEMPLOS

¿Qué es la indexación?

Indexación es una técnica de estructura de datos que le permite recuperar rápidamente registros de un archivo de base de datos. Un índice es una tabla pequeña que tiene sólo dos columnas. La primera columna comprende una copia de la clave principal o candidata de una tabla. Su segunda columna contiene un conjunto de punteros para mantener la dirección del bloque de disco donde se almacena ese valor de clave específico.

Un índice -

  • Toma una clave de búsqueda como entrada
  • Devuelve eficientemente una colección de registros coincidentes.

Tipos de indexación en DBMS

Tipos de indexación en DBMS
Tipo de índices en la base de datos

La indexación en la base de datos se define en función de sus atributos de indexación. Dos tipos principales de métodos de indexación son:

  • Indexación primaria
  • Indexación Secundaria

Índice primario en DBMS

El índice primario es un archivo ordenado que tiene un tamaño de longitud fija y dos campos. El primer campo es la misma clave principal y el segundo campo apunta a ese bloque de datos específico. En el índice principal, siempre existe una relación uno a uno entre las entradas de la tabla de índice.

La indexación principal en DBMS también se divide en dos tipos.

  • Índice denso
  • Índice disperso

Índice denso

En un índice denso, se crea un registro para cada clave de búsqueda valorada en la base de datos. Esto le ayuda a buscar más rápido pero necesita más espacio para almacenar registros de índice. En esta indexación, los registros de método contienen el valor de la clave de búsqueda y apuntan al registro real en el disco.

Índice denso

Índice disperso

Es un registro de índice que aparece solo para algunos de los valores del archivo. Sparse Index le ayuda a resolver los problemas de indexación densa en DBMS. En este método de técnica de indexación, un rango de columnas de índice almacena la misma dirección de bloque de datos y, cuando es necesario recuperar datos, se recuperará la dirección del bloque.

Sin embargo, el índice disperso almacena registros de índice solo para algunos valores de clave de búsqueda. Necesita menos espacio, menos gastos de mantenimiento para la inserción y eliminación, pero es más lento en comparación con el índice denso para localizar registros.

A continuación se muestra un índice de base de datos. Ejemplo de índice disperso.

Índice disperso

Índice secundario en DBMS

El índice secundario en DBMS puede generarse mediante un campo que tenga un valor único para cada registro y debe ser una clave candidata. También se le conoce como índice no agrupado.

Esta técnica de indexación de bases de datos de dos niveles se utiliza para reducir el tamaño del mapeo del primer nivel. Por este motivo, para el primer nivel se selecciona una amplia gama de números; el tamaño del mapeo siempre permanece pequeño.

Ejemplo de índice secundario

Entendamos la indexación secundaria con un ejemplo de índice de base de datos:

En una base de datos de cuentas bancarias, los datos se almacenan secuencialmente mediante acc_no; es posible que desee encontrar todas las cuentas de una sucursal específica del banco ABC.

Aquí puede tener un índice secundario en DBMS para cada clave de búsqueda. El registro de índice es un punto de registro a un depósito que contiene punteros a todos los registros con su valor de clave de búsqueda específico.

Ejemplo de índice secundario

Índice de agrupación en DBMS

En un índice agrupado, los registros en sí se almacenan en el índice y no los punteros. A veces, el índice se crea en columnas de clave no principal que pueden no ser únicas para cada registro. En tal situación, puede agrupar dos o más columnas para obtener valores únicos y crear un índice que se denomina índice agrupado. Esto también le ayuda a identificar el registro más rápido.

Ejemplo:

Supongamos que una empresa contrató muchos empleados en varios departamentos. En este caso, se debe crear una indexación agrupada en DBMS para todos los empleados que pertenecen al mismo departamento.

Se considera en un solo grupo y los puntos de índice apuntan al grupo en su conjunto. Aquí, Departamento _no es una clave no única.

¿Qué es el índice multinivel?

Indexación multinivel en Base de datos Se crea cuando un índice primario no cabe en la memoria. En este tipo de método de indexación, puede reducir la cantidad de accesos al disco para acortar cualquier registro y mantenerlo en un disco como un archivo secuencial y crear una base dispersa en ese archivo.

Índice multinivel

Índice de árbol B

El índice de árbol B son las estructuras de datos ampliamente utilizadas para la indexación basada en árboles en DBMS. Es un formato multinivel de indexación basada en árboles en la técnica DBMS que ha equilibrado árboles de búsqueda binaria. Todos los nodos hoja del árbol B significan punteros de datos reales.

Además, todos los nodos hoja están interconectados con una lista de enlaces, lo que permite que un árbol B admita acceso tanto aleatorio como secuencial.

Índice de árbol B

  • Los nodos principales deben tener entre 2 y 4 valores.
  • Todos los caminos desde la raíz hasta la hoja tienen en su mayoría la misma longitud.
  • Los nodos que no son hoja, aparte del nodo raíz, tienen entre 3 y 5 nodos secundarios.
  • Todo nodo que no sea raíz ni hoja tiene entre n/2] y n hijos.

Ventajas de la indexación

Las ventajas/pros importantes de la indexación son:

  • Le ayuda a reducir la cantidad total de operaciones de E/S necesarias para recuperar esos datos, por lo que no necesita acceder a una fila en la base de datos desde una estructura de índice.
  • Ofrece búsqueda y recuperación de datos más rápida a los usuarios.
  • La indexación también le ayuda a reducir el espacio de tabla, ya que no necesita vincular una fila en una tabla, ya que no es necesario almacenar el ROWID en el índice. De esta manera podrá reducir el espacio de tabla.
  • No puede ordenar datos en los nodos principales ya que el valor de la clave principal los clasifica.

Desventajas de la indexación

Los inconvenientes/desventajas importantes de la indexación son:

  • Para realizar la indexación del sistema de gestión de bases de datos, necesita una clave principal en la tabla con un valor único.
  • No puede realizar ningún otro índice en la base de datos sobre los datos indexados.
  • No se le permite particionar una tabla organizada por índice.
  • Indexación SQL Disminuye el rendimiento en las consultas INSERTAR, ELIMINAR y ACTUALIZAR.

Resumen

  • La indexación es una pequeña tabla que consta de dos columnas.
  • Dos tipos principales de métodos de indexación son 1) Indexación primaria 2) Indexación secundaria.
  • El índice primario es un archivo ordenado que tiene un tamaño de longitud fija y dos campos.
  • La indexación primaria también se divide en dos tipos: 1) Índice denso 2) Índice disperso.
  • En un índice denso, se crea un registro para cada clave de búsqueda valorada en la base de datos.
  • Un método de indexación escaso le ayuda a resolver los problemas de indexación densa.
  • El índice secundario en DBMS es un método de indexación cuya clave de búsqueda especifica un orden diferente al orden secuencial del archivo.
  • El índice de agrupación se define como un archivo de datos de pedidos.
  • La indexación multinivel se crea cuando un índice principal no cabe en la memoria.
  • El mayor beneficio de la indexación es que le ayuda a reducir la cantidad total de operaciones de E/S necesarias para recuperar esos datos.
  • El mayor inconveniente para realizar la indexación del sistema de gestión de bases de datos es que necesita una clave principal en la tabla con un valor único.