Tabla de contenidos
¿Qué es el hash en un DBMS?
En DBMS, el hash es una técnica para buscar directamente la ubicación de los datos deseados en el disco sin utilizar una estructura de índice. Se usa un método hash para indexar y recuperar elementos en una base de datos porque es más rápido buscar ese elemento específico usando la clave hash más corta en lugar de su valor original. Los datos se almacenan en forma de bloques de datos que se generan aplicando una función hash en la ubicación de la memoria donde se almacenan estos registros llamados bloque de datos o depósito de datos.
En este tutorial de DBMS, aprenderá,
¿Por qué necesitamos Hashing?
Estas son las situaciones en el DBMS en las que necesita implementar el método Hashing:
- Para una estructura de base de datos enorme, es difícil buscar todos los valores de índice por todo su nivel y luego debe llegar al bloque de datos de destino para obtener los datos que necesita.
- El método hash se usa para indexar y recuperar elementos en una base de datos porque es más rápido buscar ese elemento específico usando la clave hash más corta en lugar de su valor original.
- Hasshing es un método ideal para calcular la ubicación exacta de un registro de datos en el disco sin utilizar una estructura de índice.
- También es una técnica útil para aplicar diccionarios.
Terminologías importantes que se utilizan en hash
A continuación, se muestran algunos términos importantes que se utilizan en Hashing:
- Depósito de datos – Los depósitos de datos son ubicaciones de memoria donde se almacenan los registros. También se llama unidad de almacenamiento.
- Clave: Una clave DBMS es un rasgo o conjunto de atributos que le ayuda a identificar una tupla en una relación (tabla). Esto le permite encontrar la relación entre dos tablas.
- Función hash: Una función hash es una función de mapeo que mapea todo el conjunto de claves de búsqueda a la dirección donde se colocan los registros reales.
- Prueba lineal – La prueba lineal es un intervalo fijo entre sondas. En este método, el siguiente bloque de datos disponible se usa para ingresar el nuevo registro, en lugar de sobrescribir el registro anterior.
- Pruebas cuadradas– Le ayuda a determinar la nueva dirección del depósito. Le ayuda a Intervalo entre sondas agregando una salida cuadrada polisilábica coherente a un valor inicial dado por el cálculo original.
- Índice de hash – El bloque de datos es una dirección. Una función hash puede ser desde una función matemática simple hasta incluso una función matemática compleja.
- Hash doble – El hash de problemas es un método de programación utilizado en tablas hash para resolver problemas de colisión.
- Desbordamiento del cubo: Una condición de desbordamiento del cucharón se denomina colisión. Este es un paso fatal para que funcione cualquier estática.
Existen principalmente dos tipos de métodos de hash SQL:
- Hash estático
- Hashing dinámico
Hash estático
En el hash estático, la dirección del depósito de datos resultante siempre permanecerá.
Por lo tanto, si genera una dirección principal Student_ID = 10 usando una función hash mod (3), la dirección del depósito siempre resultará 1. Por lo tanto, no verá ningún cambio en la dirección del depósito.
Por lo tanto, en este modo hash estático, el número de depósitos de datos en la memoria permanece constante.
Funciones estáticas Hash
- Enviar un registro: Cuando es necesario agregar un nuevo registro a la tabla, puede crear una dirección para el nuevo registro utilizando la clave hash. Cuando se genera la dirección, el registro se almacena automáticamente en esa ubicación.
- Buscar: Cuando necesite recuperar el registro, la misma función hash debería ser útil para recuperar la dirección del depósito donde se deben almacenar los datos.
- Eliminar el registro: Con la función hash, primero puede encontrar el registro que desea eliminar. A continuación, puede eliminar los registros de esa dirección.
El hash estático se comparte más
- Hashing abierto
- Cerrar hash.
Hashing abierto
En el modo de hash abierto, en lugar de sobrescribir el más antiguo, se usa el siguiente bloque de datos disponible para ingresar el nuevo registro. Este método también se llama prueba lineal.
Por ejemplo, A2 es un nuevo registro que debe enviar. La función hash genera una dirección como 222. Pero ya hay algún otro valor. Es por eso que el sistema detecta el siguiente depósito de datos 501 y le asigna un A2.
Cerrar hash
En el modo de hash compacto, cuando los depósitos están llenos, se asigna un nuevo depósito al mismo hash y el resultado se vincula después del anterior.
Hashing dinámico
El hash dinámico proporciona un mecanismo para agregar y eliminar depósitos de datos de forma dinámica. En este hash, la función hash le ayuda a crear una gran cantidad de valores.
Comparación de indexación y hash de pedidos
Parámetros | Indexación de pedidos | Hashing |
Dirección de la tienda | Las direcciones en la memoria están ordenadas por un valor de clave llamado clave principal | Las direcciones siempre se generan utilizando una función hash del valor principal. |
Actuación | Puede disminuir a medida que aumentan los datos del archivo hash. Ya que almacena los datos en forma ordenada cuando se realiza cualquier operación (insertar / eliminar / actualizar) que reduce su rendimiento. | El hash se realiza mejor cuando se agregan y agregan datos continuamente. Sin embargo, cuando la base de datos es enorme, organizar un archivo hash y mantenerlo será más caro. |
Usar para | Lo mejor para la recuperación de rango de datos, lo que significa que cada vez que se recuperan datos para un rango determinado, este método es una excelente opción. | Este es un método ideal cuando desea recuperar un registro en particular basado en la clave de búsqueda. Sin embargo, solo funcionará bien cuando la función hash esté en la tecla de búsqueda. |
Gestión de la memoria | Habrá muchos bloques de datos no utilizados debido a la operación de eliminación / actualización. Estos bloques de datos no se pueden liberar para su reutilización. Es por eso que se requiere un mantenimiento regular de la memoria. | En los modos de hash estático y dinámico, la memoria siempre se administra. El desbordamiento del cucharón también se maneja perfectamente para extender el hash estático. |
¿Qué es una colisión?
Una colisión de Hash es una situación en la que los hash resultantes de dos o más datos en el conjunto de datos mapean incorrectamente el mismo lugar en la tabla hash.
¿Cómo lidiar con el hash de colisión?
Hay dos técnicas que puede utilizar para evitar una colisión de hash:
- Refrito: Este método invoca una función hash secundaria, que se aplica continuamente hasta que se encuentra un espacio vacío, donde se debe colocar un registro.
- Cadena: El método de cadena crea una lista vinculada de elementos cuya clave tiene el mismo valor. Este método requiere un campo de enlace adicional para cada ubicación de la mesa.
Resumen:
- En DBMS, el hash es una técnica para buscar directamente la ubicación de los datos deseados en el disco sin utilizar una estructura de índice.
- El método hash se usa para indexar y recuperar elementos en una base de datos porque es más rápido buscar ese elemento específico usando la clave hash más corta en lugar de su valor original.
- Cubo de datos, Clave, Función Hash, Prueba lineal, Prueba cuadrada, Hash de índice, Hash doble, Flujo de cubo son términos importantes que se utilizan en el hash
- Dos tipos de métodos hash son 1) hash estático 2) hash dinámico
- En el hash estático, la dirección del depósito de datos resultante siempre permanecerá.
- El hash dinámico proporciona un mecanismo para agregar y eliminar depósitos de datos de forma dinámica.
- En orden, las direcciones indexadas en la memoria se ordenan por valor crítico y las direcciones hash siempre se generan usando una función hash del valor principal.
- La colisión de hash es una situación en la que los hash resultantes de dos o más datos en el conjunto de datos se asignan incorrectamente al mismo lugar en la tabla hash.
- La remodelación y el encadenamiento son dos métodos que le ayudan a evitar una colisión rápida.