in

Indexación en bases de datos | Serie 1

gfg 200x200 min

La indexación es una forma de optimizar el rendimiento de una base de datos minimizando el número 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 algunas 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 en orden para que se pueda acceder rápidamente a los datos correspondientes.
    Nota: Los datos pueden o no almacenarse en orden.
  • 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.

Structure of an Index in Database

La indexación tiene varios atributos:

  • Tipos de acceso: Se refiere al tipo de acceso, como búsqueda basada en valores, acceso a rango, etc.
  • Tiempo de acceso: Se refiere al tiempo necesario para encontrar un elemento de datos o un conjunto de elementos en particular.
  • Tiempo de inserción: Se refiere al tiempo que se tarda en encontrar el espacio adecuado e insertar un nuevo dato.
  • Hora de eliminación: Tiempo necesario para encontrar un elemento y eliminarlo, así como para actualizar la estructura del índice.
  • Espacio arriba: Se refiere al espacio adicional que requiere 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 archivo secuencial o archivo de índice ordenado: En esto, los índices se basan en una ordenación ordenada de los valores. Por lo general, son un mecanismo de almacenamiento rápido y más tradicional. Estas organizaciones de archivos ordenadas 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.

Dense

(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 valor de clave de búsqueda más grande menor o igual al valor de clave de búsqueda que estamos buscando.
  • Comenzamos en ese registro al que apunta el registro de índice y seguimos con los punteros en el archivo (es decir, secuencialmente) hasta encontrar el registro deseado.

Sparse

2. Organización del archivo hash: Los índices se basan en los valores que se distribuyen uniformemente en una variedad de categorías. Los depósitos a los que se asigna un valor se determinan mediante una función denominada función hash.

Hay principalmente tres métodos de indexación:

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

1. Indexación agrupada
Cuando se almacenan más de dos registros en el mismo archivo, estos tipos de almacenamiento se conocen como indexación de clústeres. Al usar la indexación de clústeres, podemos reducir el costo de 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 agrupación se define en un archivo de datos ordenado. El archivo de datos está ordenado en un campo que no es 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ápidamente, 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 índice de agrupación. 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, 1S t Estudiantes de semestre, 2Dakota del Norte estudiantes de semestre, 3rd se agrupan los estudiantes de 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 el que los datos se ordenan de acuerdo con la clave de búsqueda y la clave principal de la tabla de la base de datos se utiliza 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 da 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 nodos 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 orden denso en el índice no agrupado, ya que el orden 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 delante del índice.

indexación3

3. Indexación multinivel

Con el crecimiento del tamaño de la base de datos, los índices también crecen. Dado que el índice se almacena en la memoria principal, un índice de un solo nivel puede llegar a ser un tamaño demasiado grande para almacenarlo con varios 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 externos se dividen en bloques internos que, a su vez, apuntan a los bloques de datos. Esto se puede almacenar fácilmente en la memoria principal con menos gastos generales.

Untitled Diagram 41

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 discutido anteriormente.

¡Atención lector! No dejes de aprender ahora. Obtenga todos los conceptos importantes de la Teoría de la CS para las entrevistas SDE con el Curso de Teoría de CS a un precio asequible para los estudiantes y prepárese para la industria.

Deja una respuesta

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

apple touch icon@2

python – ¿Cómo dividir elementos de una lista?

edit

Publicidad vs promoción: diferencia y comparación