Qual è la differenza tra l'hashing statico e dinamico

Il differenza principale tra l'hashing statico e dinamico è quello, nell'hash statico, l'indirizzo del bucket di dati risultante è sempre lo stesso mentre, con l'hashing dinamico, i bucket di dati crescono o si riducono in base all'aumento e alla diminuzione dei record.

Non è possibile cercare tutti gli indici per trovare i dati in un grande database. Hashing fornisce un'alternativa a questo problema. Inoltre, consente di calcolare la posizione diretta dei dati sul disco senza utilizzare gli indici. L'hashing utilizza funzioni matematiche chiamate funzioni hash per generare indirizzi di record di dati. Inoltre, le posizioni di memoria che memorizzano i dati sono chiamate bucket di dati. Esistono due tipi di hashing chiamati hashing statici e dinamici.

Aree chiave coperte

1. Che cos'è l'hashing statico
     - Definizione, Funzionalità
2. Cos'è l'Hashing dinamico
     - Definizione, Funzionalità
3. Qual è la differenza tra l'hashing statico e dinamico
     - Confronto tra le principali differenze

Parole chiave

Hashing, Hashing statico, Hashing dinamico

Che cos'è l'hashing statico

Nell'hash statico, l'indirizzo del bucket di dati risultante è sempre lo stesso. In altre parole, l'indirizzo del bucket non cambia. Pertanto, in questo metodo, il numero di bucket di dati nella memoria rimane costante per tutto il tempo.

Le operazioni di hashing statico sono le seguenti.

Inserimento - Quando si immette un record utilizzando l'hashing statico, la funzione hash (h) calcola l'indirizzo del bucket per la chiave di ricerca (k), in cui il record verrà archiviato. Indirizzo benna = h (K).

Ricerca - Quando si ottiene un record, la stessa funzione di hash consente di ottenere l'indirizzo del bucket in cui sono archiviati i dati.

Elimina - Dopo aver recuperato il record, è possibile cancellare i record per quell'indirizzo in memoria.

Aggiornare - Dopo aver cercato il record usando una funzione hash, è possibile aggiornare quel record.

Inoltre, uno dei problemi principali nell'hashing statico è la straripamento del bucket. Alcuni metodi per superare questo problema sono i seguenti.

Overflow concatenamento - Nuovo bucket creato per lo stesso risultato di hash quando i bucket sono pieni

Sondaggio lineare - Il prossimo bucket libero allocato per i dati quando una funzione hash genera un indirizzo in cui i dati sono già memorizzati.

Cos'è l'Hashing dinamico

Un problema nell'hash statico è l'overflow del bucket. L'hashing dinamico aiuta a superare questo problema. È anche chiamato Metodo di hashing estendibile.  In questo metodo, i bucket di dati aumentano e diminuiscono in base al numero di record. Permette di eseguire operazioni come l'inserimento, la cancellazione ecc. Senza influire sulle prestazioni.

Le operazioni di hashing dinamico sono le seguenti.

Inserimento - Calcola l'indirizzo del bucket. Se il bucket è già pieno, è possibile aggiungere più bucket. Inoltre, è possibile aggiungere ulteriori bit al valore hash e ricalcolare la funzione hash. Se i bucket non sono pieni, è possibile aggiungere dati al bucket.

Interrogazione - Controlla il valore di profondità dell'indice hash e usa quei bit per calcolare l'indirizzo del bucket.

Aggiornare - Esegue una query e aggiorna i dati.

Elimina - Esegue una query per individuare i dati desiderati da eliminare.

Differenza tra l'Hashing statico e l'Hashing dinamico

Definizione

L'hashing statico è una tecnica di hashing che consente agli utenti di eseguire ricerche su un set di dizionari finalizzato (tutti gli oggetti nel dizionario sono definitivi e non cambiano). Al contrario, l'hashing dinamico è una tecnica di hashing in cui i bucket di dati vengono aggiunti e rimossi dinamicamente e su richiesta. Quindi, questa è la principale differenza tra l'hashing statico e dinamico.

Funzionalità

Nell'hash statico, l'indirizzo del bucket di dati risultante è sempre lo stesso. Nell'hash dinamico, tuttavia, i bucket di dati cambiano a seconda dei record. Quindi, questa è un'altra importante differenza tra l'hashing statico e dinamico.

Efficienza

L'efficienza è l'altra differenza tra l'hashing statico e dinamico. L'hashing dinamico è più efficiente dell'hash statico.

Conclusione

In breve, l'hashing è il metodo per utilizzare funzioni matematiche chiamate funzioni hash per calcolare le posizioni dirette dei record di dati sul disco. Inoltre, l'hashing statico e dinamico sono due tipi di hashing. La principale differenza tra l'hashing statico e dinamico è che, nell'hash statico, l'indirizzo del data bucket risultante è sempre lo stesso mentre nell'hashing dinamico, i bucket di dati crescono o si riducono in base all'aumento e alla diminuzione dei record.

Riferimento:

1. "DBMS Static Hashing - Javatpoint." Www.javatpoint.com, disponibile qui.
2. "DBMS Dynamic Hashing - Javatpoint." Www.javatpoint.com, disponibile qui.

Cortesia dell'immagine:

1. "Extendible hashing 1" Аутор: Svick - Сопствено дело (CC BY 3.0) via Commons Wikimedia