Basi di dati Gestione degli indici - innovit.org · Basi di dati Gestione degli indici Elena...

48
Basi di dati Gestione degli indici Elena Baralis ©2007 Politecnico di Torino 1 Linguaggio SQL: costrutti avanzati D B M G Gestione degli indici Introduzione Strutture fisiche di accesso Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica D B M G 2

Transcript of Basi di dati Gestione degli indici - innovit.org · Basi di dati Gestione degli indici Elena...

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 1

Linguaggio SQL: costrutti avanzati

DBMG

Gestione degli indici

IntroduzioneStrutture fisiche di accessoStrutture fisiche di accessoDefinizione di indici in SQLProgettazione fisica

DBMG 2

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 2

Gestione degli indici

DBMG

Organizzazione fisica dei dati

All’interno di un DBMS relazionale, i dati sono rappresentati come collezioni di recordrappresentati come collezioni di record memorizzati in uno o più file

DBMG 4

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 3

Organizzazione fisica dei dati

All’interno di un DBMS relazionale, i dati sono rappresentati come collezioni di recordrappresentati come collezioni di record memorizzati in uno o più file

l’organizzazione fisica dei dati all’interno di un file influenza il tempo di accesso alle informazioniogni organizzazione fisica dei dati rende alcune operazioni efficienti e altre onerose

DBMG 5

Organizzazione fisica dei dati

All’interno di un DBMS relazionale, i dati sono rappresentati come collezioni di recordrappresentati come collezioni di record memorizzati in uno o più file

l’organizzazione fisica dei dati all’interno di un file influenza il tempo di accesso alle informazioniogni organizzazione fisica dei dati rende alcune operazioni efficienti e altre onerose

N i t ’ i i fi i d i d ti h

DBMG 6

Non esiste un’organizzazione fisica dei dati che sia efficiente per qualunque tipo di lettura e scrittura dei dati

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 4

Base di dati di esempio

Dipendente (CodD, Nome, Cognome, DataNascita, Residenza, SalarioMensile)

DBMG 7

Base di dati di esempio

Dipendente (CodD, Nome, Cognome, DataNascita, Residenza, SalarioMensile)

CodD Nome Cognome DataNascita Residenza SalarioMensileD1 Elena Rossi 02/01/1967 Torino 2.200,00D2 Andrea Verdi 04/05/1973 Como 1.100,00D3 Giulia Neri 14/04/1975 Roma 2.200,00D4 Paolo Bianchi 12/08/1970 Milano 3.000,00D5 Daniele Bruno 13/02/1968 Como 1.900,00

Dipendente

DBMG 8

D6 Antonio Bianco 25/11/1964 Venezia 1.700,00D7 Lucia Carta 09/04/1971 Alessandria 2.500,00D8 Luca Draghi 03/08/1973 Roma 2.400,00D9 Tania Bravo 11/06/1976 Asti 1.800,00D10 Irene Massa 28/04/1979 Torino 2.600,00D11 Lia Massa 15/05/1965 Milano 3.500,00D12 Alessio Morra 19/06/1969 Como 1.200,00

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 5

Esempio

Tabella DIPENDENTEè memorizzata dal DBMS relazionale in un fileè memorizzata dal DBMS relazionale in un file

DBMG 9

Esempio

Tabella DIPENDENTEè memorizzata dal DBMS relazionale in un fileè memorizzata dal DBMS relazionale in un file

Interrogazionevisualizzare le informazioni sui dipendenti residenti a Como

DBMG 10

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 6

Esempio

Tabella DIPENDENTEè memorizzata dal DBMS relazionale in un fileè memorizzata dal DBMS relazionale in un file

Interrogazionevisualizzare le informazioni sui dipendenti residenti a Como

SELECT *

DBMG 11

SELECT *FROM DIPENDENTEWHERE Residenza='Como';

Esempio: tabella DIPENDENTE

CodD Nome Cognome DataNascita Residenza SalarioMensileDipendente

gD1 Elena Rossi 02/01/1967 Torino 2.200,00D2 Andrea Verdi 04/05/1973 Como 1.100,00D3 Giulia Neri 14/04/1975 Roma 2.200,00D4 Paolo Bianchi 12/08/1970 Milano 3.000,00D5 Daniele Bruno 13/02/1968 Como 1.900,00D6 Antonio Bianco 25/11/1964 Venezia 1.700,00D7 Lucia Carta 09/04/1971 Alessandria 2.500,00D8 Luca Draghi 03/08/1973 Roma 2 400 00

DBMG 12

D8 Luca Draghi 03/08/1973 Roma 2.400,00D9 Tania Bravo 11/06/1976 Asti 1.800,00D10 Irene Massa 28/04/1979 Torino 2.600,00D11 Lia Massa 15/05/1965 Milano 3.500,00D12 Alessio Morra 19/06/1969 Como 1.200,00

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 7

Esempio: risultato dell’interrogazione

CodD Nome Cognome DataNascita Residenza SalarioMensileDipendente

gD1 Elena Rossi 02/01/1967 Torino 2.200,00D2 Andrea Verdi 04/05/1973 Como 1.100,00D3 Giulia Neri 14/04/1975 Roma 2.200,00D4 Paolo Bianchi 12/08/1970 Milano 3.000,00D5 Daniele Bruno 13/02/1968 Como 1.900,00D6 Antonio Bianco 25/11/1964 Venezia 1.700,00D7 Lucia Carta 09/04/1971 Alessandria 2.500,00D8 Luca Draghi 03/08/1973 Roma 2 400 00

DBMG 13

D8 Luca Draghi 03/08/1973 Roma 2.400,00D9 Tania Bravo 11/06/1976 Asti 1.800,00D10 Irene Massa 28/04/1979 Torino 2.600,00D11 Lia Massa 15/05/1965 Milano 3.500,00D12 Alessio Morra 19/06/1969 Como 1.200,00

Esempio: esecuzione dell’interrogazione

Operazioni effettuate dal DBMS per eseguire l’interrogazione SQLl interrogazione SQL

DBMG 14

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 8

Esempio: esecuzione dell’interrogazione

Operazioni effettuate dal DBMS per eseguire l’interrogazione SQLl interrogazione SQL

lettura sequenziale dell’intero file

DBMG 15

Esempio: esecuzione dell’interrogazione

Operazioni effettuate dal DBMS per eseguire l’interrogazione SQLl interrogazione SQL

lettura sequenziale dell’intero filedurante la lettura, selezione dei record dei dipendenti con residenza a Como

DBMG 16

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 9

Esempio: esecuzione dell’interrogazione

Operazioni effettuate dal DBMS per eseguire l’interrogazione SQLl interrogazione SQL

lettura sequenziale dell’intero filedurante la lettura, selezione dei record dei dipendenti con residenza a Comovisualizzazione dei record

DBMG 17

Esempio: esecuzione dell’interrogazione

Operazioni effettuate dal DBMS per eseguire l’interrogazione SQLl interrogazione SQL

lettura sequenziale dell’intero filedurante la lettura, selezione dei record dei dipendenti con residenza a Comovisualizzazione dei record

Esistono organizzazioni fisiche dei dati su file che

DBMG 18

permettano di evitare la scansione completa del file?

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 10

Esempio: struttura fisica 1

I record della tabella DIPENDENTE sono memorizzati in ordine alfabetico di Residenzamemorizzati in ordine alfabetico di Residenza

DBMG 19

Esempio: struttura fisica 1

CodD Nome Cognome DataNascita Residenza SalarioMensileDipendente

gD7 Lucia Carta 09/04/1971 Alessandria 2.500,00D9 Tania Bravo 11/06/1976 Asti 1.800,00D2 Andrea Verdi 04/05/1973 Como 1.100,00D5 Daniele Bruno 13/02/1968 Como 1.900,00D12 Alessio Morra 19/06/1969 Como 1.200,00D4 Paolo Bianchi 12/08/1970 Milano 3.000,00D11 Lia Massa 15/05/1965 Milano 3.500,00D3 Giulia Neri 14/04/1975 Roma 2 200 00

DBMG 20

D3 Giulia Neri 14/04/1975 Roma 2.200,00D8 Luca Draghi 03/08/1973 Roma 2.400,00D1 Elena Rossi 02/01/1967 Torino 2.200,00D10 Irene Massa 28/04/1979 Torino 2.600,00D6 Antonio Bianco 25/11/1964 Venezia 1.700,00

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 11

Esempio: struttura fisica 1

CodD Nome Cognome DataNascita Residenza SalarioMensileDipendente

gD7 Lucia Carta 09/04/1971 Alessandria 2.500,00D9 Tania Bravo 11/06/1976 Asti 1.800,00D2 Andrea Verdi 04/05/1973 Como 1.100,00D5 Daniele Bruno 13/02/1968 Como 1.900,00D12 Alessio Morra 19/06/1969 Como 1.200,00D4 Paolo Bianchi 12/08/1970 Milano 3.000,00D11 Lia Massa 15/05/1965 Milano 3.500,00D3 Giulia Neri 14/04/1975 Roma 2 200 00

DBMG 21

D3 Giulia Neri 14/04/1975 Roma 2.200,00D8 Luca Draghi 03/08/1973 Roma 2.400,00D1 Elena Rossi 02/01/1967 Torino 2.200,00D10 Irene Massa 28/04/1979 Torino 2.600,00D6 Antonio Bianco 25/11/1964 Venezia 1.700,00

Esempio: struttura fisica 1

Operazioni da effettuare per eseguire l’interrogazione (versione semplice)l interrogazione (versione semplice)

DBMG 22

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 12

Esempio: struttura fisica 1

Operazioni da effettuare per eseguire l’interrogazione (versione semplice)l interrogazione (versione semplice)

lettura sequenziale del file fino al primo record con Residenza uguale a Como

DBMG 23

Esempio: struttura fisica 1

Operazioni da effettuare per eseguire l’interrogazione (versione semplice)l interrogazione (versione semplice)

lettura sequenziale del file fino al primo record con Residenza uguale a Comolettura sequenziale di tutti i record con Residenza uguale a Como, fino al primo record con Residenza diversa da Como

DBMG 24

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 13

Esempio: struttura fisica 1

Operazioni da effettuare per eseguire l’interrogazione (versione semplice)l interrogazione (versione semplice)

lettura sequenziale del file fino al primo record con Residenza uguale a Comolettura sequenziale di tutti i record con Residenza uguale a Como, fino al primo record con Residenza diversa da Comovisualizzazione dei record dei dipendenti con

DBMG 25

visualizzazione dei record dei dipendenti con Residenza a Como

Esempio: struttura fisica 1

Operazioni da effettuare per eseguire l’interrogazione (versione semplice)l interrogazione (versione semplice)

lettura sequenziale del file fino al primo record con Residenza uguale a Comolettura sequenziale di tutti i record con Residenza uguale a Como, fino al primo record con Residenza diversa da Comovisualizzazione dei record dei dipendenti con

DBMG 26

visualizzazione dei record dei dipendenti con Residenza a Como

Esistono metodi più efficienti per consultare la stessa struttura dati

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 14

Esempio: struttura fisica 1

Organizzazione fisica progettata specificamente per l’interrogazione propostaper l interrogazione proposta

memorizzazione dei record nel file in ordine alfabetico di Residenza

File con struttura sequenziale ordinata

DBMG 27

Esempio: struttura fisica 1

Vantaggisi evita la lettura sequenziale dell’intero filesi evita la lettura sequenziale dell intero file

DBMG 28

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 15

Esempio: struttura fisica 1

Vantaggisi evita la lettura sequenziale dell’intero filesi evita la lettura sequenziale dell intero file

Svantaggimantenere l’ordinamento è computazionalmente oneroso

occorre riorganizzare il file quando sono inseriti, aggiornati o cancellati i record

DBMG 29

Esempio: struttura fisica 1

Vantaggisi evita la lettura sequenziale dell’intero filesi evita la lettura sequenziale dell intero file

Svantaggimantenere l’ordinamento è computazionalmente oneroso

occorre riorganizzare il file quando sono inseriti, aggiornati o cancellati i record

l’ i i fi i è ffi i

DBMG 30

l’organizzazione fisica proposta non è efficiente quando occorre eseguire altre tipologie di interrogazioni

esempio: selezionare i dipendenti che percepiscono un salario mensile superiore a 2000 euro

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 16

Esempio: struttura fisica 2

È possibile definire strutture fisiche accessorie che permettano di facilitare l’accesso ai datiche permettano di facilitare l accesso ai dati

DBMG 31

Esempio: struttura fisica 2

CodD Residenza

DipendenteCodD … Residenza …

D1 … Torino …D2 … Como …D3 … Roma …D4 … Milano …D5 … Como …D6 ... Venezia ...D7 ... Alessandria ...

DBMG 32

D8 … Roma ...D9 … Asti ...

D10 … Torino ...D11 … Milano ...D12 .. Como …

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 17

Esempio: struttura fisica 2

CodD Residenza

Dipendente

R id L i

Struttura fisica accessoria

CodD … Residenza …D1 … Torino …D2 … Como …D3 … Roma …D4 … Milano …D5 … Como …D6 ... Venezia ...D7 ... Alessandria ...

Residenza Locazione fisica

Alessandria

Asti

Como

DBMG 33

D8 … Roma ...D9 … Asti ...

D10 … Torino ...D11 … Milano ...D12 .. Como …

Milano

Venezia

Esempio: struttura fisica 2

CodD Residenza

Dipendente

R id L i

Struttura fisica accessoria

CodD … Residenza …D1 … Torino …D2 … Como …D3 … Roma …D4 … Milano …D5 … Como …D6 ... Venezia ...D7 ... Alessandria ...

Residenza Locazione fisica

Alessandria

Asti

Como

DBMG 34

D8 … Roma ...D9 … Asti ...

D10 … Torino ...D11 … Milano ...D12 .. Como …

Milano

Venezia

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 18

Esempio: struttura fisica 2

CodD Residenza

Dipendente

R id L i

Struttura fisica accessoria

CodD … Residenza …D1 … Torino …D2 … Como …D3 … Roma …D4 … Milano …D5 … Como …D6 ... Venezia ...D7 ... Alessandria ...

Residenza Locazione fisica

Alessandria

Asti

Como

DBMG 35

D8 … Roma ...D9 … Asti ...

D10 … Torino ...D11 … Milano ...D12 .. Como …

Milano

Venezia

Esempio: struttura fisica 2

CodD Residenza

Dipendente

R id L i

Struttura fisica accessoria

CodD … Residenza …D1 … Torino …D2 … Como …D3 … Roma …D4 … Milano …D5 … Como …D6 ... Venezia ...D7 ... Alessandria ...

Residenza Locazione fisica

Alessandria

Asti

Como

DBMG 36

D8 … Roma ...D9 … Asti ...

D10 … Torino ...D11 … Milano ...D12 .. Como …

Milano

… …

Venezia

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 19

Esempio: struttura fisica 2

CodD Residenza

Dipendente

R id L i

Struttura fisica accessoria

CodD … Residenza …D1 … Torino …D2 … Como …D3 … Roma …D4 … Milano …D5 … Como …D6 ... Venezia ...D7 ... Alessandria ...

Residenza Locazione fisica

Alessandria

Asti

Como

DBMG 37

D8 … Roma ...D9 … Asti ...

D10 … Torino ...D11 … Milano ...D12 .. Como …

Milano

… …

Venezia

Esempio: struttura fisica 2

Struttura fisica accessoria con accesso associativo ai datiai dati

realizzata sull’attributo Residenza

DBMG 38

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 20

Esempio: struttura fisica 2

Struttura fisica accessoria con accesso associativo ai datiai dati

realizzata sull’attributo Residenza

L’attributo Residenza è il campo chiave della struttura

per ogni valore assunto dall’attributo Residenza si memorizzano

DBMG 39

tutte le locazioni fisiche dei record corrispondenti al valore del campo chiave

la locazione fisica indica la posizione di un record all’interno del file permette di accedere direttamente al record d’interesse (alla pagina fisica che lo contiene)

Esempio: struttura fisica 2

Operazioni da effettuare per eseguire l’interrogazionel interrogazione

DBMG 40

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 21

Esempio: struttura fisica 2

Operazioni da effettuare per eseguire l’interrogazionel interrogazione

lettura della struttura fisica accessoria per recuperare le locazioni fisiche dei record corrispondenti a Residenza=Como

DBMG 41

Esempio: struttura fisica 2

Operazioni da effettuare per eseguire l’interrogazionel interrogazione

lettura della struttura fisica accessoria per recuperare le locazioni fisiche dei record corrispondenti a Residenza=Comoaccesso diretto solo ai record del file associati alla Residenza Como

DBMG 42

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 22

Esempio: struttura fisica 2

Operazioni da effettuare per eseguire l’interrogazionel interrogazione

lettura della struttura fisica accessoria per recuperare le locazioni fisiche dei record corrispondenti a Residenza=Comoaccesso diretto solo ai record del file associati alla Residenza Comovisualizzazione dei record di interesse

DBMG 43

visualizzazione dei record di interesse

Esempio: struttura fisica 2

Operazioni da effettuare per eseguire l’interrogazionel interrogazione

lettura della struttura fisica accessoria per recuperare le locazioni fisiche dei record corrispondenti a Residenza=Comoaccesso diretto solo ai record del file associati alla Residenza Comovisualizzazione dei record di interesse

DBMG 44

visualizzazione dei record di interesse

Esistono metodi diversi per reperire rapidamente le informazioni nelle strutture fisiche accessorie

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 23

Esempio: struttura fisica 2

Vantaggisi evita la lettura completa e sequenziale del filesi evita la lettura completa e sequenziale del file

come nel caso della struttura fisica 1

accesso diretto solo ai record di interesse il costo di mantenimento della struttura accessoria è meno oneroso rispetto al costo di mantenimento del file con struttura ordinata

DBMG 45

Esempio: struttura fisica 2

Svantaggioccupazione di spazio maggioreoccupazione di spazio maggiore

è necessario spazio supplementare per memorizzare la struttura fisica accessoria

la struttura accessoria può essere utilizzata solo quando nell’interrogazione compare l’attributo Residenza

possono essere necessarie strutture accessorie per

DBMG 46

possono essere necessarie strutture accessorie per più attributi o combinazioni di attributi

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 24

Indici

Gli indici sono le strutture fisiche accessorie offerte dai DBMS relazionali per migliorareofferte dai DBMS relazionali per migliorare l’efficienza delle operazioni di accesso ai dati

sono realizzati mediante strutture fisiche di tipo diverso

alberihash table

DBMG 47

Indici

Gli indici sono le strutture fisiche accessorie offerte dai DBMS relazionali per migliorareofferte dai DBMS relazionali per migliorare l’efficienza delle operazioni di accesso ai dati

sono realizzati mediante strutture fisiche di tipo diverso

alberihash table

L i t i i l ti d li i di i f

DBMG 48

Le istruzioni per la gestione degli indici non fanno parte dello standard SQL

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 25

Gestione degli indici

DBMG

Strutture fisiche di accesso

Le strutture fisiche di accesso descrivono il modo in cui i dati sono organizzati in memoriain cui i dati sono organizzati in memoria secondaria per garantire operazioni di ricerca e modifica dei dati efficienti

DBMG 50

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 26

Strutture fisiche di accesso

Le strutture fisiche di accesso descrivono il modo in cui i dati sono organizzati in memoriain cui i dati sono organizzati in memoria secondaria per garantire operazioni di ricerca e modifica dei dati efficientiSono classificabili in

strutture sequenzialistrutture ad albero

DBMG 51

strutture ad accesso calcolato

Strutture fisiche di accesso

Ogni DBMS relazionale dispone di diverse varianti delle strutture fisiche di basedelle strutture fisiche di base

la descrizione delle strutture interne di memorizzazione dei dati non è pubblicamente disponibilele strutture fisiche sono diverse per DBMS diversi

DBMG 52

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 27

Struttura sequenziale

È caratterizzata da una disposizione sequenziale dei record inuna disposizione sequenziale dei record in memoria secondaria blocchi di memoria consecutivi nel file

DBMG 53

Struttura sequenziale

È caratterizzata da una disposizione sequenziale dei record inuna disposizione sequenziale dei record in memoria secondaria blocchi di memoria consecutivi nel file

Ordinamento della sequenzala sequenza dei record dipende dal valore assunto da un campo di ordinamento, detto chiave di

d

DBMG 54

ordinamentocomposto da uno o più attributi

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 28

Struttura ad albero

Accesso associativo efficiente ai dati, basato sul valore di un campo chiavevalore di un campo chiave

la chiave può essere composta da uno o più attributi

DBMG 55

Struttura ad albero

Accesso associativo efficiente ai dati, basato sul valore di un campo chiavevalore di un campo chiave

la chiave può essere composta da uno o più attributi

Una struttura ad albero permette di raggiungere l’insieme delle locazioni fisiche dei record corrispondenti al valore prescelto del campo hi

DBMG 56

chiavela locazione fisica di un record indica la posizione fisica del record all’interno del file in memoria secondaria

Esempi: B-tree, B+-tree

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 29

Struttura ad accesso calcolato

Accesso associativo efficiente ai dati, basato sul valore di un campo chiavevalore di un campo chiave

la chiave può essere composta da uno o più attributi

DBMG 57

Struttura ad accesso calcolato

Accesso associativo efficiente ai dati, basato sul valore di un campo chiavevalore di un campo chiave

la chiave può essere composta da uno o più attributi

Richiede un algoritmo di calcolo per localizzare il blocco fisico del file contenente i record corrispondenti al valore del campo chiave

DBMG 58

Non richiede un ordinamento specifico dei record in memoria secondariaEsempio: struttura hash

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 30

Gestione degli indici

DBMG

Definizione di indici in SQL

Il linguaggio SQL offre le seguenti istruzioni per la definizione degli indicila definizione degli indici

DBMG 60

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 31

Definizione di indici in SQL

Il linguaggio SQL offre le seguenti istruzioni per la definizione degli indicila definizione degli indici

creazione di un indiceCREATE INDEX

DBMG 61

Definizione di indici in SQL

Il linguaggio SQL offre le seguenti istruzioni per la definizione degli indicila definizione degli indici

creazione di un indiceCREATE INDEX

cancellazione di un indiceDROP INDEX

DBMG 62

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 32

Definizione di indici in SQL

Il linguaggio SQL offre le seguenti istruzioni per la definizione degli indicila definizione degli indici

creazione di un indiceCREATE INDEX

cancellazione di un indiceDROP INDEX

Le istruzioni per le gestione degli indici non fanno

DBMG 63

parte dello standard SQL

Creazione di un indice

CREATE INDEX NomeIndice ON NomeTabella (ElencoAttributi)

Crea un indice con nome NomeIndice sulla tabella NomeTabelladefinito sugli attributi in ElencoAttributi

DBMG 64

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 33

Creazione di un indice

CREATE INDEX NomeIndice ON NomeTabella (ElencoAttributi)

L’ordine in cui compaiono gli attributi inElencoAttributi è importante

DBMG 65

Creazione di un indice

CREATE INDEX NomeIndice ON NomeTabella (ElencoAttributi)

L’ordine in cui compaiono gli attributi inElencoAttributi è importante

le chiavi dell’indice sono ordinateprima in base al primo attributo in ElencoAttributia pari valore del primo attributo sui valori del secondo attributo

DBMG 66

secondo attributoe così via, in ordine, fino all’ultimo attributo

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 34

Base di dati di esempio

CodD Nome Cognome DataNascita Residenza SalarioMensileDipendente

