Qual è la differenza tra l'indicizzazione e l'hashing

Il differenza principale tra l'indicizzazione e l'hashing è che il 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.

Un database è una raccolta di dati associati. Un sistema di gestione database o DBMS consente 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 relativi al DBMS.

Aree chiave coperte

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

Parole chiave

DBMS, indicizzazione in cluster, hashing, indicizzazione, indicizzazione ordinata, indicizzazione primaria, indicizzazione secondaria, SQL

Cos'è l'indicizzazione

Quando si eseguono query SQL, ci vuole un po 'di tempo per accedere ai dati dal disco. Qui, 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 è possibile accedere per elaborare le query.

Un indice è costituito da due sezioni; una chiave di ricerca e un riferimento di dati. La chiave di ricerca contiene la chiave primaria o la chiave candidata della tabella. Il riferimento 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 come segue.

Indicizzazione ordinata - Gli indici sono ordinati, rendendo la ricerca dei dati più veloce

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, ci sono record di indici per alcuni elementi di dati.

Indicizzazione raggruppata - 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.

Cosa è Hashing

In un database di grandi dimensioni, non è possibile cercare 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 solitamente utilizza la chiave primaria per generare l'indirizzo del blocco dati.

Esistono due tipi di hashing come hashing statici e dinamici. Nell'hash statico, l'indirizzo del bucket di dati risultante è sempre lo stesso. Tuttavia, l'hashing statico provoca lo straripamento del bucket. L'hashing dinamico è una soluzione a questo problema. Nell'hash dinamico, il bucket di dati aumenta o diminuisce in base al numero di record.

Differenza tra l'indicizzazione e l'hashing

Definizione

L'indicizzazione è una tecnica di 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 l'indicizzazione e l'hashing. 

Funzionalità

L'indicizzazione utilizza il riferimento 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 l'indicizzazione e l'hashing.

Applicazione

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

Conclusione

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.

Riferimento:

1. "Indicizzazione DBMS in DBMS - Javatpoint." Www.javatpoint.com, disponibile qui.
2. "DBMS Hashing - Javatpoint." Www.javatpoint.com, disponibile qui.

Cortesia dell'immagine:

1. "Hash table 4 1 1 0 0 1 0 LL" di Jorge Stolfi - Opera propria (di pubblico dominio) via Commons Wikimedia