Introducción a Hashing en DBMS

Cuando hablamos de la enorme estructura de la base de datos y su complejidad, resulta muy ineficiente buscar todos los índices y llegar a los datos deseados se vuelve muy vago y una posibilidad compleja. Al hacer uso de la técnica de hash, se pueden alcanzar estos estados y se puede asignar un puntero directo para conocer la ubicación exacta y directa en el disco para el registro en particular sin hacer uso de la compleja estructura de índice. Los datos en el caso de la técnica de hash se almacenan en forma de bloques de datos cuya dirección se genera haciendo uso de la función típicamente conocida como la función de hash. La ubicación en la memoria donde reside esto y se almacenan los registros se conoce como bloques de datos o depósito de datos.

Tipos de hashing en DBMS

Normalmente hay dos tipos de técnicas de hashing en DBMS:

1. Hashing estático
2. Hashing dinámico

1) Hashing estático

En el caso del hashing estático, el conjunto de datos formado y la dirección del depósito es la misma. Esto significa que si tratamos de generar la dirección para USER_ID = 113 haciendo uso del módulo de función de hashing 5, siempre nos proporciona la resultante como 3 con la misma dirección de bucket. En este caso, no habrá ningún cambio en la dirección del depósito proporcionado. Por lo tanto, el número de cubos permanece constante durante toda la operación.

Operación de Hashing estáticamente tipado

a. Búsqueda de un registro: si es necesario encontrar el registro, se utiliza exactamente la misma función de hash para recuperar la dirección y la ruta del depósito de datos con los datos almacenados.

si. Inserción de un nuevo registro: si se coloca un nuevo y nuevo registro en una tabla, se genera una dirección para un nuevo registro basado en la clave de hashing, almacenando el registro en esa ubicación.

  1. Eliminación del registro: para que el registro se elimine, primero se debe recuperar ese registro que se puede eliminar. Una vez que se realiza esa tarea, los registros deben eliminarse para esa dirección de memoria.
  2. Actualización de un registro: para actualizar el registro, primero buscamos el registro haciendo uso de la función basada en hash y, una vez hecho, se puede decir que nuestro registro de datos está actualizado. Para que podamos insertar un nuevo registro en el archivo y la dirección que se genera a partir de la función basada en hash y el depósito de datos no está vacía o si los datos ya están presentes en la dirección proporcionada. Esta situación que surge especialmente en el caso del hashing estático puede denominarse mejor desbordamiento de cubeta y, por lo tanto, hay algunas formas de superar este problema, como por ejemplo:

(i) Hash abierto: si una función de hashing genera la dirección para la cual los datos ya se pueden ver en el estado almacenado, en ese caso, el siguiente nivel del depósito se asignará automáticamente. Este mecanismo puede denominarse una técnica de sondeo lineal.

Por ejemplo, si R3 es la dirección nueva que se necesita poner, entonces la función basada en hash generará la dirección como el número 102 para la dirección R3. La dirección generada está en estado completo y, por lo tanto, el sistema debe buscar el nuevo grupo de datos que es 113 y asignar R3 a ese grupo de datos.

(ii) Hashing cerrado: cuando los cubos están completamente llenos, se asigna un nuevo cubo para un resultado de hash particular que se vincula justo después del completado anteriormente y, por lo tanto, este método se llama técnica de encadenamiento de desbordamiento.

Por ejemplo, R3 es la nueva dirección que se requiere poner en la nueva tabla, la función hash se usa para generar la dirección como el número 110. Este depósito, a su vez, está lleno y, por lo tanto, no puede recibir datos nuevos y, por lo tanto, se coloca un depósito nuevo al final después de 100.

2) Hashing dinámico

Este tipo de método basado en hash se puede usar para resolver los problemas básicos del hashing basado en estática como los que se encuentran en el desbordamiento del depósito, ya que los depósitos de datos pueden crecer y reducirse con el tamaño, es una técnica más optimizada para el espacio y, por lo tanto, se denomina Extensible método basado en hash. En este método, el hash se hace dinámico, lo que significa que la actividad de inserción o eliminación se permite sin proporcionar un rendimiento deficiente.

a. Búsqueda de una clave: calcule la dirección basada en hash de la clave requerida y verifique el número de bits que se utilizan en el caso de un directorio conocido como i. Luego, los que son menos significativos de los bits I se toman del directorio que da una idea sobre el índice del directorio. Al hacer uso de ese valor de índice, vaya al directorio para encontrar la dirección del depósito para buscar los registros actuales.

si. Inserción de un nuevo registro: al principio, debe seguir exactamente el mismo procedimiento de recuperación que debe terminar en algún lugar del depósito. Busque el espacio en ese cubo, luego coloque los registros dentro de él. Si ese depósito creado está completo y lleno, entonces el depósito se dividirá y los registros se redistribuirán.

Por ejemplo, los dos últimos bits de los dígitos 2 y 4 son 00. Por lo tanto, irán al cubo B0 y así sucesivamente de acuerdo con la función de módulo. La clave 9 tiene una dirección de 10001 que debe estar presente en el primer depósito, pero se dividirá y se moverá al nuevo depósito B1, y esto continuará hasta que todos los depósitos y las claves se corten dinámicamente. La función hash se usa de una manera en la que se usa la función hash para elegir la columna y su valor para generar la dirección. Número máximo de veces que la función hash utiliza la clave primaria, que a su vez se utiliza para generar las direcciones del bloque de datos. Es una función matemática simple donde la clave primaria también puede considerarse como la dirección del bloque de datos, lo que significa que cada fila con la misma dirección que la de la clave primaria se almacenará en el bloque de datos.

Artículos recomendados

Esta es una guía para Hashing en DBMS. Aquí discutimos la introducción y los diferentes tipos de hashing en DBMS que incluye un hashing estático y un hashing dinámico junto con ejemplos. También puede echar un vistazo a los siguientes artículos para obtener más información:

  1. Modelos de datos en DBMS
  2. Ventajas de DBMS
  3. Herramienta de integración de datos
  4. ¿Qué es el RDBMS?