gD1 Elena Rossi 02/01/1967 Torino 2.200,00D2 Andrea Verdi 04/05/1973 Como 1.100,00D3 Giulia Neri 14/04/1975 Roma 2.200,00D4 Paolo Bianchi 12/08/1970 Milano 3.000,00D5 Daniele Bruno 13/02/1968 Como 1.900,00D6 Antonio Bianco 25/11/1964 Venezia 1.700,00D7 Lucia Carta 09/04/1971 Alessandria 2.500,00D8 Luca Draghi 03/08/1973 Roma 2 400 00

DBMG 67

D8 Luca Draghi 03/08/1973 Roma 2.400,00D9 Tania Bravo 11/06/1976 Asti 1.800,00D10 Irene Massa 28/04/1979 Torino 2.600,00D11 Lia Massa 15/05/1965 Milano 3.500,00D12 Alessio Morra 19/06/1969 Como 1.200,00

Esempio n.1

Creazione di un indice sull’attributo Residenza della tabella DIPENDENTE

DBMG 68

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 35

Esempio n.1

Creazione di un indice sull’attributo Residenza della tabella DIPENDENTE

CREATE INDEX IndiceResidenza ON DIPENDENTE (Residenza)

DBMG 69

Esempio n.2

Creazione di un indice sulla combinazione di attributi Cognome e Nome della tabella gDIPENDENTE

DBMG 70

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 36

Esempio n.2

Creazione di un indice sulla combinazione di attributi Cognome e Nome della tabella

CREATE INDEX IndiceCognomeNome ON DIPENDENTE(Cognome,Nome)

gDIPENDENTE

DBMG 71

Esempio n.2

Creazione di un indice sulla combinazione di attributi Cognome e Nome della tabella

L’indice è definito congiuntamente sui due attributi

CREATE INDEX IndiceCognomeNome ON DIPENDENTE(Cognome,Nome)

gDIPENDENTE

DBMG 72

attributiLe chiavi dell’indice sono ordinate

prima in base al valore dell’attributo Cognome a pari valore dell’attributo Cognome, sul valore dell’attributo Nome

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 37

Cancellazione di un indice

Elimina l’indice con nome NomeIndice

DROP INDEX NomeIndice

Elimina l indice con nome NomeIndice

DBMG 73

Cancellazione di un indice

Elimina l’indice con nome NomeIndice

DROP INDEX NomeIndice

Elimina l indice con nome NomeIndice Il comando è utilizzato quando

l’indice non è più utilizzatoil miglioramento delle prestazioni non è sufficiente

ridotta riduzione del tempo di risposta per le interrogazioni

DBMG 74

rallentamento degli aggiornamenti causato dal mantenimento dell’indice

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 38

Esempio

Cancellare l’indice IndiceResidenza

DBMG 75

Esempio

Cancellare l’indice IndiceResidenza

DROP INDEX IndiceResidenza

DBMG 76

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 39

Gestione degli indici

DBMG

Progettazione fisica

È la fase finale della progettazione di una base di datidati

richiede la scelta del DBMS utilizzatoè legata alle caratteristiche del prodotto prescelto

DBMG 78

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 40

Requisiti applicazione Progettazione

concettuale

Fasi della progettazione di basi di dati

concettuale

Progettazionelogica

P tt i

Schema concettuale

DBMG 79

ProgettazionefisicaSchema logico

Schema fisico

Requisiti applicazione Progettazione

concettuale

Fasi della progettazione di basi di dati

concettuale

Progettazionelogica

P tt i

Schema concettuale

DBMG 80

ProgettazionefisicaSchema logico

Schema fisico

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 41

Progettazione fisica: dati di ingresso

Schema logico della base di dati

DBMG 81

Schema logico della base di datiCaratteristiche del DBMS prescelto

Progettazione fisica: dati di ingresso

Caratteristiche del DBMS presceltoopzioni disponibili a livello fisico

strutture fisiche di memorizzazioneindici

DBMG 82

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 42

Schema logico della base di datiCaratteristiche del DBMS prescelto

Progettazione fisica: dati di ingresso

Caratteristiche del DBMS presceltoopzioni disponibili a livello fisico

strutture fisiche di memorizzazioneindici

Volume dei daticardinalità delle tabelle

DBMG 83

cardinalità e distribuzione dei valori del dominio degli attributi

Stima del carico applicativointerrogazioni più importanti e loro frequenza

Progettazione fisica: dati di ingresso

interrogazioni più importanti e loro frequenzaoperazioni di aggiornamento più importanti e loro frequenzarequisiti sul tempo di risposta per interrogazioni/aggiornamenti importanti

DBMG 84

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 43

Progettazione fisica: risultato

Schema fisico della base di dati organizzazione fisica delle tabelleorganizzazione fisica delle tabelleindici

Parametri di memorizzazione e funzionamento dimensioni iniziali dei file, possibilità di espansione, spazio iniziale libero, ...

DBMG 85

Procedimento

La progettazione fisica è svolta in modo empirico, con un approccio per tentativicon un approccio per tentativi

non esistono metodologie di riferimento

DBMG 86

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 44

Procedimento

Caratterizzazione del carico applicativoper ogni interrogazione rilevante è necessarioper ogni interrogazione rilevante è necessario definire

relazioni a cui accedeattributi da visualizzareattributi coinvolti in selezioni/joingrado di selettività delle condizioni di selezione

DBMG 87

Procedimento

Caratterizzazione del carico applicativoper ogni interrogazione rilevante è necessarioper ogni interrogazione rilevante è necessario definire

relazioni a cui accedeattributi da visualizzareattributi coinvolti in selezioni/joingrado di selettività delle condizioni di selezione

per ogni aggiornamento rilevante è necessario

DBMG 88

per ogni aggiornamento rilevante è necessario definire

tipo di aggiornamento inserimento, cancellazione, modifica

relazione ed eventuali attributi coinvolti grado di selettività delle condizioni di selezione

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 45

Procedimento

Scelte da operarestrutturazione fisica dei file che contengono lestrutturazione fisica dei file che contengono le tabelle

ordinati, non ordinati

DBMG 89

Procedimento

Scelte da operarestrutturazione fisica dei file che contengono lestrutturazione fisica dei file che contengono le tabelle

ordinati, non ordinati

scelta degli attributi da indicizzarepilotata dalla stima del carico applicativo e dal volume dei dati

DBMG 90

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 46

Procedimento

Scelte da operarestrutturazione fisica dei file che contengono lestrutturazione fisica dei file che contengono le tabelle

ordinati, non ordinati

scelta degli attributi da indicizzarepilotata dalla stima del carico applicativo e dal volume dei dati

per ogni indice definizione del tipo

DBMG 91

per ogni indice definizione del tipo per esempio, hash oppure B-tree

Procedimento

Scelte da operarestrutturazione fisica dei file che contengono lestrutturazione fisica dei file che contengono le tabelle

ordinati, non ordinati

scelta degli attributi da indicizzarepilotata dalla stima del carico applicativo e dal volume dei dati

per ogni indice definizione del tipo

DBMG 92

per ogni indice definizione del tipo per esempio, hash oppure B-tree

eventuali variazioni dello schemapartizionamenti orizzontali in memoria secondariadenormalizzazione di tabelle

utilizzata nei data warehouse

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 47

Tuning

Se il risultato non è soddisfacente

DBMG 93

Tuning

Se il risultato non è soddisfacenteTuning aggiungendo e togliendo indiciTuning, aggiungendo e togliendo indici

DBMG 94

Basi di dati Gestione degli indici

Elena Baralis©2007 Politecnico di Torino 48

Tuning

Se il risultato non è soddisfacenteTuning aggiungendo e togliendo indiciTuning, aggiungendo e togliendo indici

È un procedimento guidato dalla disponibilità di strumenti che permettano di

verificare il piano di esecuzione adottato dal DBMS prescelto

il piano di esecuzione definisce la sequenza di tti ità lt d l DBMS i

DBMG 95

attività svolte dal DBMS per eseguire un’interrogazione

metodi di accesso ai datimetodi di join

valutare il costo di esecuzione di alternative diverse