Hachage dans les SGBD : techniques de hachage statique et dynamique

Quโ€™est-ce que le hachage dans un SGBD ?

Dans le SGBD, le hachage est une technique permettant de rechercher directement l'emplacement des donnรฉes souhaitรฉes sur le disque sans utiliser de structure d'index. La mรฉthode de hachage est utilisรฉe pour indexer et rรฉcupรฉrer des รฉlรฉments dans une base de donnรฉes, car il est plus rapide de rechercher cet รฉlรฉment spรฉcifique ร  l'aide de la clรฉ hachรฉe la plus courte au lieu d'utiliser sa valeur d'origine. Les donnรฉes sont stockรฉes sous forme de blocs de donnรฉes dont l'adresse est gรฉnรฉrรฉe en appliquant une fonction de hachage dans l'emplacement mรฉmoire oรน ces enregistrements sont stockรฉs, appelรฉ bloc de donnรฉes ou compartiment de donnรฉes.

Pourquoi avons-nous besoin de hachage ?

Voici les situations dans le SGBD oรน vous devez appliquer la mรฉthode Hashing :

  • Pour une รฉnorme structure de base de donnรฉes, il est difficile de rechercher toutes les valeurs d'index ร  tous ses niveaux et vous devez ensuite atteindre le bloc de donnรฉes de destination pour obtenir les donnรฉes souhaitรฉes.
  • La mรฉthode de hachage est utilisรฉe pour indexer et rรฉcupรฉrer des รฉlรฉments dans une base de donnรฉes, car il est plus rapide de rechercher cet รฉlรฉment spรฉcifique ร  l'aide de la clรฉ hachรฉe la plus courte au lieu d'utiliser sa valeur d'origine.
  • Le hachage est une mรฉthode idรฉale pour calculer l'emplacement direct d'un enregistrement de donnรฉes sur le disque sans utiliser de structure d'index.
  • C'est รฉgalement une technique utile pour implรฉmenter des dictionnaires.

Terminologies importantes dans le hachage

Voici les terminologies importantes utilisรฉes dans le hachage :

  • Compartiment de donnรฉes โ€“ Les compartiments de donnรฉes sont des emplacements de mรฉmoire oรน les enregistrements sont stockรฉs. On lโ€™appelle รฉgalement unitรฉ de stockage.
  • ACTIVITES: Un Clรฉ SGBD est un attribut ou un ensemble d'attributs qui vous aide ร  identifier une ligne (tuple) dans une relation (table). Cela vous permet de trouver la relation entre deux tables.
  • Fonction de hachageUne fonction de hachage est une carte.ping fonction qui associe l'ensemble des clรฉs de recherche ร  l'adresse oรน se trouvent les enregistrements rรฉels.
  • Sondage linรฉaire โ€“ Le sondage linรฉaire est un intervalle fixe entre les sondes. Dans cette mรฉthode, le prochain bloc de donnรฉes disponible est utilisรฉ pour saisir le nouvel enregistrement, au lieu d'รฉcraser l'ancien enregistrement.
  • Sondage quadratiqueโ€“ Il vous aide ร  dรฉterminer la nouvelle adresse du compartiment. Il vous aide ร  ajouter un intervalle entre les sondes en ajoutant la sortie consรฉcutive du polynรดme quadratique ร  la valeur de dรฉpart donnรฉe par le calcul d'origine.
  • Indice de hachage โ€“ C'est une adresse du bloc de donnรฉes. Une fonction de hachage peut รชtre une fonction mathรฉmatique simple, voire une fonction mathรฉmatique complexe.
  • Double Hachage -Double Le hachage est une mรฉthode de programmation informatique utilisรฉe dans les tables de hachage pour rรฉsoudre les problรจmes de collision.
  • Dรฉbordement de godet: La condition de dรฉbordement du seau est appelรฉe collision. Cโ€™est une รฉtape fatale pour que tout statique doive fonctionner.

Types de techniques de hachage

Il existe principalement deux types de mรฉthodes/techniques de hachage SQL :

  1. Hashing statique
  2. Hashing dynamique

Hachage statique

Lors du hachage statique, lโ€™adresse du compartiment de donnรฉes rรฉsultante restera toujours la mรชme.

Par consรฉquent, si vous gรฉnรฉrez une adresse pour, par exemple, ID_รฉtudiant = 10 en utilisant la fonction de hachage mod(3), l'adresse du bucket rรฉsultant sera toujours 1. Ainsi, vous ne verrez aucun changement dans lโ€™adresse du compartiment.

Par consรฉquent, dans cette mรฉthode de hachage statique, le nombre de compartiments de donnรฉes en mรฉmoire reste toujours constant.

Fonctions de hachage statique

  • Insรฉrer un enregistrement: Lorsqu'un nouvel enregistrement doit รชtre insรฉrรฉ dans la table, vous pouvez gรฉnรฉrer une adresse pour le nouvel enregistrement ร  l'aide de sa clรฉ de hachage. Lorsque l'adresse est gรฉnรฉrรฉe, l'enregistrement est automatiquement stockรฉ ร  cet emplacement.
  • Recherche: Lorsque vous devez rรฉcupรฉrer l'enregistrement, la mรชme fonction de hachage devrait รชtre utile pour rรฉcupรฉrer l'adresse du compartiment dans lequel les donnรฉes doivent รชtre stockรฉes.
  • Supprimer un enregistrement: ร€ l'aide de la fonction de hachage, vous pouvez d'abord rรฉcupรฉrer l'enregistrement que vous souhaitez supprimer. Ensuite, vous pouvez supprimer les enregistrements de cette adresse en mรฉmoire.

Le hachage statique est divisรฉ en

  1. Hachage ouvert
  2. Fermez le hachage.

Hachage ouvert

Dans la mรฉthode de hachage ouvert, au lieu d'รฉcraser l'ancien, le prochain bloc de donnรฉes disponible est utilisรฉ pour saisir le nouvel enregistrement. Cette mรฉthode est รฉgalement connue sous le nom de sondage linรฉaire.

Par exemple, A2 est un nouvel enregistrement que vous souhaitez insรฉrer. La fonction de hachage gรฉnรจre l'adresse 222. Mais elle est dรฉjร  occupรฉe par une autre valeur. C'est pourquoi le systรจme recherche le prochain compartiment de donnรฉes 501 et lui attribue A2.

Hachage ouvert
Comment fonctionne le hachage ouvert

Fermer le hachage

Dans la mรฉthode de hachage fermรฉ, lorsque les compartiments sont pleins, un nouveau compartiment est allouรฉ pour le mรชme hachage et les rรฉsultats sont liรฉs aprรจs le prรฉcรฉdent.

Hashing dynamique

Le hachage dynamique offre un mรฉcanisme dans lequel des compartiments de donnรฉes sont ajoutรฉs et supprimรฉs de maniรจre dynamique et ร  la demande. Dans ce hachage, la fonction de hachage vous aide ร  crรฉer un grand nombre de valeurs.

Diffรฉrence entre l'indexation ordonnรฉe et le hachage

Vous trouverez ci-dessous les principales diffรฉrences entre l'indexation et le hachage.

Paramรจtres Indexation des commandes Hachage
Stockage de l'adresse Les adresses en mรฉmoire sont triรฉes selon une valeur de clรฉ appelรฉe clรฉ primaire Les adresses sont toujours gรฉnรฉrรฉes ร  l'aide d'une fonction de hachage sur la valeur clรฉ.
Performances Il peut diminuer lorsque les donnรฉes augmentent dans le fichier de hachage. Comme il stocke les donnรฉes sous une forme triรฉe lorsqu'une opรฉration (insertion/suppression/mise ร  jour) est effectuรฉe qui diminue ses performances. Les performances du hachage seront meilleures lorsquโ€™il y aura un ajout et une suppression constants de donnรฉes. Cependant, lorsque la base de donnรฉes est volumineuse, lโ€™organisation des fichiers de hachage et leur maintenance seront plus coรปteuses.
Utiliser pour Prรฉfรฉrรฉe pour la rรฉcupรฉration de donnรฉes sur une plage, ce qui signifie que chaque fois qu'il existe des donnรฉes de rรฉcupรฉration pour une plage particuliรจre, cette mรฉthode est une option idรฉale. Il s'agit d'une mรฉthode idรฉale lorsque vous souhaitez rรฉcupรฉrer un enregistrement particulier en fonction de la clรฉ de recherche. Cependant, cela ne fonctionnera bien que lorsque la fonction de hachage sera sur la clรฉ de recherche.
Gestion de la mรฉmoire Il y aura de nombreux blocs de donnรฉes inutilisรฉs en raison de l'opรฉration de suppression/mise ร  jour. Ces blocs de donnรฉes ne peuvent pas รชtre libรฉrรฉs pour รชtre rรฉutilisรฉs. C'est pourquoi un entretien rรฉgulier de la mรฉmoire est nรฉcessaire. Dans les mรฉthodes de hachage statiques et dynamiques, la mรฉmoire est toujours gรฉrรฉe. Le dรฉbordement du bucket est รฉgalement parfaitement gรฉrรฉ pour รฉtendre le hachage statique.

Qu'est-ce que la collision ?

La collision de hachage est un รฉtat dans lequel les hachages rรฉsultants de deux ou plusieurs donnรฉes de l'ensemble de donnรฉes mappent ร  tort le mรชme endroit dans l'ensemble de donnรฉes. table de hachage.

Comment gรฉrer les collisions de hachage ?

Il existe deux techniques que vous pouvez utiliser pour รฉviter une collision de hachage :

  1. ressasser: Cette mรฉthode invoque une fonction de hachage secondaire, qui est appliquรฉe en continu jusqu'ร  ce qu'un emplacement vide soit trouvรฉ, oรน un enregistrement doit รชtre placรฉ.
  2. Chaรฎnage: La mรฉthode de chaรฎnage crรฉe une liste liรฉe dโ€™รฉlรฉments dont la clรฉ est hachรฉe ร  la mรชme valeur. Cette mรฉthode nรฉcessite un champ de lien supplรฉmentaire vers chaque position de la table.

Rรฉsumรฉ

  • In SGBD, le hachage est une technique permettant de rechercher directement l'emplacement des donnรฉes souhaitรฉes sur le disque sans utiliser de structure d'index.
  • La mรฉthode de hachage est utilisรฉe pour indexer et rรฉcupรฉrer des รฉlรฉments dans une base de donnรฉes, car il est plus rapide de rechercher cet รฉlรฉment spรฉcifique ร  l'aide de la clรฉ hachรฉe la plus courte au lieu d'utiliser sa valeur d'origine.
  • Godet de donnรฉes, clรฉ, fonction de hachage, sondage linรฉaire, sondage quadratique, index de hachage, Double Hachage, Bucket Overflow sont des terminologies importantes utilisรฉes dans le hachage
  • Il existe deux types de mรฉthodes de hachage : 1) le hachage statique 2) le hachage dynamique
  • Lors du hachage statique, lโ€™adresse du compartiment de donnรฉes rรฉsultante restera toujours la mรชme.
  • Le hachage dynamique offre un mรฉcanisme dans lequel des compartiments de donnรฉes sont ajoutรฉs et supprimรฉs de maniรจre dynamique et ร  la demande.
  • Dans l'ordre, les adresses d'indexation dans la mรฉmoire sont triรฉes selon une valeur critique tandis que dans le hachage, les adresses sont toujours gรฉnรฉrรฉes ร  l'aide d'une fonction de hachage sur la valeur clรฉ.
  • La collision de hachage est un รฉtat dans lequel les hachages rรฉsultants de deux ou plusieurs donnรฉes de l'ensemble de donnรฉes mappent ร  tort le mรชme endroit dans la table de hachage.
  • Le rehachage et le chaรฎnage sont deux mรฉthodes qui vous aident ร  รฉviter les collisions de hachage.

Rรฉsumez cet article avec :