Nome del corso di laurea |
Informatica |
Codice insegnamento |
55083809 |
Curriculum |
Comune a tutti i curricula |
Docente responsabile |
Raffaella Gentilini |
Docenti |
|
Ore |
- 78 Ore - Raffaella Gentilini
|
CFU |
9 |
Regolamento |
Coorte 2023 |
Erogato |
Erogato nel 2025/26 |
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. |
Prerequisiti |
-- |
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. |