Saltar al contenido

Estático y dinámico con ejemplos

¿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:

Terminologías importantes que se utilizan en hash

A continuación, se muestran algunos términos importantes que se utilizan en Hashing:

Existen principalmente dos tipos de métodos de hash SQL:

  1. Hash estático
  2. 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

El hash estático se comparte más

  1. Hashing abierto
  2. 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.

Cómo funciona Open Hash

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ámetrosIndexación de pedidosHashing
Dirección de la tiendaLas direcciones en la memoria están ordenadas por un valor de clave llamado clave principalLas direcciones siempre se generan utilizando una función hash del valor principal.
ActuaciónPuede 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 paraLo 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 memoriaHabrá 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:

  1. 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.
  2. 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: