Conoscenze relative alla struttura interna dei sistemi di gestione delle basi dati, per valutarne le prestazioni. Memorie secondarie; buffer pool (LRU). Lunghezza fissa e variabile. Metodi di accesso. Costruzione degli indici. Hash statici e dinamici. B-alberi e B*-alberi. Altre strutture. Metodo della griglia. Liste e alberi in memoria secondaria. Liste multiple e invertite. Algebra relazionale e sua realizzazione. Piani d’accesso. Information Retrieval. Modello reticolare. Altri modelli.
A. Albano “Costruire sistemi per basi di dati” Addison-Wesley
Obiettivi Formativi
Conoscenze:
Struttura interna dei sistemi di gestione di basi di dati. Algoritmi per il recupero veloce di informazioni dalla memoria secondaria. Metodi di ordinamento nella memoria secondaria. Organizzazione delle interrogazioni.
Competenze acquisite:
Valutazione critica della struttura generale e delle prestazioni di una base di dati. Saper intervenire sulla base dei dati in caso di problemi relativi alle prestazioni.
Capacità acquisite (al termine del corso):
Effettuare le scelte progettuali ottimali, quando queste possano dipendere dalla struttura interna della base dei dati.
Prerequisiti
Corsi vincolanti: Basi di Dati
Corsi raccomandati: Algoritmi e Strutture Dati
Metodi Didattici
Numero di ore totali del corso: 150
Numero di ore per studio personale e altre attività formative di tipo individuale: 102
Numero di ore relative alle attività in aula: 48
Altre Informazioni
Frequenza delle lezioni ed esercitazioni: Raccomandata
Strumenti a supporto della didattica
UniFi E-Learning: http://e-l.unifi.it
Orario di ricevimento:
Contattare il docente tramite appuntamento telefonico o, meglio, via e-mail.
Viale Morgagni, 65 - 50134 Firenze
Tel. 055 4237438
Fax. 055 - 4237436
E_mail: renzo.sprugnoli@unifi.it
Modalità di verifica apprendimento
Progetto implementativo ed esame orale
Programma del corso
Notizie generali sulle memorie secondarie, gli archivi, le basi di dati. Il disco magnetico e il disco ottico. Tempo di accesso. Ottimizzazione dell'ingresso/uscita. Il metodo LRU. Archivi con record a lunghezza variabile e fissa. Accesso sequenziale, diretto (relative) e per chiave. Il “polyphase merging” e i numeri di Fibonacci. Ricerca delle informazioni. Costruzione degli indici. Metodi procedurali: lo hashing statico e varie forme di hashing dinamico. Prestazioni. Metodi ad albero: B- alberi e B*-alberi. Rotazioni e fattore di caricamento. I k-d-alberi e i quad-tree. Il metodo della griglia: parametri rilevanti e dimensionamento. Allocazione degli alberi binari e delle liste nella memoria secondaria. Le liste multiple usate nei modelli reticolari. Le liste invertite usate nel modello relazionale. Recupero dell'informazione (Information Retrieval) e banche di dati. L'algebra relazionale. Tecniche di selezione. L'operazione di Equi-join. Uso degli indici. Valutazione delle prestazioni. La proiezione. Il concetto di file differenziale. Il modello reticolare. Definizione dei record e dei set. Data Definition e Data Manipulation Language (DDL e DML). La ricerca di informazioni. L'accesso concorrente alle informazioni. Il caso dei B-alberi con blocco della radice. Testi e linguaggio XML e derivati. Ottimizzazione delle query e piani d'accesso.