Hashing i DBMS: statiske og dynamiske hashing-teknikker

Hva er hashing i DBMS?

I DBMS er hashing en teknikk for รฅ direkte sรธke etter plasseringen av รธnskede data pรฅ disken uten รฅ bruke indeksstruktur. Hashing-metoden brukes til รฅ indeksere og hente elementer i en database, da det er raskere รฅ sรธke i det spesifikke elementet ved รฅ bruke den kortere hash-nรธkkelen i stedet for รฅ bruke dens opprinnelige verdi. Data lagres i form av datablokker hvis adresse genereres ved รฅ bruke en hash-funksjon pรฅ minnestedet hvor disse postene er lagret kjent som en datablokk eller databรธtte.

Hvorfor trenger vi Hashing?

Her er situasjonene i DBMS der du mรฅ bruke hashing-metoden:

  • For en enorm databasestruktur er det vanskelig รฅ sรธke i alle indeksverdiene gjennom alle nivรฅene, og deretter mรฅ du nรฅ destinasjonsdatablokken for รฅ fรฅ de รธnskede dataene.
  • Hashing-metoden brukes til รฅ indeksere og hente elementer i en database, da det er raskere รฅ sรธke i det spesifikke elementet ved รฅ bruke den kortere hash-nรธkkelen i stedet for รฅ bruke dens opprinnelige verdi.
  • Hashing er en ideell metode for รฅ beregne den direkte plasseringen av en datapost pรฅ disken uten รฅ bruke indeksstruktur.
  • Det er ogsรฅ en nyttig teknikk for รฅ implementere ordbรธker.

Viktige terminologier i hashing

Her er viktige terminologier som brukes i Hashing:

  • Databรธtte โ€“ Databรธtter er minneplasseringer der postene er lagret. Det er ogsรฅ kjent som Unit Of Storage.
  • nรธkkel: En DBMS nรธkkel er et attributt eller sett med et attributt som hjelper deg รฅ identifisere en rad(tuppel) i en relasjon(tabell). Dette lar deg finne forholdet mellom to tabeller.
  • Hash-funksjon: En hash-funksjon er en kartfunksjon som tilordner alle settet med sรธkenรธkler til adressen der faktiske poster er plassert.
  • Lineรฆr sondering โ€“ Lineรฆr sondering er et fast intervall mellom sonder. I denne metoden brukes neste tilgjengelige datablokk for รฅ legge inn den nye posten, i stedet for รฅ overskrive pรฅ den eldre posten.
  • Kvadratisk sonderingโ€“ Det hjelper deg รฅ finne den nye bรธtteadressen. Det hjelper deg รฅ legge til Intervall mellom sonder ved รฅ legge til den pรฅfรธlgende utgangen av kvadratisk polynom til startverdien gitt av den opprinnelige beregningen.
  • Hash-indeks โ€“ Det er en adresse til datablokken. En hash-funksjon kan vรฆre en enkel matematisk funksjon til og med en kompleks matematisk funksjon.
  • Double hashing -Double hashing er en dataprogrammeringsmetode som brukes i hash-tabeller for รฅ lรธse problemene med har en kollisjon.
  • Bรธtteoverlรธp: Tilstanden med bรธtteoverlรธp kalles kollisjon. Dette er et fatalt stadium for statisk elektrisitet for รฅ fungere.

Typer hashing-teknikker

Det er hovedsakelig to typer SQL-hash-metoder/-teknikker:

  1. Statisk hashing
  2. Dynamisk hasj

statisk hashing

I den statiske hashing vil den resulterende datasamlingsadressen alltid forbli den samme.

Derfor, hvis du genererer en adresse for si Student_ID = 10 bruker hashing-funksjonen mod(3), vil den resulterende bรธtteadressen alltid vรฆre 1. Sรฅ du vil ikke se noen endring i bรธtteadressen.

Derfor, i denne statiske hashing-metoden, forblir antallet databรธtter i minnet alltid konstant.

Statiske hash-funksjoner

  • Setter inn en post: Nรฅr en ny post mรฅ settes inn i tabellen, kan du generere en adresse for den nye posten ved รฅ bruke hash-nรธkkelen. Nรฅr adressen er generert, lagres posten automatisk pรฅ det stedet.
  • Sรธker: Nรฅr du trenger รฅ hente posten, bรธr den samme hash-funksjonen vรฆre nyttig for รฅ hente adressen til bรธtten der data skal lagres.
  • Slett en post: Ved รฅ bruke hash-funksjonen kan du fรธrst hente posten som du vil slette. Deretter kan du fjerne postene for den adressen i minnet.

Statisk hashing er videre delt inn i

  1. ร…pne hashing
  2. Lukk hashing.

ร…pne Hashing

