Title: Basi di Dati
1Basi di Dati
- Sistemi per BD RelazionaliModello Fisico
- Concetti Avanzati
versione 2.0
Questo lavoro è concesso in uso secondo i termini
di una licenza Creative Commons (vedi ultima
pagina)
2Concetti Avanzati
DBMS Relazionali Modello Fisico gtgt Sommario
- Obiettivo
- Indici multilivello
- Indici e tabelle ISAM
- B Tree (cenni)
- Indici Hash
- File hash
- Indice hash
- In Pratica
3Obiettivo
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Obiettivo
- Strategia di accesso ideale
- inserimenti e cancellazioni efficienti (t. cost
?) - ricerca binaria
- evitare ordinamenti del file
- Gli indici rappresentano un passo avanti
- Problemi
- la ricerca si può migliorare
- gli inserimenti nei file ordinati sono un pb.
4Indici Multilivello
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Indici multiliv.
- Possono migliorare i tempi di ricerca
- Intuizione
- un indice è un file ordinato di record (chiave,
puntatore) - se i valori della chiave sono distinti, posso
costruire un indice primario per lindice - posso proseguire costruendo vari livelli di indice
5Indici Multilivello
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Indici Multiliv.
NB/bfr blocchi
(NB/bfr)/bfr blocchi
1 blocco
NB blocchi
6Indici Multilivello
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Indici multiliv.
- Dinamica logaritmica logbfr(NB) livelli di
indice - ricerca logaritmica con base bfrgt2
- Esempio
- dimblocco2048, dimrecord58, dimfile2G
- NB1M, bfr204 (fattore di blocco dellindice)
- I livello ceil(1M/204) 5141 (ceil p.te
intera sup.) - II livello ceil (29960/204) 26
- ricerca in ceil(log204(1M)) 1 accessi 4
- Attenzione tutti i valori devono essere distinti
7Indici Secondari Multiliv.
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Indici multiliv.
blocco di puntatori
valori distinti
8Il Problema degli Inserimenti
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Indici multiliv.
- Tutti i livelli sono file ordinati
- costo degli inserimenti
- Due possibili soluzioni
- strutture ordinate statiche
- ISAM
- strutture ordinate dinamiche
- B Tree e B Tree
9Strutture Ordinate Statiche
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt ISAM
- Strutture multilivello in cui
- spazio per i blocchi allocato staticamente
- file ordinato con blocchi contigui
- inserimenti effettuati ordinatamente finchè ce
spazio - file disordinato di trabocco (overflow)
- periodiche riorganizzazioni globali con fusione
del file primario e del file di trabocco - ISAM Indexed Sequential Access Method
10Struttura ISAM
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt ISAM
3333 Stop John Sci 3
Blocchi contiguidel disco
Blocchi di overflow
11Struttura ISAM
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt ISAM
- Principali vantaggi
- allocazione contigua dei blocchi (località )
- la struttura non viene toccata
- Svantaggi
- possono essere necessarie ristrutturazioni
- Adatta a tabelle con dinamica limitata
- pochi inserimenti
12Strutture Ordinate Dinamiche
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt B Tree
- Strutture multilivello in cui
- file ordinato con rappresentazione collegata
- allocazione dinamica dei blocchi
- i blocchi sono sempre parzialmente pieni
- algoritmi di inserimento opportuni
- riorganizzazioni locali (fusioni e divisioni dei
blocchi) - B Tree, B Tree
13B Tree
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt B Tree
- In sintesi, albero di ricerca di apertura ngt2
- Nodi
- al più n-1 val. della chiave ed n punt. a
sottoal. - ltp1, k1, p2, k2, p3, pm-1, km-1, pmgt, mltn,
k1lt k2 lt lt km-1 - Sottoalberi
- i valori del primo sottoalbero sono minori o ug.
di k1 - tutti i valori X del sottoalbero i sono compresi
tra ki-1 e ki (ki-1 lt X lt ki per i da 2 a m-1) - i valori dellultimo sottoalbero sono maggiori di
km-1
14B Tree
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt B Tree
1100 QueloPaolo Sci 2
1240 Rossi Mario Ing 1
1240
3121
1241 Birillo Giulio Let 2
3121 Verdi Luigi Sci 3
3122 Neri Paolo Sci 2
4128
3599
7400
7552
3599 Caio Tizio Ing 2
3600 Busti Lina Let 2
4128 Rossi Maria Let 2
Esempio Ricerca di 4400
7800
8900
4129 Mous Michi Agr 1
7400 Pinco Palla Ing 2
15B Tree
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt B Tree
- Vincoli aggiuntivi
- lalbero deve essere bilanciato
- loccupazione dei blocchi deve essere almeno il
50 - Algoritmi di inserimento e cancellazione
- rispettare i vincoli
- fusioni e divisioni (possono coinvolgere vari
livelli) - A regime
- blocchi pieni per i 2/3 (67 circa)
16B Tree
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt B Tree
Radice
30
17
24
13
39
3
5
19
20
24
25
27
38
2
13
14
16
30
33
34
17
inserimento del valore 4
Nuova Radice
17
24
30
13
4
39
2
3
19
20
24
25
27
38
13
5
4
30
33
34
14
16
17B Tree in Pratica
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt B Tree
- Ordine tipico 200
- numero medio di puntatori 133 (molto alto)
- Capacità di Indicizzazione
- profondità 4 1334 312.900.700 blocchi
- profondità 3 1333 2.352.637 blocchi
- I livelli più alti possono essere tenuti nel
buffer - Livello 1 1 blocco al più 8 Kbyte
- Livello 2 133 blocchi al più 1 Mbyte
- Livello 3 17.689 blocchi al più 133 MBytes
18B Tree
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt B Tree
- Vantaggi
- inserimenti logaritmici meno costosi che in un
file ordinato - ricerche rapide
- accesso ordinato secondo la chiave di ordinamento
- è possibile aggiungere indici secondari
- In generale
- ha prestazioni migliori della struttura ISAM
- è utilizzata dalla maggior parte dei DBMS (VSAM)
19Hashing
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Hashing
- E possibile ottenere
- tempo di inserimento costante ?
- tempo di ricerca costante ?es matricola1234 in
tempo costante - Hashing
- ricerche in tempo lineare nella lunghezza della
chiave - File Hash
- Indice Hash
20File Hash
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Hashing
- Idea
- è possibile utilizzare una funzione di hash per
inserire i record nel file - e poterli recuperarli in tempo praticamente
costante successivamente - organizzazione alternativa ai file heap e ai file
ordinati - Hashing statico (simile a ISAM)
- Hashing dinamico (simile a B Tree)
21File Hash
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Hashing
puntatori ad N blocchi
es (akb) mod N
22File Hash
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Hashing
- Organizzazione alternativa a file heap e file
ordinati - File hash statici
- Numero di bucket N
- N Blocchi iniziali per il file allocati
staticamente - Blocchi di overflow
23File Hash Statico
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Hashing
3122 QueloPaolo Sci 2
4775 Mous Michi Agr 1
9876 Rossi Maria null 3
..
0
h(k)
5442 Rossi Mario Ing 1
1
2
Valore della chiave k
3
2112 Birillo Giulio Let 2
h
7771 Verdi Luigi Sci 3
3425 Neri Paolo Sci 2
..
N-1
6779 Caio Tizio Ing 2
Puntatori agli N blocchi tipicamente in RAM
1234 Busti Lina Let 2
..
24File Hash Dinamico (Cenni)
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Hashing
- Il numero di blocco può crescere dinamicamente
- N Blocchi iniziali per il file
- Quando un blocco si riempie, il numero di blocchi
viene raddoppiato - Servono funzioni di hash appropriate
25Indice Hash
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Hashing
- Indice per un file primario
- File primario tipicamente heap
- Indice memorizzato con organizzazione hash su una
chiave di ricerca - Vantaggi
- inserimenti e ricerche molto efficienti
- utile per correlazioni tra tabelle diversees
nome degli studenti che hanno sostenuto lesame
di analisi
26Indice Hash
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt Hashing
27In Pratica
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt In pratica
- File ordinati Indici Multilivello
- ricerche logaritmiche(con base molto alta)
- ordinamento
- inserimenti logaritmici (con ristrutturazioni nel
caso di B tree)
- File heap Indici Hash
- inserimenti efficienti
- ricerche efficienti
- non supporta lordinamento
In sintesi non esiste lorganizzazione ideale
28In Pratica
DBMS Relazionali Modello Fisico gtgt Concetti
Avanzati gtgt In pratica
- MySQL
- tabelle ISAM, MyISAM, Heap ( InnoDB, BDB)
- indici B Tree, Hash
- PostgreSQL
- tabelle in file ordinati
- indici B Tree, Hash ( R Tree)
- operatore CLUSTER
29Concetti Avanzati
DBMS Relazionali Modello Fisico gtgt Sommario
- Obiettivo
- Indici Multilivello
- Indici e tabelle ISAM
- B Tree
- Indici Hash
- File hash
- Indice hash
- In Pratica
30Termini della Licenza
Termini della Licenza
- This work is licensed under the Creative Commons
Attribution-ShareAlike License. To view a copy of
this license, visit http//creativecommons.org/lic
enses/by-sa/1.0/ or send a letter to Creative
Commons, 559 Nathan Abbott Way, Stanford,
California 94305, USA.
- Questo lavoro viene concesso in uso secondo i
termini della licenza Attribution-ShareAlike di
Creative Commons. Per ottenere una copia della
licenza, è possibile visitare http//creativecommo
ns.org/licenses/by-sa/1.0/ oppure inviare una
lettera allindirizzo Creative Commons, 559
Nathan Abbott Way, Stanford, California 94305,
USA.