Modello fisico – Introduzione
RAM: memoria di I livello, in linea, volatile e ad accesso diretto.
Disco magnetico: memoria di II livello, persistente, ad accesso diretto.
Unità a nastro: memoria di III livello, fuori linea, persistente, accesso sequenziale.
Disco magnetico
Superfici magnetiche impressionabili in modo persistente, piatti rotanti attorno ad un asse, letti da testine e fissate attorno ad un braccio mobile. In particolare, la tecnologia del disco magnetico influenza le prestazioni del DBMS e presenta due particolarità:
- Organizzazione in blocchi dei dati: Per leggere un bit nel blocco è necessario leggere tutto il blocco in cui è contenuto; si ha un accesso casuale al blocco, specificando l’id del blocco (indirizzo hardware del blocco sul disco).
- Un parametro importante per le prestazioni è la località dei blocchi.
- Clustering: tecnica di raggruppamento dei dati perché siano fisicamente vicini su disco.
- RAID: tecnologia concepita per consentire la lettura e la scrittura in parallelo su dischi magnetici e utilizza vari dischi contemporaneamente.
- RAID Livello 0: usa più dischi per scrivere/leggere in parallelo e migliorare le prestazioni.
- RAID Livello 1: usa dischi a coppie per fornire funzionalità di mirroring (resistenza ai guasti).
- RAID Livello 0+1: effettua mirroring di un intero array di livello 0 e attraverso la tecnica del livello 1.
- Livelli superiori: forniscono inoltre funzionalità di codifica ridondante e correzione d’errore, e questo determina complessità e costo crescente.
Tempi di trasferimento e località.
Modello fisico - Concetti fondamentali
Modello fisico: insieme delle regole e delle tecniche per la memorizzazione della base di dati su disco.
- Gestire la paginazione: ovvero accedere efficientemente ai blocchi su disco per portarli nella RAM.
- Memorizzare i dati nei file: ovvero rappresentare efficientemente le tabelle nei file.
- Eseguire le operazioni sui file: ovvero effettuare efficientemente le interrogazioni e gli aggiornamenti.
Strategia della paginazione
Servizio fornito ai livelli superiori e utilizza un buffer di blocchi in memoria RAM per limitare l’accesso al disco.
- Buffer manager: modulo che gestisce l’accesso al disco e si occupa della lettura e scrittura dei blocchi. Obiettivo del buffer manager è massimizzare l’hit ratio, ovvero le percentuali di blocchi richiesti dai livelli superiori e prelevati dal buffer e i parametri su cui intervenire sono:
- Dimensione del buffer.
- Algoritmo di paginazione (come fare spazio ad una nuova pagina quando il buffer è esaurito).
Il buffer è organizzato in pagine che hanno dimensioni pari a un numero intero di blocchi. Il gestore del buffer si occupa del caricamento e dello scaricamento delle pagine dalla memoria centrale alla memoria di massa. Si noti che la tempistica delle operazioni non necessariamente coincide con quella delle richieste ricevute:
- Lettura: se la pagina è presente nel buffer allora non è necessaria la lettura fisica.
- Scrittura: il gestore del buffer può decidere di differire la scrittura fisica.
Entrambi i casi esposti consentono di ridurre il tempo di risposta di un'applicazione. Ogni DBMS ha il suo buffer manager e il suo sistema di paginazione.
Strategia di memorizzazione
Consiste nello scegliere la dimensione dei blocchi e l’organizzazione dei file per le tabelle. I dati sono generalmente memorizzati in forma di record e ogni record è una collezione di valori di dati, e ogni valore è formato da uno o più byte e corrisponde a un particolare campo del record.
- Record: unità di registrazione nel file e consiste nella registrazione di una codifica binaria di una ennupla.
- Record di lunghezza fissa: quando è possibile, viene stabilità una lunghezza unica in bit per tutti i record di una tabella. In questo caso si ha spreco di spazio e semplice localizzazione dei record nel blocco (la posizione di ciascun record è nota).
- Record di lunghezza variabile: esistono attributi di lunghezza variabile che rendono impossibile stabilire la lunghezza fissa (null, varchar). In questo caso si ha un risparmio di spazio e una localizzazione complessa dei record.
- File = sequenza di blocchi.
- Blocco = sequenza di record.
- Fattore di blocco: numero di record contenuti in un blocco = floor(dim blocco/dim record).
- Struttura tipica del file: struttura doppiamente collegata di blocchi con una directory iniziale (struttura di dati contenuta nell’intestazione del file e lista di puntatori ai blocchi del file).
- File heap: organizzazione disordinata e i record vengono inseriti in coda.
- File ordinato: viene mantenuto l’ordine secondo un campo di ordinamento e i record vengono inseriti secondo l’ordine.
Strategia di accesso
Le operazioni principali sui file corrispondono alle operazioni effettuate nel sistema. Ogni sistema di gestione dei dati ha le sue caratteristiche specifiche che influenzano le modalità di accesso e manipolazione dei dati memorizzati.