I Open hashing-metoden, i stedet for รฅ overskrive en eldre, brukes den neste tilgjengelige datablokken til รฅ legge inn den nye posten. Denne metoden er ogsรฅ kjent som lineรฆr sondering.

For eksempel er A2 en ny post som du vil sette inn. Hash-funksjonen genererer adresse som 222. Men den er allerede okkupert av en annen verdi. Det er derfor systemet ser etter neste databรธtte 501 og tilordner A2 til den.

ร…pne Hashing
Hvordan Open Hash fungerer

Lukk Hashing

I nรฆr-hash-metoden, nรฅr bรธttene er fulle, tildeles en ny bรธtte for samme hash og resultatet kobles etter den forrige.

Dynamisk hasj

Dynamisk hashing tilbyr en mekanisme der databรธtter legges til og fjernes dynamisk og pรฅ forespรธrsel. I denne hashen hjelper hash-funksjonen deg med รฅ lage et stort antall verdier.

Forskjellen mellom ordnet indeksering og hashing

Nedenfor er de viktigste forskjellene mellom indeksering og hashing

Parametre Ordreindeksering hashing
Lagring av adresse Adresser i minnet er sortert i henhold til en nรธkkelverdi kalt primรฆrnรธkkelen Adresser genereres alltid ved hjelp av en hash-funksjon pรฅ nรธkkelverdien.
Ytelse Det kan reduseres nรฅr dataene รธker i hash-filen. Siden den lagrer dataene i en sortert form nรฅr det utfรธres en (sett inn/slett/oppdater) operasjon som reduserer ytelsen. Ytelsen til hashing vil vรฆre best nรฅr det er et konstant tillegg og sletting av data. Men nรฅr databasen er stor, vil hashfilorganisering og vedlikehold av den vรฆre dyrere.
Bruke til Foretrukket for rekkeviddehenting av data - som betyr at nรฅr det er gjenfinningsdata for et bestemt omrรฅde, er denne metoden et ideelt alternativ. Dette er en ideell metode nรฅr du รธnsker รฅ hente en bestemt post basert pรฅ sรธkenรธkkelen. Den vil imidlertid bare fungere bra nรฅr hash-funksjonen er pรฅ sรธketasten.
Minnehรฅndtering Det vil vรฆre mange ubrukte datablokker pรฅ grunn av slette-/oppdateringsoperasjonen. Disse datablokkene kan ikke frigis for gjenbruk. Det er derfor regelmessig vedlikehold av minnet er nรธdvendig. I statiske og dynamiske hashing-metoder administreres minnet alltid. Bรธtteoverlรธp hรฅndteres ogsรฅ perfekt for รฅ utvide statisk hashing.

Hva er kollisjon?

Hash-kollisjon er en tilstand nรฅr den resulterende hashes fra to eller flere data i datasettet, feilaktig kartlegger det samme stedet i hasjbord.

Hvordan hรฅndtere Hashing Collision?

Det er to teknikker du kan bruke for รฅ unngรฅ en hash-kollisjon:

  1. Rehashing: Denne metoden pรฅkaller en sekundรฆr hash-funksjon, som brukes kontinuerlig til et tomt spor blir funnet, hvor en post skal plasseres.
  2. Kjetting: Kjedemetode bygger en koblet liste over elementer hvis nรธkkel hashes til samme verdi. Denne metoden krever et ekstra lenkefelt til hver bordposisjon.

Sammendrag

  • In DBMS, er hashing en teknikk for รฅ direkte sรธke etter plasseringen av รธnskede data pรฅ disken uten รฅ bruke indeksstruktur.
  • Hashing-metoden brukes til รฅ indeksere og hente elementer i en database, da det er raskere รฅ sรธke i det spesifikke elementet ved รฅ bruke den kortere hash-nรธkkelen i stedet for รฅ bruke dens opprinnelige verdi.
  • Databรธtte, nรธkkel, hash-funksjon, lineรฆr sondering, kvadratisk sondering, hasj-indeks, Double Hashing, Bucket Overflow er viktige terminologier som brukes i hashing
  • To typer hashing-metoder er 1) statisk hashing 2) dynamisk hashing
  • I den statiske hashing vil den resulterende datasamlingsadressen alltid forbli den samme.
  • Dynamisk hashing tilbyr en mekanisme der databรธtter legges til og fjernes dynamisk og pรฅ forespรธrsel.
  • I rekkefรธlge blir indekseringsadresser i minnet sortert etter en kritisk verdi, mens i hashing blir adresser alltid generert ved hjelp av en hash-funksjon pรฅ nรธkkelverdien.
  • Hash-kollisjon er en tilstand nรฅr den resulterende hashes fra to eller flere data i datasettet, feilaktig kartlegger samme sted i hashtabellen.
  • Rehashing og chaining er to metoder som hjelper deg รฅ unngรฅ hashing-kollisjon.

Oppsummer dette innlegget med: