Indicizzazione nei DBMS: Cos'è, Tipologie di Indici con ESEMPI
Cos'è l'indicizzazione?
Indicizzazione è una tecnica di struttura dei dati che consente di recuperare rapidamente i record da un file di database. Un indice è una piccola tabella con solo due colonne. La prima colonna comprende una copia della chiave primaria o candidata di una tabella. La sua seconda colonna contiene una serie di puntatori per contenere l'indirizzo del blocco del disco in cui è memorizzato quel valore di chiave specifico.
Un indice –
- Accetta una chiave di ricerca come input
- Restituisce in modo efficiente una raccolta di record corrispondenti.
Tipi di indicizzazione nei DBMS

L'indicizzazione nel database è definita in base ai suoi attributi di indicizzazione. Due tipi principali di metodi di indicizzazione sono:
- Indicizzazione primaria
- Indicizzazione secondaria
Indice primario nel DBMS
L'indice primario è un file ordinato di dimensione fissa con due campi. Il primo campo è uguale a una chiave primaria e il secondo, archiviato, punta a quello specifico blocco di dati. Nell'indice primario esiste sempre una relazione uno a uno tra le voci nella tabella dell'indice.
Anche l'indicizzazione primaria nel DBMS è ulteriormente suddivisa in due tipologie.
- Indice denso
- Indice sparse
Indice denso
In un indice denso, viene creato un record per ogni chiave di ricerca valutata nel database. Ciò consente di effettuare ricerche più rapidamente ma richiede più spazio per archiviare i record dell'indice. In questa indicizzazione, i record del metodo contengono il valore della chiave di ricerca e puntano al record reale sul disco.
Indice sparse
È un record di indice che viene visualizzato solo per alcuni valori nel file. Sparse Index ti aiuta a risolvere i problemi di indicizzazione densa in DBMS. In questo metodo di tecnica di indicizzazione, una serie di colonne di indice memorizza lo stesso indirizzo del blocco di dati e quando è necessario recuperare i dati, verrà recuperato l'indirizzo del blocco.
Tuttavia, l'indice sparso memorizza i record dell'indice solo per alcuni valori delle chiavi di ricerca. Richiede meno spazio, meno spese di manutenzione per l'inserimento e le cancellazioni, ma è più lento rispetto al denso Indice per l'individuazione dei record.
Di seguito è riportato un indice del database Esempio di indice sparse
Indice secondario nel DBMS
L'indice secondario nel DBMS può essere generato da un campo che ha un valore univoco per ciascun record e dovrebbe essere una chiave candidata. È noto anche come indice non cluster.
Questa tecnica di indicizzazione del database a due livelli viene utilizzata per ridurre la dimensione della mappatura del primo livello. Per questo motivo per il primo livello viene selezionata una vasta gamma di numeri; la dimensione della mappatura rimane sempre piccola.
Esempio di indice secondario
Comprendiamo l'indicizzazione secondaria con un esempio di indice di database:
In un database di conti bancari, i dati vengono archiviati in sequenza da acc_no; potresti voler trovare tutti i conti di una filiale specifica della banca ABC.
Qui puoi avere un indice secondario nel DBMS per ogni chiave di ricerca. Il record dell'indice è un punto record a un bucket che contiene puntatori a tutti i record con il valore specifico della chiave di ricerca.
ClusterIndice nel DBMS
In un indice cluster, i record stessi vengono archiviati nell'indice e non nei puntatori. A volte l'indice viene creato su colonne di chiave non primaria che potrebbero non essere univoche per ciascun record. In una situazione del genere, puoi raggruppare due o più colonne per ottenere valori univoci e creare un indice chiamato Indice cluster. Questo aiuta anche a identificare il record più velocemente.
Esempio:
Supponiamo che un'azienda assuma molti dipendenti in vari dipartimenti. In questo caso, è necessario creare un'indicizzazione in cluster nel DBMS per tutti i dipendenti che appartengono allo stesso reparto.
È considerato in un singolo cluster e i punti indice puntano al cluster nel suo insieme. In questo caso, Department _no è una chiave non univoca.
Cos'è l'indice multilivello?
Indicizzazione multilivello in Banca Dati viene creato quando un indice primario non rientra nella memoria. In questo tipo di metodo di indicizzazione, è possibile ridurre il numero di accessi al disco per ridurre qualsiasi record e conservarlo su un disco come file sequenziale e creare una base sparsa su quel file.
Indice B-Tree
L'indice B-tree è la struttura dati ampiamente utilizzata per l'indicizzazione basata su alberi in DBMS. È un formato multilivello di indicizzazione basata su albero nella tecnica DBMS che è bilanciata alberi di ricerca binari. Tutti i nodi foglia dell'albero B indicano puntatori di dati effettivi.
Inoltre, tutti i nodi foglia sono interconnessi con un elenco di collegamenti, che consente a un albero B di supportare sia l'accesso casuale che quello sequenziale.
- I nodi lead devono avere tra 2 e 4 valori.
- Ogni percorso dalla radice alla foglia ha per lo più la stessa lunghezza.
- I nodi non foglia, a parte il nodo radice, hanno da 3 a 5 nodi figli.
- Ogni nodo che non sia una radice o una foglia ha tra n/2] e n figli.
Vantaggi dell'indicizzazione
Importanti vantaggi/vantaggi dell'indicizzazione sono:
- Ti aiuta a ridurre il numero totale di operazioni I/O necessarie per recuperare tali dati, quindi non è necessario accedere a una riga nel database da una struttura di indice.
- Offre agli utenti la ricerca e il recupero dei dati più rapidi.
- L'indicizzazione ti aiuta anche a ridurre lo spazio tabella poiché non è necessario collegarti a una riga in una tabella, poiché non è necessario memorizzare il ROWID nell'indice. In questo modo sarai in grado di ridurre lo spazio della tabella.
- Non è possibile ordinare i dati nei nodi principali poiché il valore della chiave primaria li classifica.
Svantaggi dell'indicizzazione
Importanti svantaggi/svantaggi dell'indicizzazione sono:
- Per eseguire l'indicizzazione del sistema di gestione del database, è necessaria una chiave primaria sulla tabella con un valore univoco.
- Non è possibile eseguire altri indici nel database sui dati indicizzati.
- Non è consentito partizionare una tabella organizzata per indice.
- Indicizzazione SQL Diminuisce le prestazioni nelle query INSERT, DELETE e UPDATE.
Sommario
- L'indicizzazione è una piccola tabella composta da due colonne.
- Due tipi principali di metodi di indicizzazione sono 1) Indicizzazione primaria 2) Indicizzazione secondaria.
- L'indice primario è un file ordinato di dimensione fissa con due campi.
- Anche l'indicizzazione primaria è ulteriormente suddivisa in due tipologie 1) Indice denso 2) Indice sparso.
- In un indice denso, viene creato un record per ogni chiave di ricerca valutata nel database.
- Un metodo di indicizzazione sparso ti aiuta a risolvere i problemi dell'indicizzazione densa.
- L'indice secondario in DBMS è un metodo di indicizzazione la cui chiave di ricerca specifica un ordine diverso dall'ordine sequenziale del file.
- ClusterL'indice ing è definito come un file di dati dell'ordine.
- L'indicizzazione multilivello viene creata quando un indice primario non rientra nella memoria.
- Il vantaggio più grande dell'indicizzazione è che aiuta a ridurre il numero totale di operazioni I/O necessarie per recuperare tali dati.
- Lo svantaggio più grande nell'esecuzione del sistema di gestione del database di indicizzazione è che è necessaria una chiave primaria sulla tabella con un valore univoco.