Insegnamento BASI DI DATI E SISTEMI INFORMATIVI CON LABORATORIO

Nome del corso di laurea Informatica
Codice insegnamento 55083809
Curriculum Comune a tutti i curricula
Docente responsabile Raffaella Gentilini
Docenti
  • Raffaella Gentilini
Ore
  • 78 Ore - Raffaella Gentilini
CFU 9
Regolamento Coorte 2024
Erogato Erogato nel 2026/27
Erogato altro regolamento
Attività Caratterizzante
Ambito Discipline informatiche
Settore INF/01
Anno 3
Periodo Primo Semestre
Tipo insegnamento Obbligatorio (Required)
Tipo attività Attività formativa monodisciplinare
Lingua insegnamento ITALIANO
Contenuti Sintesi del programma: (1) Introduzione alle basi di dati ed ai gestori di basi di dati (Database Management Systems - DBMS). (2) Basi di dati relazionali: Modello e linguaggi. Il modello relazionale. Algebra relazionale e calcolo relazionale. Linguaggio SQL. (3) Progettazione di basi di dati. Progettazione concettuale: modello Entità/Relazioni (ER) ed Entità/Relazioni Esteso (EER), progettazione logica, progettazione fisica (cenni). Normalizzazione. (4) Tecnologia dei DBMS. Transazioni, concorrenza, affidabilità.
Testi di riferimento Il testo principale di riferimento per il corso e': [EN18] R.A.Elmasri e S.B.Navathe: Sistemi di Basi di Dati: Fondamenti e complementi, Pearson Addison-Wesley, 2018. Le fonti per eventuale materiale integrativo verranno indicate a lezione. Si tenga presente che gli argomenti trattati nel corso possono essere studiati o approfonditi anche consultando uno (o più) dei seguenti testi. [UW02] --- J.Ullman e J.Widom. First Course in Database Systems. 2a edizione. Prentice Hall [ACPT09] --- P.Atzeni, S. Ceri, S. Paraboschi, e R. Torlone. Basi di Dati: Modelli e Linguaggi di Interrogazione. 3a edizione. McGraw-Hill. 2009
Obiettivi formativi Il corso si propone di fornire le competenze essenziali relative a fondamenti, concetti, metodi e tecniche per il progetto e l'utilizzo dei sistemi di gestione di basi di dati. Le esercitazioni in laboratorio permetteranno allo studente di tradurre nella pratica le nozioni acquisite nella parte teorica del corso.
Metodi didattici Lezioni frontali in aula e laboratorio.
Modalità di verifica dell'apprendimento Esame scritto ed orale.
Programma esteso Il programma relativo alla parte teorica si articola in quattro parti: Parte 1. Introduzione ai database ed ai DBMS. * Concetti e architettura di un sistema di basi di dati * Evoluzione storica delle applicazioni di basi di dati Parte 2. Basi di dati relazionali: Modello e linguaggi. * Il modello relazionale * Algebra e calcolo relazionale * Concetti essenziali di SQL (il linguaggio SQL verra' trattato nel dettaglio in sede di laboratorio - si veda il relativo programma di laboratorio specificato sotto). Parte 3. Progettazione di basi di dati. * Progettazione concettuale * Il modello Entità-Relazione (ER) ed Entità-Relazione Esteso (EER) * Progettazione logica: algoritmi di traduzione da modello ER ed EER a modello relazionale * Progettazione fisica: indici. * Normalizzazione: Dipendenze funzionali, prima, seconda e terza forma normale, forma normale di Boyce-Code (BCNF). Algoritmi di normalizzazione. Parte quarta: Introduzione alla tecnologia dei DBMS * Gestione dell transazioni * Tecniche di controllo della concorrenza * Tecniche di recovery per basi di dati Il programma per la parte di laboratorio vertera' infine sui seguenti argomenti: * Il DBMS Postgres * Linguaggio SQL per la realizzazione implementazione, modifica e interrogazione delle basi di dati. Istruzioni di base e istruzioni avanzate. Realizzazione di database tramite il DBMS PostGres. * Tecniche di programmazione per SQL. Trigger e basi di dati attive. Embedded SQL. Programmazione per basi di dati con chiamate di funzioni; JDBC.