PROGRAMMA DEL CORSO DI BASI DI DATI ANNO ACCADEMICO 2002-2003 Sistemi per la gestione di basi di dati Modelli dei dati; livelli di astrazione; schemi ed istanze; indipendenza dei dati; linguaggi per basi di dati; struttura dei DBMS; vantaggi e svantaggi dei DBMS nello sviluppo e la gestione delle applicazioni; utenti e progettisti; introduzione a un DBMS commerciale. Rif.: [1], Cap. 1. Il modello relazionale Modelli logici nei sistemi per basi di dati; relazioni e tabelle; schemi ed istanze; informazione incompleta e valori nulli; chiavi; vincoli di integrita' (di tupla, di chiave, di integrita' referenziale, generali). Rif.: [1], Cap. 2. Linguaggi di interrogazione nel modello relazionale Operatori dell'algebra relazionale: operatori insiemistici, ridenominazione, selezione, proiezione, join, divisione; formulazione di interrogazioni in algebra relazionale. Rif.: [1], Cap. 3. SQL Definizione di interrogazioni SELECT, FROM, WHERE; interrogazioni con operatori insiemistici; interrogazioni nidificate; interrogazioni con raggruppamento; valori nulli. Manipolazione dei dati; inserimento, cancellazione e modifica di tuple; definizione di schemi e tabelle; definizione di vincoli di integrita'; definizione ed uso di viste. Rif.: [1], Cap. 4. La progettazione concettuale Metodologie di progettazione di basi di dati; il modello Entita'-Relazione; sviluppo e documentazione degli schemi E-R; l'analisi dei requisiti; strategie di progetto; qualita' di uno schema concettuale. Rif: [1], Cap. 5 + slides delle lezioni. La progettazione logica Ristrutturazione di schemi E-R: analisi delle ridondanze, eliminazione delle gerarchie, partizionamento e accorpamento; traduzione da schema E-R a schema relazionale; problemi causati dalle ridondanze; anomalie; dipendenze funzionali; chiusura di un insieme di dipendenze funzionali; terza forna normale; forma normale di Boyce e Codd; decomposizioni; progettazione di basi di dati e normalizzazione. Rif.: [1], Cap. 6 + slides delle lezioni, e Cap. 7. L'organizzazione fisica dei dati Organizzazione della memoria; organizzazione dei files; introduzione agli indici; proprieta' degli indici; tipi di indici. Rif. [1], Cap. 10. Implementazione degli operatori relazionali ed Ottimizzazione Parametri di costo; varie implementazioni del join. Piani per la valutazione delle interrogazioni; decomposizione delle interrogazioni; stima del costo dei piani; scelta tra piani alternativi. Rif.: [1], Cap. 11. Progettazione fisica Stima del carico transazionale; linee guida per la scelta degli indici; denormalizzazione; decomposizione delle relazioni. Rif.: [1], Cap. 12. Transazioni, controllo di concorrenza e ripristino da guasti La gestione delle transazioni; proprieta' acide delle transazioni; serializzabilita'. -Locking a due fasi; la gestione del locking; deadlock e politiche di risoluzione; organizzazione del log; algoritmi di ripristino. Rif.: [1], Cap. 13. Riferimenti principali [1] R. Ramakrishnan, J.Gehrke. Sistemi di Basi di Dati. McGraw-Hill, 2004. Le slides delle lezioni sono disponibili all'indirizzo: http://www.dis.uniroma1.it/~catarci/DBslides/indexLT.html