La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Tecnologia delle basi di dati: Strutture fisiche di accesso Esercitazioni del Corso di Sistemi Informativi Marina Mongiello

Presentazioni simili


Presentazione sul tema: "Tecnologia delle basi di dati: Strutture fisiche di accesso Esercitazioni del Corso di Sistemi Informativi Marina Mongiello"— Transcript della presentazione:

1 Tecnologia delle basi di dati: Strutture fisiche di accesso Esercitazioni del Corso di Sistemi Informativi Marina Mongiello

2 Organizzazione fisica e metodi daccesso Organizzazione dei file –Indica lorganizzazione dei dati in un file di record in blocchi e strutture daccesso –Specifica in che modo i record ed i blocchi sono disposti sul dispositivo di memorizzazione e collegati Metodi daccesso: –Un insieme di programmi che specifica in che modo le operazioni possono essere eseguite su un file Generalmente alcuni metodi daccesso possono essere applicati soltanto su file aventi una particolare organizzazione fisica

3 Strutture fisiche di accesso Descrivono lorganizzazione fisica dei dati di una base dati nella memoria di massa Obiettivi: Garantire operazioni di ricerca e di modifica efficienti da parte dei programmi applicativi

4 Organizzazioni fisiche primarie Strutture sequenziali: entry-sequenced, ad array, sequenziale ordinato Strutture con accesso calcolato: (uso di funzioni hash) Strutture ad albero: B-tree, B+-tree

5 Metodi di accesso Sono opportuni moduli software che contengono primitive per laccesso e la manipolazione dei dati specifici di ciascuna organizzazione fisica Conosce lorganizzazione fisica delle tuple nelle pagine

6 Architettura del gestore degli accesi Metodi di Accesso DBMS Recovery Manager Buffer Manager Scan Mgr Hash Mgr Sort Mgr B+Tree Mgr … Gestore dei metodi daccesso fixuse unfix scan

7 Strutture sequenziali Disposizione sequenziale delle tuple in memoria di massa E costituito da blocchi consecutivi di memoria. Le tuple possono essere inserite nei blocchi in sequenza: –Entry-sequenced: sequenza indotta dallordine di immissione –Ad array: la posizione delle tuple dipende dal valore assunto da un campo indice –Sequenziale ordinata:la sequenza dipende dal valore di un campo detto chiave

8 Gestione delle tuple nelle pagine (esempio per metodi di accesso sequenziali e calcolati) Block header Page header Bit di parità Page trailer Block trailer Parte utile della pagina Dizionario di pagina *t1 *t2 *t3 tupla tupla tupla t1 t2 t3 Informazione di controllo relativa al metodo daccesso Informazione di controllo utilizzata dal file system

9 Strutture sequenziali entry-sequenced (1) sequenza delle tuple indotta dal loro ordine di immissione Si rivela una strategia ottimale per operazioni di lettura e scrittura sequenziali. Il modo tipico di accesso ai dati è tramite una funzione di scansione sequenziale. Questa organizzazione utilizza tutti i blocchi allinterno del file e tutti gli spazi allinterno dei blocchi. Laccesso al file sia in inserimento che in lettura avviene dalla fine.

10 Strutture sequenziali entry-sequenced (2) La modifica di tuple di dimensione variabile e la cancellazione risulta problematica. La cancellazione spesso si riduce ad una invalidazione dellinformazione con spreco di spazio

11 Strutture sequenziali ad array (1) la posizione delle tuple dipende dal valore assunto da un campo indice È possibile solo per tuple di dimensione fissa Al file viene associato un numero n di blocchi contigui e ciascun blocco viene diviso in m slot utilizzabili per le tuple (array n x m slot) Ciascuna tupla è dotata di un valore numerico i che funge da indice dellarray

12 Le cancellazioni creano degli slot liberi Gli inserimenti devono essere fatti negli slot liberi o al termine del file Le funzioni primitive garantite da una tale struttura sono read-ind insert-at insert-near insert-at-end update-ind delete-ind Strutture sequenziali ad array (2)

13 Strutture sequenziali ordinate (1) la sequenza dipende dal valore di un campo detto chiave (non è più usata) Lordinamento delle tuple riflette quello lessicografico dei valori presenti nel campo chiave. Sono avvantaggiate le transazioni che richiedono un accesso ordinato alle tuple in base alla chiave. Per trovare la tupla che contiene un valore specifico si può ricorrere alla ricerca dicotomica.

