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:
- Statisk hashing
- 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
- Åpne hashing
- 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.

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:
- Rehashing: Denne metoden påkaller en sekundær hash-funksjon, som brukes kontinuerlig til et tomt spor blir funnet, hvor en post skal plasseres.
- 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.