Basi di Dati Sistemi per BD Relazionali: Modello Fisico Dettagli e Approfondimenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca – [email protected] – Università della Basilicata DBMS Relazionali – Modello Fisico >> Sommario Dettagli e Approfondimenti Dischi magnetici Faccia Traccia Settore Id di blocco Tempo di posizionamento Ritardo di rotazione Tempo di trasferimento G. Mecca - [email protected] - Basi di Dati 2 DBMS Relazionali – Modello Fisico >> Sommario Dettagli e Approfondimenti Strategia di Gestione del Disco Relazione con il Sistema Operativo Strategia di Memorizzazione nei File Record a lunghezza variabile Strategia di Accesso ai File Operazioni primitive sui file Terminologia degli indici G. Mecca - [email protected] - Basi di Dati 3 DBMS Relazionali – Modello Fisico >> Dettagli >> Gerarchia di Memorie Gerarchia di Memorie Gerarchia di Memorie RAM, disco, nastro base di dati su disco copie della base di dati su nastro Altre memorie cache di primo livello RAM flash dischi ottici G. Mecca - [email protected] - Basi di Dati 4 DBMS Relazionali – Modello Fisico >> Dettagli >> Dischi Magnetici Dischi Magnetici Disco superficie magnetica e testine blocchi accesso casuale id di blocco tempo di trasferimento G. Mecca - [email protected] - Basi di Dati 5 DBMS Relazionali – Modello Fisico >> Dettagli >> Dischi Magnetici Dischi Magnetici Asse Testine Asse rotante Tracce 3600 – 7200 rpm Settore Faccia piatto Piatti Traccia Cilindro sup. magnetica Settore Movimento braccia arco di traccia Cilindro Braccia tracce di ug. raggio G. Mecca - [email protected] - Basi di Dati 6 DBMS Relazionali – Modello Fisico >> Dettagli >> Dischi Magnetici Dischi Magnetici Blocco o Pagina spazio multiplo del settore x1 – x16 settore tipico: 512 byte Id di blocco indirizzo hardware faccia, traccia, settore testina, cilindro, settore Letture non parallele (>> dischi RAID) G. Mecca - [email protected] - Basi di Dati 7 DBMS Relazionali – Modello Fisico >> Dettagli >> Dischi Magnetici Dischi Magnetici Tempi tempo di posizionamento (“seek”) 8 – 25 ms ritardo di rotazione (“latency”) 4 – 6 ms tempo di trasferimento (“transfer”) 2 – 10 MB/sec. – <= 0.5 ms per 512 byte Prevale il tempo di posizionamento “località” dei blocchi G. Mecca - [email protected] - Basi di Dati 8 DBMS Relazionali – Modello Fisico >> Dettagli Modello Fisico Problemi legati alla gestione dei dati persistenti Gestione del disco Memorizzazione dei dati nei file Ottimizzazione delle operazioni sui file Modello fisico Strategia di gestione del disco Strategia di memorizzazione nei file Strategia di accesso G. Mecca - [email protected] - Basi di Dati 9 DBMS Relazionali – Modello Fisico >> Dettagli Strategia di Gestione del Disco Strategia di gestione del disco gestore del buffer buffer di blocchi nella RAM hit ratio paginazione G. Mecca - [email protected] - Basi di Dati 10 DBMS Relazionali – Modello Fisico >> Dettagli Strategia di Gestione del Disco Memoria RAM Area destinata al Buffer ... #101 ... blocco del disco #xxx #8292 #8293 ... spazio libero #16484 #16485 ... blocco del disco #yyy #24676 Buffer Manager blocchi da 8 kByte #24677 ... blocco del disco #zzz Disco Magnetico #32868 #32869 ... spazio libero #41060 ... G. Mecca - [email protected] - Basi di Dati 11 DBMS Relazionali – Modello Fisico >> Dettagli >> Gestione del Disco Strategia di Gestione del Disco Relazione con il Sistema Operativo “dammi il byte i-esimo del file F” Problemi indipendenza dalla piattaforma dimensioni dei file (> 4GB) file memorizzati su più dischi “prefetching” G. Mecca - [email protected] - Basi di Dati 12 DBMS Relazionali – Modello Fisico >> Dettagli >> Memorizzazione Strategia di Memorizzazione Strategia di Memorizzazione File: sequenza di blocchi Blocco: sequenza di record Record: codifica binaria di una ennupla Fattore di Blocco id di record: (id di blocco, offset) G. Mecca - [email protected] - Basi di Dati 13 DBMS Relazionali – Modello Fisico >> Dettagli >> Memorizzazione Record di Lunghezza Fissa integer char(20) matricola cognome 6554 Rossi 001…110 11010…010010 31 32 bit 0 4 byte char(20) nome Mario char(10) facolta annoCor Ingegneria 1 0110…0010010 191 192 20 byte integer 1101…0010 351 352 20 byte 000..001 431 432 10 byte 463 4 byte totale: 58 byte, 464 bit G. Mecca - [email protected] - Basi di Dati 14 DBMS Relazionali – Modello Fisico >> Dettagli >> Memorizzazione Record di Lunghezza Variabile Esistono attributi di lunghezza variabile null varchar(n): al più 8*n bit matricola cognome 3456 Rossi nome Maria facolta null annoCor 3 ??? G. Mecca - [email protected] - Basi di Dati 15 DBMS Relazionali – Modello Fisico >> Dettagli >> Memorizzazione Record di Lunghezza Variabile integer varchar(20) varchar(20) char(10) matricola cognome 6554 Rossi nome Mario integer facolta annoCor Ingegneria 1 001…110 x 11010…010010 x 0110…0010010 x 1101…0010 x 00..001 = 1 byte 1 byte 1 byte 1 byte 1 byte tot: 28 +5 byte 3456 Rossi Maria null 3 001…110 x 11010…010010 x 0110…0010010 xx 00..001 = tot: 18 +5 byte G. Mecca - [email protected] - Basi di Dati 16 DBMS Relazionali – Modello Fisico >> Dettagli >> Memorizzazione Record di Lunghezza Variabile Record di lunghezza fissa spreco di spazio semplice localizzazione dei record (offset) Record di lunghezza variabile risparmio di spazio localizzazione complessa dei record intestazione di blocco con puntatori all’inizio dei record G. Mecca - [email protected] - Basi di Dati 17 DBMS Relazionali – Modello Fisico >> Dettagli >> Memorizzazione Organizzazione dei File File heap inserimenti disordinati vantaggio: rapidità di inserimento File ordinato inserimenti ordinati rispetto ad un attributo pb: complessità degli inserimenti G. Mecca - [email protected] - Basi di Dati 18 DBMS Relazionali – Modello Fisico >> Dettagli >> Accesso Struttura di Accesso Struttura di Accesso strutture ausiliarie per migliorare le prest. Gestore dei dell’accesso ai file modulo a livello superiore rispetto al buffer manager gestisce l’organizzazione dei file ed esegue le operazioni usando i metodi di accesso G. Mecca - [email protected] - Basi di Dati 19 DBMS Relazionali – Modello Fisico >> Dettagli >> Accesso Operazioni sui File Creazione e apertura OPEN RESET bl. corrente INSERT record DELETE record MODIFY record Letture e ricerche SCAN FIND condizione READ blocco corrente FIND NEXT condiz. FIND ORDERED attr. G. Mecca - [email protected] - Basi di Dati Modifiche Chiusura CLOSE Riorganizzazione REORGANIZE 20 DBMS Relazionali – Modello Fisico >> Dettagli >> Accesso Strutture di Accesso 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 - [email protected] - Basi di Dati 21 DBMS Relazionali – Modello Fisico >> Dettagli >> Accesso Indice Primario 3122 QueloPaolo Sci 2 3453 Mous Michi Agr 1 3456 Rossi Maria null 3 … 3122 … … … .. 6554 Rossi Mario Ing 1 7123 … 7123 Birillo Giulio Let 2 … 7771 Verdi Luigi Sci 3 8765 Neri Paolo Sci 2 … … 9934 9876 Caio Tizio Ing … … … .. 2 … G. Mecca - [email protected] - Basi di Dati 9934 Busti Lina Let 2 … .. … … … 22 DBMS Relazionali – Modello Fisico >> Dettagli >> Accesso Indice Secondario 3122 QueloPaolo Sci 2 3453 Mous Michi Agr 1 3456 Rossi Maria null 3 Birillo … … … … Busti 6554 Rossi Mario Ing 1 .. Caio … 7123 Birillo Giulio Let 2 … 7771 Verdi Luigi Sci 3 8765 Neri Paolo Sci 2 … Rossi … … … … 9876 Caio Tizio Ing .. 2 Rossi … Verdi G. Mecca - [email protected] - Basi di Dati 9934 Busti Lina Let 2 … .. … … … 23 DBMS Relazionali – Modello Fisico >> Dettagli >> Accesso Terminologia degli Indici Indice denso una voce per ogni record del file Indice sparso una voce per ogni blocco del file Indice su singolo attributo Indice su più attributi la dimensione dell’indice tende ad aumentare (coppie di valori degli attributi) G. Mecca - [email protected] - Basi di Dati 24 DBMS Relazionali – Modello Fisico >> Dettagli >> Accesso Terminologia degli Indici Indice di raggruppamento l’indice implica una organizzazione del file (es: organizzazione ordinata rispetto alla chiave primaria) Indici non di raggruppamento l’indice non implica una organizzazione del file (voci vicine nell’indice non necessariamente sono vicine nel file) Importante per migliorare la località G. Mecca - [email protected] - Basi di Dati 25 DBMS Relazionali – Modello Fisico >> Dettagli >> Accesso Uso degli Indici Indice primario assume organizzazione ordinata del file singolo attributo, sparso, di raggruppamento uno solo per tabella (creato autom.) Indice secondario non assume ordinamento del file (es: heap) uno o più attributi, denso, non di raggruppamento vari per tabella; es: indice sec. su facoltà G. Mecca - [email protected] - Basi di Dati 26 DBMS Relazionali – Modello Fisico >> Dettagli >> Accesso Uso degli Indici Normalmente più indici per tabella es: indice primario su matricola + indice secondario su nome e/o facoltà Dipende dalle operazioni sulla tabella Compromesso nell’uso degli indici maggior costo degli inserimenti e cancellazioni (file ordinati) minor costo delle ricerche e ordinamenti G. Mecca - [email protected] - Basi di Dati 27 DBMS Relazionali – Modello Fisico >> Sommario Dettagli e Approfondimenti Dischi magnetici Faccia Traccia Settore Id di blocco Tempo di posizionamento Ritardo di rotazione Tempo di trasferimento G. Mecca - [email protected] - Basi di Dati 28 DBMS Relazionali – Modello Fisico >> Sommario Dettagli e Approfondimenti Strategia di Gestione del Disco Relazione con il Sistema Operativo Strategia di Memorizzazione Record a lunghezza variabile Inserimenti in file ordinati Strategia di Accesso Operazioni primitive sui file Indici sparsi, indici densi G. Mecca - [email protected] - Basi di Dati 29 Termini della Licenza Termini della Licenza This work is licensed under the Creative Commons AttributionShareAlike 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 - [email protected] - Basi di Dati 30