versione 2.0
Questo lavoro concesso in uso secondo i termini di una licenza Creative Commons
(vedi ultima pagina)
Concetti Avanzati
Obiettivo
Indici multilivello
Indici e tabelle ISAM
B+ Tree (cenni)
Indici Hash
File hash
Indice hash
In Pratica
2
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Obiettivo
Obiettivo
Indici Multilivello
5990
5990
3122 4123 Birillo Giulio Let 2
6102
4771 Verdi Luigi Sci 3
7488 5765 Neri Paolo Sci 2
7488 ..
8770 5876 Caio Tizio Ing 2
8770
9934
9934 Busti Lina Let 2
..
Indici Multilivello
Dinamica logaritmica: logbfr(NB) livelli di indice
ricerca logaritmica con base bfr>2
Esempio
dimblocco=2048, dimrecord=58, dimfile=2G
NB=1M, bfr=204 (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
6
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Indici multiliv.
Birillo ..
Caio
7123 Birillo Giulio Let 2
8
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> ISAM
3122 6442
5990 4123 Birillo Giulio Let 2
7412 6102 4771 Verdi Luigi Sci 3
7488
7402 5765 Neri Paolo Sci 2
7488
.. 5777 Caro Pino Ing 3
8122
5876 Caio Tizio Ing 2
8770
8770
8880
Blocchi contigui 9934
9934 Busti Lina Let 2 Blocchi di
del disco .. overflow
10
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> ISAM
Struttura 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
11
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ Tree
B+ Tree
Insintesi, albero di ricerca di apertura n>2
Nodi
al pi n-1 val. della chiave ed n punt. a sottoal.
<p1, k1, p2, k2, p3, pm-1, km-1, pm>, m<=n,
k1< k2 < < 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 < X <= ki per i da 2 a m-1)
i valori dellultimo sottoalbero sono maggiori di km-1
13
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ Tree
B+ Tree
7552 7400
3599 Caio Tizio Ing 2
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)
15
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ Tree
Radice
B+ Tree 13 17 24 30
2 3 5 13 14 16 17 19 20 24 25 27 30 33 34 38 39
Nuova Radice
17
4 13 24 30
2* 3* 4* 5* 13* 14* 16* 19* 20* 24* 25* 27* 30* 33* 34* 38* 39*
16
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ Tree
B+ Tree in Pratica
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
17
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> B+ Tree
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)
18
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing
Hashing
E possibile ottenere
tempo di inserimento costante ?
tempo di ricerca costante ?
es: matricola=1234 in tempo costante
Hashing
ricerche in tempo lineare nella lunghezza
della chiave
File Hash
Indice Hash
19
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing
File Hash
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)
20
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing
0 ..
h(k) 5442 Rossi Mario Ing 1
1
2
Valore
3
della h 2112 Birillo Giulio Let 2
chiave 7771 Verdi Luigi Sci 3
k 3425 Neri Paolo Sci 2
..
N-1
6779 Caio Tizio Ing 2
Funzione puntatori
di hash h ad N blocchi 1234 Busti Lina Let 2
es: (a+k*b) mod N
..
21
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing
File Hash
22
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing
Puntatori agli
24
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> Hashing
Indice Hash
0 6779 ..
h(k) 8723 5442 Rossi Mario Ing 1
1
2 9112
Valore
3
della 2112 Birillo Giulio Let 2
h
chiave 7771 Verdi Luigi Sci 3
k 4775 3425 Neri Paolo Sci 2
3122 ..
N-1 1234 6779 Caio Tizio Ing 2
7771
9543
3224 1234 Busti Lina Let 2
..
26
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Concetti Avanzati >> In pratica
In Pratica
File ordinati + File heap +
Indici Multilivello Indici Hash
ricerche logaritmiche inserimenti efficienti
(con base molto alta) ricerche efficienti
ordinamento non supporta
inserimenti logaritmici lordinamento
(con ristrutturazioni
nel caso di B+ tree)
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
28
G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali Modello Fisico >> Sommario
Concetti Avanzati
Obiettivo
Indici Multilivello
Indici e tabelle ISAM
B+ Tree
Indici Hash
File hash
Indice hash
In Pratica
29
G. Mecca - mecca@unibas.it - Basi di Dati
Termini della Licenza
30
G. Mecca - mecca@unibas.it - Basi di Dati