Differenza tra indicizzazione e hashing in informatica

Differenza tra indicizzazione e hashing in informatica

La principale differenza tra l’indicizzazione e l’hashing è che l’ indicizzazione (in inglese indexing) ottimizza le prestazioni di un database riducendo il numero di accessi al disco per elaborare le query mentre l’hashing calcola la posizione diretta di un record di dati sul disco senza utilizzare la struttura dell’indice.

Un database è una raccolta di dati associati. Un DBMS o Database Management System consente invece di creare e gestire facilmente i dati nei database. Gli utenti possono scrivere  query SQL per eseguire operazioni sulle tabelle di un database. DBMS consente a più utenti di accedere e utilizzare i dati. Inoltre, consente di eseguire transazioni e fornisce protezione dei dati. L’indicizzazione e l’hashing sono due concetti correlati al DBMS.

Indicizzazione

Quando si eseguono query SQL, è necessario del tempo per accedere ai dati dal disco. In questo caso, un indice è una struttura di dati che aiuta a trovare e accedere rapidamente ai dati in una tabella di un database. La tecnica di indicizzazione riduce il numero di dischi a cui si accede per elaborare le query.

Un indice è composto da due sezioni; una chiave di ricerca e un riferimento ai dati. La chiave di ricerca contiene la chiave primaria o la chiave candidata della tabella. Il riferimento ai dati contiene l’indirizzo del blocco del disco che ha il valore corrispondente a quella chiave.

Inoltre, ci sono vari tipi di indici. Alcuni di loro sono i seguenti.

Indicizzazione ordinata: gli indici vengono ordinati, velocizzando la ricerca dei dati

Indicizzazione primaria: quando l’indice è basato sulla chiave primaria della tabella, viene chiamato indice primario. Esistono due tipi di indici nella chiave primaria denominati indice denso e di riserva. L’indice denso contiene un record di indice per ogni valore della chiave di ricerca nel file di dati. Nell’indice di riserva, sono presenti record di indice per alcuni elementi di dati.

Indicizzazione cluster: utilizza una combinazione di due o più colonne per creare un indice. Un gruppo di record è costituito da record con le stesse caratteristiche. E questi gruppi creano gli indici.

Indicizzazione secondaria: contiene un altro livello di indicizzazione per ridurre al minimo le dimensioni della mappatura.

Hashing

In un database di grandi dimensioni, non è possibile cercare in tutti gli indici per ottenere i dati richiesti. L’hashing aiuta a trovare la posizione diretta di un record di dati specifico sul disco senza utilizzare l’indicizzazione. Qui, i blocchi di dati, chiamati anche bucket di dati, memorizzano i dati. Una funzione di hashing è una funzione matematica. Aiuta a generare gli indirizzi di quei blocchi di dati. Inoltre, la funzione di hashing può selezionare qualsiasi valore di colonna per generare l’indirizzo, ma di solito utilizza la chiave primaria per generare l’indirizzo del blocco di dati.

Esistono due tipi di hashing come hashing statico e dinamico. Nell’hashing statico, l’indirizzo del bucket di dati risultante è sempre lo stesso. Tuttavia, l’hashing statico causa il trabocco del bucket. L’hashing dinamico è una soluzione a questo problema. Nell’hashing dinamico, il bucket di dati aumenta o diminuisce a seconda del numero di record.

Differenza tra indicizzazione e hashing in informatica

Differenza tra indicizzazione e hashing

Definizione

L’indicizzazione è una tecnica della struttura dei dati per recuperare in modo efficiente i record dai file di database in base ad alcuni attributi su cui è avvenuta l’indicizzazione. D’altra parte, l’hashing è una tecnica efficace per calcolare la posizione diretta di un record di dati sul disco senza utilizzare la struttura dell’indice. Quindi, questa è la principale differenza tra indicizzazione e hashing. 

Funzionalità

L’indicizzazione utilizza il riferimento ai dati che contiene l’indirizzo del blocco del disco con il valore corrispondente alla chiave mentre l’hashing utilizza funzioni matematiche chiamate funzioni hash per calcolare le posizioni dirette dei record di dati sul disco. Quindi, questa è anche una grande differenza tra indicizzazione e hashing.

Applicazione

Un’altra differenza tra l’indicizzazione e l’hashing è che l’hashing funziona bene per i database di grandi dimensioni rispetto all’indicizzazione.

Conclusioni

La principale differenza tra l’indicizzazione e l’hashing è che l’indicizzazione ottimizza le prestazioni di un database riducendo il numero di accessi al disco per elaborare le query mentre l’hashing calcola la posizione diretta di un record di dati sul disco senza utilizzare la struttura dell’indice.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *