Hashing i DBMS: Statiske og dynamiske hashing-teknikker

Hvad er hashing i DBMS?

I DBMS er hashing en teknik til direkte at søge efter placeringen af ​​ønskede data på disken uden at bruge indeksstruktur. Hashing-metoden bruges til at indeksere og hente elementer i en database, da det er hurtigere at søge i det specifikke element ved hjælp af den kortere hash-nøgle i stedet for at bruge dens oprindelige værdi. Data lagres i form af datablokke, hvis adresse genereres ved at anvende en hash-funktion på den hukommelsesplacering, hvor disse poster er lagret kendt som en datablok eller databøtte.

Hvorfor har vi brug for Hashing?

Her er de situationer i DBMS, hvor du skal anvende hashing-metoden:

  • For en enorm databasestruktur er det svært at søge i alle indeksværdier gennem hele dets niveau, og så skal du nå destinationsdatablokken for at få de ønskede data.
  • Hashing-metoden bruges til at indeksere og hente elementer i en database, da det er hurtigere at søge i det specifikke element ved hjælp af den kortere hash-nøgle i stedet for at bruge dens oprindelige værdi.
  • Hashing er en ideel metode til at beregne den direkte placering af en datapost på disken uden at bruge indeksstruktur.
  • Det er også en nyttig teknik til at implementere ordbøger.

Vigtige terminologier i hashing

Her er vigtige terminologier, der bruges i Hashing:

  • Databøtte – Data buckets er hukommelsessteder, hvor registreringerne er gemt. Det er også kendt som Unit Of Storage.
  • Nøgle: A DBMS nøgle er en attribut eller et sæt af en attribut, som hjælper dig med at identificere en række(tuple) i en relation(tabel). Dette giver dig mulighed for at finde forholdet mellem to tabeller.
  • Hash-funktion: En hash-funktion er en kortlægningsfunktion, som kortlægger hele sættet af søgenøgler til den adresse, hvor faktiske poster er placeret.
  • Lineær sondering – Lineær sondering er et fast interval mellem sonder. I denne metode bruges den næste tilgængelige datablok til at indtaste den nye post, i stedet for at overskrive på den ældre post.
  • Kvadratisk sondering– Det hjælper dig med at bestemme den nye spandadresse. Det hjælper dig med at tilføje interval mellem sonder ved at tilføje det konsekutive output af kvadratisk polynomium til startværdien givet af den oprindelige beregning.
  • Hash-indeks – Det er en adresse på datablokken. En hashfunktion kunne være en simpel matematisk funktion til selv en kompleks matematisk funktion.
  • Double hashing -Double hashing er en computerprogrammeringsmetode, der bruges i hashtabeller til at løse problemerne med har en kollision.
  • Spandoverløb: Tilstanden med skovl-overløb kaldes kollision. Dette er en fatal fase for enhver statisk skal fungere.

Typer af hashing-teknikker

Der er hovedsageligt to typer SQL-hash-metoder/-teknikker:

  1. Statisk hash
  2. Dynamisk hash

statisk hashing

I den statiske hashing vil den resulterende dataindsamlingsadresse altid forblive den samme.

Derfor, hvis du genererer en adresse for sige Student_ID = 10 ved hjælp af hashing-funktion mod(3), vil den resulterende bucket-adresse altid være 1. Så du vil ikke se nogen ændring i bøtteadressen.

Derfor, i denne statiske hashmetode, forbliver antallet af dataspante i hukommelsen altid konstant.

Statiske hash-funktioner

  • Indsættelse af en post: Når en ny post skal indsættes i tabellen, kan du generere en adresse til den nye post ved hjælp af dens hash-nøgle. Når adressen er genereret, gemmes posten automatisk på det pågældende sted.
  • Søgning: Når du skal hente posten, bør den samme hash-funktion være nyttig til at hente adressen på den bucket, hvor data skal gemmes.
  • Slet en post: Ved hjælp af hash-funktionen kan du først hente den post, som du vil slette. Derefter kan du fjerne posterne for den adresse i hukommelsen.

Statisk hashing er yderligere opdelt i

  1. Åbn hashing
  2. Luk hashing.

Åbn Hashing

I Open hashing-metoden, i stedet for at overskrive en ældre, bruges den næste tilgængelige datablok til at indtaste den nye post. Denne metode er også kendt som lineær sondering.

For eksempel er A2 en ny post, som du vil indsætte. Hash-funktionen genererer adresse som 222. Men den er allerede optaget af en anden værdi. Det er derfor, systemet leder efter den næste dataspand 501 og tildeler den A2.

Åbn Hashing
Sådan fungerer Open Hash

Luk Hashing

I tæt-hash-metoden, når buckets er fulde, tildeles en ny bucket til den samme hash, og resultatet linkes efter den forrige.

Dynamisk hash

Dynamisk hashing tilbyder en mekanisme, hvor datasamlinger tilføjes og fjernes dynamisk og efter behov. I denne hashing hjælper hash-funktionen dig med at skabe et stort antal værdier.

Forskellen mellem ordnet indeksering og hashing

Nedenfor er de vigtigste forskelle mellem indeksering og hashing

parametre Ordreindeksering hashing
Opbevaring af adresse Adresser i hukommelsen er sorteret efter en nøgleværdi kaldet den primære nøgle Adresser genereres altid ved hjælp af en hash-funktion på nøgleværdien.
Performance (Præstation) Det kan falde, når dataene stiger i hash-filen. Da den gemmer dataene i en sorteret form, når der udføres en (indsæt/slet/opdater) handling, som reducerer dens ydeevne. Ydelse af hashing vil være bedst, når der er en konstant tilføjelse og sletning af data. Men når databasen er enorm, vil hashfilorganisering og vedligeholdelse være dyrere.
Brugt til Foretrukken til rækkeviddehentning af data - hvilket betyder, at når der er hentedata for et bestemt område, er denne metode en ideel mulighed. Dette er en ideel metode, når du ønsker at hente en bestemt post baseret på søgenøglen. Det vil dog kun fungere godt, når hash-funktionen er på søgetasten.
Hukommelsesstyring Der vil være mange ubrugte datablokke på grund af sletnings-/opdateringsoperationen. Disse datablokke kan ikke frigives til genbrug. Det er derfor, der kræves regelmæssig vedligeholdelse af hukommelsen. I statiske og dynamiske hashing-metoder administreres hukommelsen altid. Skovloverløb håndteres også perfekt for at forlænge statisk hashing.

Hvad er kollision?

Hashkollision er en tilstand, hvor den resulterende hashes fra to eller flere data i datasættet fejlagtigt kortlægger det samme sted i hash bord.

Hvordan håndterer man Hashing Collision?

Der er to teknikker, som du kan bruge til at undgå en hashkollision:

  1. Genhasning: Denne metode kalder på en sekundær hash-funktion, som anvendes kontinuerligt, indtil der findes en tom plads, hvor en post skal placeres.
  2. Lænkning: Kædemetode opbygger en sammenkædet liste over elementer, hvis nøgle hashes til samme værdi. Denne metode kræver et ekstra linkfelt til hver tabelposition.

Resumé

  • In DBMS, hashing er en teknik til direkte at søge efter placeringen af ​​ønskede data på disken uden at bruge indeksstruktur.
  • Hashing-metoden bruges til at indeksere og hente elementer i en database, da det er hurtigere at søge i det specifikke element ved hjælp af den kortere hash-nøgle i stedet for at bruge dens oprindelige værdi.
  • Data bucket, nøgle, hash-funktion, lineær sondering, kvadratisk sondering, hash-indeks, Double Hashing, Bucket Overflow er vigtige terminologier, der bruges i hashing
  • To typer hashing-metoder er 1) statisk hashing 2) dynamisk hashing
  • I den statiske hashing vil den resulterende dataindsamlingsadresse altid forblive den samme.
  • Dynamisk hashing tilbyder en mekanisme, hvor datasamlinger tilføjes og fjernes dynamisk og efter behov.
  • Indekseringsadresser i hukommelsen sorteres i rækkefølge efter en kritisk værdi, mens adresser i hashing altid genereres ved hjælp af en hashfunktion på nøgleværdien.
  • Hash-kollision er en tilstand, hvor den resulterende hashes fra to eller flere data i datasættet fejlagtigt kortlægger det samme sted i hash-tabellen.
  • Rehashing og chaining er to metoder, som hjælper dig med at undgå hashingkollision.