Indexación en Bases de Datos | Serie 1

La indexación es una forma de optimizar el rendimiento de una base de datos al minimizar la cantidad de accesos al disco necesarios cuando se procesa una consulta. Es una técnica de estructura de datos que se utiliza para localizar y acceder rápidamente a los datos en una base de datos. 

Los índices se crean utilizando unas pocas columnas de la base de datos. 

  • La primera columna es la clave de búsqueda que contiene una copia de la clave principal o clave candidata de la tabla. Estos valores se almacenan ordenados para que se pueda acceder rápidamente a los datos correspondientes. 
    Nota: Los datos pueden almacenarse o no en orden ordenado.
  • La segunda columna es la referencia de datos o puntero que contiene un conjunto de punteros que contienen la dirección del bloque de disco donde se puede encontrar ese valor de clave en particular.

La indexación tiene varios atributos:  

  • Tipos de acceso : se refiere al tipo de acceso, como búsqueda basada en valores, acceso por rango, etc.
  • Tiempo de acceso : se refiere al tiempo necesario para encontrar un elemento de datos en particular o un conjunto de elementos.
  • Tiempo de inserción : se refiere al tiempo necesario para encontrar el espacio adecuado e insertar un nuevo dato.
  • Tiempo de eliminación : tiempo necesario para encontrar un elemento y eliminarlo, así como para actualizar la estructura del índice.
  • Space Overhead : Se refiere al espacio adicional requerido por el índice.

En general, existen dos tipos de mecanismos de organización de archivos que son seguidos por los métodos de indexación para almacenar los datos:  

1. Organización de archivos secuenciales o archivo de índice ordenado: en este, los índices se basan en una ordenación ordenada de los valores. Estos son generalmente rápidos y un tipo de mecanismo de almacenamiento más tradicional. Estas organizaciones de archivos ordenados o secuenciales pueden almacenar los datos en un formato denso o disperso: 

(i) Índice denso: 

  • Para cada valor de clave de búsqueda en el archivo de datos, hay un registro de índice.
  • Este registro contiene la clave de búsqueda y también una referencia al primer registro de datos con ese valor de clave de búsqueda.

(ii) Índice disperso: 

  • El registro de índice aparece solo para algunos elementos en el archivo de datos. Cada elemento apunta a un bloque como se muestra.
  • Para localizar un registro, buscamos el registro de índice con el mayor valor de clave de búsqueda menor o igual que el valor de clave de búsqueda que estamos buscando.
  • Comenzamos en ese registro al que apunta el registro índice y avanzamos junto con los punteros en el archivo (es decir, secuencialmente) hasta que encontramos el registro deseado.

2. Organización de archivos hash: los índices se basan en que los valores se distribuyen uniformemente en un rango de cubos. Los cubos a los que se asigna un valor están determinados por una función llamada función hash.

Existen principalmente tres métodos de indexación:  

  • Indexación agrupada
  • Indexación secundaria o no agrupada
  • Indexación multinivel

1. Indexación 
en clúster Cuando se almacenan más de dos registros en el mismo archivo, este tipo de almacenamiento se conoce como indexación en clúster. Al usar la indexación de clústeres, podemos reducir el costo de la búsqueda, ya que se almacenan múltiples registros relacionados con lo mismo en un solo lugar y también brinda la unión frecuente de más de dos tablas (registros). 
El índice de agrupamiento se define en un archivo de datos ordenados. El archivo de datos se ordena en un campo no clave. En algunos casos, el índice se crea en columnas de clave no primaria que pueden no ser únicas para cada registro. En tales casos, para identificar los registros más rápido, agruparemos dos o más columnas para obtener los valores únicos y crear un índice a partir de ellos. Este método se conoce como el índice de agrupamiento. Básicamente, los registros con características similares se agrupan y se crean índices para estos grupos. 
Por ejemplo, los estudiantes que estudian en cada semestre se agrupan. es decir , se agrupan los estudiantes del 1er semestre, los estudiantes del 2do semestre, los estudiantes del 3er semestre , etc. 

cluster_index

Índice agrupado ordenado según el nombre (tecla de búsqueda) 

Indexación primaria: 
este es un tipo de indexación agrupada en la que los datos se ordenan según la clave de búsqueda y la clave principal de la tabla de la base de datos se usa para crear el índice. Es un formato predeterminado de indexación donde induce la organización secuencial de archivos. Como las claves primarias son únicas y se almacenan ordenadas, el rendimiento de la operación de búsqueda es bastante eficiente. 

2. Indexación secundaria o 
no agrupada Un índice no agrupado simplemente nos dice dónde se encuentran los datos, es decir, nos brinda una lista de punteros virtuales o referencias a la ubicación donde se almacenan realmente los datos. Los datos no se almacenan físicamente en el orden del índice. En cambio, los datos están presentes en los Nodes hoja. Por ej. la página de contenido de un libro. Cada entrada nos da el número de página o la ubicación de la información almacenada. Los datos reales aquí (información en cada página del libro) no están organizados, pero tenemos una referencia ordenada (página de contenido) de dónde se encuentran realmente los puntos de datos. Solo podemos tener un ordenamiento denso en el índice no agrupado, ya que el ordenamiento disperso no es posible porque los datos no están organizados físicamente en consecuencia. 
Requiere más tiempo en comparación con el índice agrupado porque se realiza una cierta cantidad de trabajo adicional para extraer los datos siguiendo más el puntero. En el caso de un índice agrupado, los datos están directamente presentes delante del índice. 

indexing3

3. Indexación multinivel 

Con el crecimiento del tamaño de la base de datos, los índices también crecen. Como el índice se almacena en la memoria principal, un índice de un solo nivel puede tener un tamaño demasiado grande para almacenarse con múltiples accesos al disco. La indexación multinivel segrega el bloque principal en varios bloques más pequeños para que el mismo pueda almacenarse en un solo bloque. Los bloques exteriores se dividen en bloques interiores que, a su vez, apuntan a los bloques de datos. Esto se puede almacenar fácilmente en la memoria principal con menos gastos generales. 

Este artículo es una contribución de Avneet Kaur . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *