Tecnologia delle basi di dati: Strutture fisiche di accesso

Slides:



Advertisements
Presentazioni simili
Linguaggi di programmazione
Advertisements

Introduzione ai DBMS I Sistemi di Gestione di Basi di Dati sono strumenti software evoluti per la gestione di grandi masse di dati residenti su memoria.
I Files Definizione Operazioni File e periferiche Moduli di S.O.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
Estendere i linguaggi: i tipi di dato astratti
Unità D2 Archivi e file.
Una Introduzione alle Basi di Dati
Hard disk.
File System Cos’è un File System File e Directory
Archivi   L’uso degli archivi deriva dalla necessità di conservare dati e informazioni in modo permanente affinché possano essere riutilizzate anche.
Realizzazione del file system
Interfaccia del file system
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Realizzazione del file system
Interfaccia del file system
Luglio 2004Memorie Tradizionali1 MEMORIE TRADIZIONALI Luglio 2004.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Tecnologia di un Database Server S. Costantini Dispensa per il Corso di Basi di dati e Sistemi Informativi.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati.
Struttura dei sistemi operativi (panoramica)
Tabelle hash.
memoria gestita staticamente:
Algoritmi e Programmazione Avanzata
Daniel Stoilov Tesi di Laurea
DBMS ( Database Management System)
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
File I record.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Implementare un modello di dati
File ad accesso casuale o random
DAGLI ARCHIVI AI DATABASE
Docente: Roberto Basili Fond Inf (a.a ) Introduzione alla Progettazione Concettuale R. Basili.
Introduzione a Oracle 9i
Basi di Dati e Sistemi Informativi
Il Sistema Operativo: il File System
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Laboratorio informatico I
Architettura Centralizzata di un DBMS Relazionale
GLI ARCHIVI SEQUENZIALI
I DATABASE.
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Database Concetti di base
Heap concetti ed applicazioni. maggio 2002ASD - Heap2 heap heap = catasta condizione di heap 1.albero binario perfettamente bilanciato 2.tutte le foglie.
GLI ARCHIVI Pandini Lorenzo 4^ E S.I.A.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Dati e DBMS DBMS relazionali SQL Progettazione di un DBMS Normalizzazione Programma del Corso di Basi di Dati.
Archivi Esempi Movimenti contabili di un’azienda
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Hashing. 2 argomenti Hashing Tabelle hash Funzioni hash e metodi per generarle Inserimento e risoluzione delle collisioni Eliminazione Funzioni hash per.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione Programma del Corso.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione Programma del Corso.
1 Alcuni esempi di dispositivi Disco rigido, RAID, video.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Le basi di dati.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
La suddivisione di un disco è così articolata: il disco magnetico è suddiviso in tracce concentriche una traccia è suddivisa in spicchi di disco detti.
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
Lezione 14 Tecniche di I/O Avanzate Obiettivi di apprendimento: A.Come lavorare con stream binari B.Lavorare con I datalog files C.Vantaggi e svantaggi.
© 2015 Giorgio Porcu - Aggiornamennto 27/11/2015 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Gestione del File.
DDBMS Distributed database system. DDB Una base di dati distribuita è una collezione di dati che appartengono logicamente allo stesso sistema informativo.
Anno Architetture dati - DBMS Centralizzati Recovery management Carlo Batini.
Vengono detti memorie di massa tutti i supporti (dischi e nastri) su cui vengono registrati dati, documenti e programmi che si vogliono conservare, sono.
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Prof.ssa Rossella Petreschi Lezione del 15 /10/2012 del Corso di Algoritmica B-alberi Lezione n°5.
Transcript della presentazione:

Tecnologia delle basi di dati: Strutture fisiche di accesso Esercitazioni del Corso di Sistemi Informativi Marina Mongiello mongiello@poliba.it

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

Strutture fisiche di accesso Descrivono l’organizzazione 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

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

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

Architettura del gestore degli accesi Metodi di Accesso DBMS Recovery Manager Buffer Manager Scan Mgr Hash Sort B+Tree … Gestore dei metodi d’accesso fix use unfix scan

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 dall’ordine 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

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 d’accesso Informazione di controllo utilizzata dal file system

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 all’interno del file e tutti gli spazi all’interno dei blocchi. L’accesso al file sia in inserimento che in lettura avviene dalla fine.

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 dell’informazione con spreco di spazio

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 dell’array

Strutture sequenziali ad array (2) 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 ordinate (1) la sequenza dipende dal valore di un campo detto chiave (non è più usata) L’ordinamento 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.

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

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.

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

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.

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

Strutture ad albero: B-Tree (1) P0 K1 …… Pi Ki-1 Ki Kq Pq Sotto-albero con chiavi K>Kq Sotto-albero con chiavi Ki-1≤K<Ki Sotto-albero con chiavi K<K1

Strutture ad albero (2) key-sequenced P1 K1 …… Pi Ki-1 Ki Pq Kq tK1 tKi-1 tKi tKq I nodi foglia contengono l’intera tupla. È generalmente utilizzata per realizzare l’indice primario (unique in una tabella)

Strutture ad albero (3) indiretta 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. K1 K6 K2 K4 K5

Strutture ad albero (4) Inserimento L’inserimento 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 un’operazione di split e successivo aggiornamento sia del nodo foglia che del nodo . K1 K6 K2 K4 K5 Inserimento di K3 e split del livello foglia K1 K3 K2 K4 K5 K6

Strutture ad albero (5) Inserimento, cancellazione e modifica Lo split può essere necessario anche ai livelli superiori e propagarsi fino al nodo radice. L’operazione 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.

B+-Tree 100 200 150 10 50 2 5 90 t2 t5 t10 t90 t100 t145 145 I nodi foglia sono legati da una catena che li connette in base all’ordine imposto dalla chiave. Questa struttura dati consente anche una scansione ordinata in base ai valori di chiave dell’intero file.

B-Tree (ottimizzazione) K1 K6 K10 K2 K3 K4 K5 K7 K8 K9 tk2 tk3 tk4 tk5 tk1 tk6 tk10 tk7 tk8 tk9 Per arrivare a leggere il valore di una tupla, non è necessario arrivare fino in fondo all’albero.