390 likes | 517 Views
Basi di Dati. Sistemi per BD Relazionali: Modello Fisico Concetti Fondamentali. versione 2.0. Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina). DBMS Relazionali – Modello Fisico >> Sommario. Concetti Fondamentali. Introduzione
E N D
Basi di Dati Sistemi per BD Relazionali: Modello Fisico Concetti Fondamentali versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca – mecca@unibas.it – Università della Basilicata
DBMS Relazionali – Modello Fisico >> Sommario Concetti Fondamentali • Introduzione • Memorie • Gerarchia di memorie • Dischi magnetici • Blocchi • Definizione di Modello fisico • Strategia di gestione del disco • Paginazione G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Sommario Concetti Fondamentali • Strategia di Memorizzazione nei File • Record • Fattore di blocco • Directory del file • File heap e file ordinati • Strategia di Accesso ai File • Indice primario • Indice secondario G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Introduzione • Parliamo del modello fisico dei DBMS relazionali • tecniche e strutture per la memorizzazione permanente delle basi di dati • es: le tabelle sono salvate in file su disco • Indipendente dal modello logico • Notevole impatto sulle prestazioni G. Mecca - mecca@unibas.it - Basi di Dati
I/O CPU … Disco Magnetico Unità a Nastro RAM DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Gerarchia di Memorie basedi dati copie dellabase di dati I livelloin linea, volatileacc. diretto MB II livelloin linea, pers. acc. direttoGB III livellofuori linea, pers. acc. sequenzialeTB G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Dischi Magnetici • Superfici magnetiche • impressionabili in modo persistente • Tecnologia • piatti rotanti attorno ad un asse • letti da testine • fissate ad un braccio mobile G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Dischi Magnetici Dischi Magnetici Testine Piatti Movimento braccia Braccia G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Dischi Magnetici • Organizzazione dei dati • blocchi • Blocco • unità di lettura e scrittura • dimensione tipica: 512 byte – 8 Kbyte • per leggere un bit è necessario leggere tutto il blocco in cui è contenuto • Accesso diretto ai blocchi (“block id”) G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Dischi Magnetici • Tempi di trasferimento • movimento delle testine + lettura • Il movimento prevale • 1 blocco: 12-60ms • blocco successivo: 1-2ms • “Clustering” • raggruppamento dei dati perché siano fisicamente vicini su disco G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Modello Fisico • Memorizzazione della base di dati in file • File di grandi dimensioni • verso i terabyte • dimensioni non compatibili con la RAM • Accesso ai dati • i dati devono essere conservati su disco • e trasportati nella RAM solo per le elab. G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Modello Fisico • Problemi legati alla persistenza • Gestione del disco • come accedere efficientemente a blocchi su disco • Memorizzazione dei dati nei file • come codificare efficientemente le tabelle nei file • Ottimizzazione delle operazioni sui file • come effettuare efficientemente le ricerche e gli aggiornamenti G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Modello Fisico • Tre componenti • Strategia di gestione del disco • Strategia di memorizzazione nei file • Strategia di accesso • Fondamentale per le prestazioni • le operazioni sulle tabelle vengono implementate dal DBMS secondo le strategie scelte G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Strategia di Gestione del Disco • Buffer Manager • modulo che gestisce l’accesso al disco • lettura e scrittura dei blocchi • Livelli superiori • “dammi il blocco X del disco” • Tecnica • “buffer” di blocchi in memoria RAM per limitare l’accesso al disco G. Mecca - mecca@unibas.it - Basi di Dati
Disco Magnetico DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Strategia di Gestione del Disco Memoria RAM Area destinata al Buffer blocco del disco #xxx spazio libero Buffer Manager blocco del disco #yyy blocchi da 8 kByte blocco del disco #zzz spazio libero G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Strategia di Gestione del Disco • Algoritmi di paginazione • simili alla gestione della memoria virtuale • Percentuale di successo (“hit ratio”) • percentuali di blocchi prelevati dal buffer • L’obiettivo è massimizzare l’hit ratio • Parametri su cui intervenire • dimensione del buffer • algoritmi di paginazione G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Strategia di Memorizzazione • Record: unità di registrazione nel file • Codifica binaria di una ennupla • Codifica posizionale • ordinamento degli attributi • memorizzazione dei valori in sequenza • rappresentazione fisica dei tipi G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Strategia di Memorizzazione • Dimensioni standard dei campi • int, integer: 32 bit, complemento a 2 • real, float: 32 bit, virgola mobile • double precision: 64 bit, virgola mobile • char: 8 bit, ASCII • char(n): n*8 bit, ASCII • date: 80 bit, ASCII, aaaa-mm-gg G. Mecca - mecca@unibas.it - Basi di Dati
Studenti matricola cognome nome facolta annoCor 6554 Rossi Mario Ingegneria 1 8765 Neri Paolo Scienze 2 9283 Verdi Luisa Scienze 2 3456 Rossi Maria null 3 DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Record, un Esempio TABLE Studenti(matricola integer NOT NULL PRIMARY KEY, cognome char(20) NOT NULL, nome char(20) NOT NULL, facolta char(10), annoCor integer); G. Mecca - mecca@unibas.it - Basi di Dati
integer char(20) char(20) char(10) integer matricola cognome nome facolta annoCor 6554 Rossi Mario Ingegneria 1 1101…0010 001…110 0110…0010010 000..001 11010…010010 31 32 191 352 432 463 192 351 431 bit 0 4 byte 20 byte 20 byte 10 byte 4 byte DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Record di Lunghezza Fissa totale: 58 byte, 464 bit G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Strategia di Memorizzazione • Fattore di blocco • numero di record contenuti in un blocco • bfr= floor(dimBlocco/dimRecord) • floor: funzione parte intera inferiore • Esempio: • dimBlocco = 4096 byte dimBlocco = 512 byte • dimRecord= 58 byte dimRecord= 58 byte • bfr = 70 bfr = 8 • sfrido = 36 byte sfrido = 48 byte G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Strategia di Memorizzazione • File: sequenza di blocchi • Blocco: sequenza di record • Id di record: (id blocco, offset record) • Struttura del file • Struttura doppiamente collegata • Directory dei Blocchi (nell’header del file)lista di puntatori ai blocchi del file • Combinazione delle due G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Tipi di File • File “heap” • organizzazione disordinata • i record vengono inseriti in coda • File ordinato • viene mantenuto l’ordine secondo un campo di ordinamento • i record vengono inseriti secondo l’ordine G. Mecca - mecca@unibas.it - Basi di Dati
6554 Rossi Mario Ing 1 7123 Birillo Giulio Let 2 8765 Neri Paolo Sci 2 3122 QueloPaolo Sci 2 intestazione e directory 9283 Verdi Luisa Sci 2 7771 Verdi Luigi Sci 3 record 3456 Rossi Maria null 3 3453 Mous Michi Agr 1 … … … … .. … … … … .. blocco 5433 Pinco Palla Agr 1 9876 Caio Tizio Ing 2 DBMS Relazionali – Modello Fisico >> Concetti Fondamentali File Heap G. Mecca - mecca@unibas.it - Basi di Dati
3122 QueloPaolo Sci 2 7123 Birillo Giulio Let 2 intestazione 3453 Mous Michi Agr 1 7771 Verdi Luigi Sci 3 3456 Rossi Maria null 3 8765 Neri Paolo Sci 2 5433 Pinco Palla Agr 1 9283 Verdi Luisa Sci 2 … … … … .. … … … … .. 6554 Rossi Mario Ing 1 9876 Caio Tizio Ing 2 DBMS Relazionali – Modello Fisico >> Concetti Fondamentali File Ordinato per Matricola G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Strategia di Memorizzazione • E’ necessario scegliere • dimensione dei blocchi • organizzazione dei file per le tabelle • Prestazioni inaccettabili • E’ necessario avere strutture aggiuntive per l’accesso ai file • Strategia di Accesso G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Strategia di Accesso • Operazioni sul file • Aggiornamenti (inserimenti, cancellazioni) • Ricerche con condizione (es: annoCor=2) • Ricerche in ordine (es: studenti per matricola) • Organizzazione Ideale • inserimenti e cancellazioni efficienti • ricerca binaria • evitare ordinamenti del file G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Operazioni sui File Heap • Inserimenti molto rapidi • adatto per es. a tabelle temporanee • Ricerche lineari • Necessario l’ordinamento • creazione di una copia ordinata • 1M rec di 100 byte: 15 minuti • Prestazioni inaccettabili per file di grandi dimensioni G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Operazioni sui File Ordinati • Inserimenti onerosi • ricerche e spostamenti • Ricerche binarie • log2(NB) accessi, dove NB = num. di blocchi • es: se dimBlocco=2048, dimFile=2G • NB=1M, log2(NB)=20, più ricerca lineare nel blocco • Ordinamento • non necessario per la chiave di ordinamento • necessario per le altre chiavi G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Strategia di Accesso • Strutture di accesso • insieme di strutture ausiliarie di accesso al file utilizzate per migliorare le prestazioni delle operazioni • Indici: file di riferimenti al file primario • insieme di voci (chiave, rif.) es: indice analit. • più maneggevoli perché di dim. minori G. Mecca - mecca@unibas.it - Basi di Dati
3122 QueloPaolo Sci 2 3453 Mous Michi Agr 1 3456 Rossi Maria null 3 … … … … .. 6554 Rossi Mario Ing 1 3122 directorydell’indice 7123 7123 Birillo Giulio Let 2 … 7771 Verdi Luigi Sci 3 … 8765 Neri Paolo Sci 2 … … … … … .. 9934 9876 Caio Tizio Ing 2 … file di record valore dellachiave di ricerca puntatore ad un blocco 9934 Busti Lina Let 2 … … … … .. DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Indice sulla Matricola puntatori ai blocchi G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Indice sulla Matricola • Esempio • dimBlocco=2048 • dimFile=2G • NBFile =1M, log2(NBFile)=20 • numero di record dell’indice = 1M • dimensione record indice = 4byte + 6 byte • dimIndice=10M • NBIndice appross. 8192, log2(NBIndice)=13 G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Tipi di Indici • Indice primario • indice su campo chiave primaria • file ordinato secondo il campo • uno solo per tabella • Indice secondario • indice su un campo non chiave primaria • file non ordinato secondo il campo • vari per tabella (es: su nome e su facolta) G. Mecca - mecca@unibas.it - Basi di Dati
3122 QueloPaolo Sci 2 3453 Mous Michi Agr 1 3456 Rossi Maria null 3 … … … … .. 6554 Rossi Mario Ing 1 7123 Birillo Giulio Let 2 7771 Verdi Luigi Sci 3 8765 Neri Paolo Sci 2 … … … … .. 9876 Caio Tizio Ing 2 … 9934 Busti Lina Let 2 … … … … .. DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Indice Primario 3122 7123 … … … 9934 G. Mecca - mecca@unibas.it - Basi di Dati
3122 QueloPaolo Sci 2 3453 Mous Michi Agr 1 3456 Rossi Maria null 3 … … … … .. Birillo 6554 Rossi Mario Ing 1 Busti Caio … 7123 Birillo Giulio Let 2 7771 Verdi Luigi Sci 3 … 8765 Neri Paolo Sci 2 … … … … … .. Rossi 9876 Caio Tizio Ing 2 Rossi … Verdi 9934 Busti Lina Let 2 … … … … .. DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Indice Secondario puntatori ai record valori ripetuti della chiave G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali Indice Secondario • Esempio • dimBlocco=2048, dimFile=2G, dimRecord = 58 • NBFile =1M, numero di record del file approssimativamente 32M • ricerca lineare: 512K accessi in media • numero di record dell’indice appross. 32M • dimensione record indice = 20 byte + 7 byte • dimIndice1G (più o meno la metà del file) • NBIndice appr. 512K, log2(NBIndice)=19 G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Concetti Fondamentali In Sintesi • Il modello fisico è molto importante • Impatto notevole sulle prestazioni • Progettazione fisica (DBA) • scelta della strategia di gestione del disco (dimensione buffer, algoritmi di paginazione) • scelta della strategia di memorizzazione(dim. blocchi, file heap o file ordinati) • scelta della strategia di accesso(indici primari e secondari) G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Sommario Concetti Fondamentali • Introduzione • Memorie • Gerarchia di memorie • Dischi magnetici • Blocchi • Modello fisico • Strategia di gestione del disco • Paginazione G. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali – Modello Fisico >> Sommario Concetti Fondamentali • Strategia di Memorizzazione • Record • Fattore di blocco • Directory del file • File heap e file ordinati • Strategia di Accesso • Indice primario • Indice secondario G. Mecca - mecca@unibas.it - Basi di Dati
Termini 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/licenses/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://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. G. Mecca - mecca@unibas.it - Basi di Dati