|
Gli indici permettono ad un DBMS di accedere ai dati più
rapidamente (nota bene: questa funzionalità è non-standard/non disponibile su
tutti i sistemi). Il sistema crea della strutture dati interne (gli indici) per
la selezione più veloce di determinate righe quando la selezione è basata su
colonne indicizzate.
La struttura indica al DBMS dove si trova una certa riga su
una tabella con colonne indicizzate, più o meno come il glossario di un libro
indica la pagina in cui appare una determinata parola. Creiamo un indice per
IDAntiquario nella tabella ANTIQUARI
CREATE INDEX OID_IDX ON ANTIQUARI (IDAntiquari);
Ora un indice sui nomi:
CREATE INDEX NAME_IDX ON ANTIQUARI (CognomeAntiquario,
NomeAntiquario);
Per eliminare un indice si usa l’istruzione DROP:
DROP INDEX OID_IDX;
In più, si può usare l’istruzione DROP TABLE per eliminare
una tabella (attenzione! Questo significa che la tua tabella viene cancellata).
Nel secondo esempio, l’indice è relativo a due colonne, aggregate insieme; in
questo caso, possono accadere strani comportamenti… consultare il manuale prima
di eseguire questa operazione.
Alcuni DBMS non richiedono l’unicità della
chiave primaria. In altre parole, se cercassi di inserire un’altra riga nella
tabella ANTIQUARI con un IDAntiquario = 2, alcuni sistemi mi lascerebbero fare
quest’operazione, anche se non è consigliabile, in quanto si suppone che il
valore di questa colonna sia unico per ciascuna riga.
Un modo per ovviare a
possibili inconvenienti di questo genere è di creare un indice unico sulla
colonna che noi vogliamo sia una chiave primaria, per forzare il sistema ad
impedire la duplicazione di valori in quella colonna:
CREATE UNIQUE INDEX OID_IDX ON ANTIQUARI (IDAntiquario);
di
|