14 Strutture sequenziali ordinate (2) Problema: inserire nuove tuple (riordino delle tuple già presenti in memoria di massa) Possibili soluzioni : 1.prevedere a priori un certo numero di slot liberi mantenendo la struttura sequenziale con riordino locale 2.integrare il file sequenziale con un file di overflow

15 Strutture con accesso calcolato (1) Come per la struttura sequenziale ordinata, cè un accesso associativo ai dati: - la locazione fisica dei dati dipende dal valore del campo chiave Per il file vengono allocati un numero B di blocchi (generalmente) contigui. Il gestore di questo metodo di accesso dispone di un algoritmo di hash che restituisce un valore compreso tra 0 e B-1.

16 Strutture con accesso calcolato (2) Funziona bene se viene previsto un basso coefficiente di riempimento (file sovradimensionato) Bisogna gestire il problema delle collisioni Lhashing è efficiente per accedere ai dati in base a predicati di uguaglianza Risulta inefficace per interrogazioni che richiedono laccesso ad intervalli di valori

17 Strutture ad Albero (1) Nei database relazionali le strutture più frequentemente utilizzate sono il B-Tree ed il B+- Tree Ogni nodo coincide con una pagina o blocco a livello di file system. I legami tra i nodi vengono stabiliti da puntatori che collegano fra loro le pagine Gli alberi dovrebbero essere sempre bilanciati (Balanced-Tree) per avere tempi di accesso pressoché costanti.

18 Strutture ad Albero (2) Lefficienze di un albero B o B+ è normalmente elevata perché spesso le pagine che memorizzano i primi livelli dellalbero risiedono nel buffer Una ottimizzazione dello spazio occupato avviene tramite la compressione dei valori chiave Vengono mantenuti solo i prefissi nei livelli alti dellalbero e solo i suffissi, a pari prefisso, nei livelli bassi dellalbero, ove si svolge la parte finale della ricerca.

19 Strutture ad albero: B-Tree (1) P0P0 K1K1 ……PiPi Ki- 1 KiKi ……KqKq PqPq Sotto-albero con chiavi KK q

20 Strutture ad albero (2) key-sequenced P1P1 K1K1 ……PiPi Ki- 1 KiKi ……PqPq KqKq t Kq t Ki-1 t K1 t Ki I nodi foglia contengono lintera tupla. È generalmente utilizzata per realizzare lindice primario ( unique in una tabella)

21 Strutture ad albero (3) indiretta K1K6 K1K2K4K5 I nodi foglia contengono puntatori ai blocchi della base di dati nei quali sono presenti tuple con il valore di chiave specificato. Il posizionamento delle tuple nel file può essere qualsiasi. È possibile utilizzare un qualsiasi dei metodi visti in precedenza.

22 Strutture ad albero (4) Inserimento K1K6 K1K2K4K5 Linserimento di un nuovo valore avviene tramite il semplice aggiornamento del nodo foglia, se è ancora presente dello spazio nella pagina. Se lo spazio è finito, si ricorre ad unoperazione di split e successivo aggiornamento sia del nodo foglia che del nodo. K1K3 K1 K2 K3K4K5 K6 Inserimento di K3 e split del livello foglia

23 Strutture ad albero (5) Inserimento, cancellazione e modifica Lo split può essere necessario anche ai livelli superiori e propagarsi fino al nodo radice. Loperazione cancellazione avviene in maniera duale a quella di inserimento tramite, se necessario, il merge di due nodi foglia. La modifica viene vista come una cancellazione seguita da un inserimento e si fa ricadere nei due casi precedenti.

24 B+-Tree t2t2 t5t5 t 10 t 90 t 100 t I nodi foglia sono legati da una catena che li connette in base allordine imposto dalla chiave. Questa struttura dati consente anche una scansione ordinata in base ai valori di chiave dellintero file.

25 B-Tree (ottimizzazione) K6K1K10 K3K2K4 K5 K8K7K9 t k2 t k3 t k4 t k1 t k8 t k9 t k5 t k6 t k10 t k7 Per arrivare a leggere il valore di una tupla, non è necessario arrivare fino in fondo allalbero.


Scaricare ppt "Tecnologia delle basi di dati: Strutture fisiche di accesso Esercitazioni del Corso di Sistemi Informativi Marina Mongiello"

Presentazioni simili


Annunci Google