PROGRAMMA DEL CORSO DI BASI DI DATI
ANNO ACCADEMICO 2015-2016
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.
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.