Il corso tratta prima gli aspetti fondamentali dei sistemi di gestione e di progettazione delle moderne basi di dati nell'ambito dello sviluppo e dell'esercizio di sistemi informatici. In particolare esso fa riferimento sia alle basi di dati relazionali ed alle tecniche implementative fondate sul linguaggio SQL che alle basi di dati non relazionali (NoSQL).
Gli obiettivi formativi del corso, declinati secondo i descrittori di Dublino, sono:
Conoscenza e capacità di comprensione
Conoscenze applicate e capacità di comprensione
Autonomia di giudizio
Abilità comunicative
Capacità di apprendimento
Lezioni frontali, esercitazioni, laboratorio e seminari.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Modelli e Linguaggi per Basi di Dati
* Conoscenze minime irrinunciabili per il superamento dell'esame.
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Introduzione alle basi di dati e al modello relazionale: basi di dati e sistemi di gestione delle basi di dati, modelli dei dati, indipendenza dei dati. Il modello relazionale: relazioni, tabelle, attributi. Vincoli di integrità. | Testo 1. Capitoli 1 e 2 |
| 2 | Algebra e calcolo relazionale: operazioni sugli insiemi, ridenominazione, selezione, proiezione, join, interrogazioni. Cenni sul calcolo relazionale | Testo 1. Capitolo 3 |
| 3 | SQL concetti base: definizione dei dati, interrogazioni in SQL (operatori aggregati, raggruppamento, interrogazioni insiemistiche, interrogazioni nidifcate), Istruzioni di modifica dei dati. | Testo 1. Capitolo 4 |
| 4 | L'ambiente MySQL | Dispense del docente |
| 5 | SQL: viste, asserzioni, funzioni, stored procedures | Testo 1. Capitolo 5 |
| 6 | SQL: Trigger, transazioni e controllo degli accessi | Testo 1. Capitolo 5 |
| 7 | Progettazione delle basi di dati: metodologie, Il modello Entità-Relazione, documentazione degli schemi, raccolta dei requisiti, qualità di uno schema concettuale | Testo 1. Capitoli 6 e 7,Dispense del docente |
| 8 | La progettazione logica: analisi delle prestazioni su schemi ER, ristrutturazione di schemi, traduzione nel modello relazionale | Testo 1. Capitolo 8 |
| 9 | Database NoSQL: Proprietà ACIDE vs BASE, Tipi di database NoSQL, Teorema CAP | Dispense del docente |
| 10 | MongoDB: Selettori, Ricerca, Ordinamento, Pipeline, Raggrumenti e Aggregazione | Dispense del docente |
L'esame consiste in due prove da svolgere in laboratorio riguardanti: 1) Implementazione di schema in SQL e implementazione di diverse query e 2) la progettazione di una base di dati, a partire da un insieme di requisiti e dai dati di carico a regime. Ogni prova influirà al 50% sul voto finale del corso.
La prova viene valutata in base alla capacità di analisi del problema e di giustificare le scelte progettuali, alla correttezza dello schema E/R proposto, alla correttezza e completezza dell'implementazione in SQL.