Algebra relazionale; il modello relazionale; il linguaggio SQL per la creazione ed interrogazione di basi di dati; progettazione delle basi di dati con il modello Entity-relationship; analisi di schemi ER e progettazione logica; trigger; transazioni; dipendenze funzionali e forme normali; normalizzazione delle basi di dati; case studies: PostgreSQL
Sistemi di Basi di Dati - Fondamenti
R.A. Elmasri, S.B. Navathe
Ed. Pearson, Addison Wesley
Basi di dati: Modelli e linguaggi di interrogazione
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone
Ed. McGraw-Hill
Obiettivi Formativi
Obiettivo del corso è quello di fornire le conoscenze e competenze
necessarie a progettare, sviluppare e gestire basi di dati.
- Progettazione concettuale di una base dati attraverso il modello entity relationships
- Derivazione del modello relazionale dallo schema concettuale (progettazione logica)
- Normalizzazione di una base dati
- Creazione, gestione ed interrogazione di una base dati con SQL
Prerequisiti
Sistemi operativi
Metodi Didattici
Lezioni in aula (45 h) ed esercitazioni in laboratorio (10 h)
Altre Informazioni
Il materiale didattico (lucidi delle lezioni ed esercizi) è disponibile dalla pagina web del corso http://www.dsi.unifi.it/pala/index.php/Main/DB-material
Modalità di verifica apprendimento
Prova scritta e prova orale.
L’esame finale ha lo scopo di accertare l’acquisizione dei risultati di apprendimento in termini di conoscenze e competenze tramite lo svolgimento di una prova scritta senza l'aiuto di appunti o libri e di una prova orale. La prova scritta consiste di 3 esercizi mirati alla verifica delle competenze di scrittura interrogazioni in linguaggio SQL, di progettazione logica ed di normalizzazione. La prova orale consiste in un colloquio volto a fare emergere la conoscenza di aspetti teorici legati alle basi di dati.
Programma del corso
Sistemi Informativi e Basi di Dati; Il modello relazionale (definizione di
relazione, vincoli di integrità); Algebra relazionale (unione,
intersezione, differenza, selezione, proiezione e join); Il linguaggio SQL
(tipi di dati, creazione tabelle, specifica vincoli di integrità, il
comando select, clausole di raggruppamento, ordinamento, operatori
aggregati, interrogazioni nidificate, viste, aggiornabilità delle viste,
viste ricorsive); Progetto di basi di dati: Il modello Entity-
Relationship (entità, relazioni, attributi, cardinalità, generalizzazioni);
Progettazione logica (analisi delle ridondanze, ristrutturazione di schemi
ER, traduzione nel modello relazionale); Forme normali (dipendenze
funzionali, decomposizioni, copertura minimale, forme normali prima,
seconda, terza e Boyce Codd, procedure di normalizzazione); Basi di dati attive: Triggers; Transazioni. Casi di studio: PostgreSQL