Basi di dati
A.A. 2025/2026
Obiettivi formativi
L'insegnamento fornisce le conoscenze e le competenze fondamentali relative alle basi di dati relazionali e ai sistemi per la loro gestione. Il corso offre inoltre le conoscenze e le competenze caratterizzanti relative ai sistemi di basi di dati non relazionali (cosiddetti NoSQL), discutendo le principali differenze con i sistemi relazionali anche mediante esempi e casi di studio. È prevista una parte di teoria dedicata a modelli, linguaggi, metodologie di progettazione, aspetti di sicurezza e transazioni dei sistemi relazionali. È altresì prevista una parte di teoria dedicata a modelli e linguaggi dei sistemi non relazionali. L'insegnamento è completato da una parte di laboratorio dedicata all'uso di strumenti di gestione di basi di dati relazionali e non relazionali.
Risultati apprendimento attesi
Lo studente acquisirà le seguenti conoscenze e competenze pratiche: progettare lo schema concettuale e lo schema relazionale di una base di dati sia partendo da una descrizione informale della realtà applicativa di riferimento sia partendo da un insieme di dati non strutturati; verificare il livello di normalizzazione di uno schema relazionale e comprendere i concetti di dipendenza funzionale e normalizzazione; comprendere e eseguire correttamente query SQL complesse e definirne il piano di esecuzione in termini di operazioni di algebra relazionale; comprendere, progettare e definire le diverse tipologie di indici per ottimizzare l'accesso ai dati; realizzare funzionalità attive di una base di dati relazionale per mezzo di procedure SQL; conoscere le principali tipologie di modelli non relazionali, conoscere le principali differenze fra modelli e sistemi relazionali e non relazionali; comprendere e eseguire query sugli specifici sistemi di basi di dati non relazionali presentati durante il corso.
Periodo: Secondo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Secondo semestre
Programma
L'insegnamento prevede una parte di teoria e una parte di laboratorio.
I temi trattati nella parte di teoria sono:
- Concetti e architettura di un sistema di basi di dati
- Modello relazionale e relativi vincoli
- Algebra relazionale
- SQL (Structured Query Language)
- Modellazione dei dati, modello ER e nozioni di progettazione
- Progettazione logica
- Normalizzazione di schemi relazionali
- Organizzazione fisica dei dati e indici
- Sicurezza e controllo dell'accesso
- Transazioni (concetti generali)
- Introduzione ai sistemi NoSQL
- Sistemi NoSQL di tipo documentale
- Il modello dei dati di MongoDB
- Interrogazioni semplici in MongoDB
- Il framework di aggregazione di MongoDB
I temi trattati nella parte di laboratorio:
- Progettazione concettuale
- Il DBMS PostgreSQL
- Creazione, manipolazione e dump di schemi
- Gestione degli accessi (firewall), utenze e ruoli
- Linguaggio procedurale (PLpgSQL)
- MongoDB
I temi trattati nella parte di teoria sono:
- Concetti e architettura di un sistema di basi di dati
- Modello relazionale e relativi vincoli
- Algebra relazionale
- SQL (Structured Query Language)
- Modellazione dei dati, modello ER e nozioni di progettazione
- Progettazione logica
- Normalizzazione di schemi relazionali
- Organizzazione fisica dei dati e indici
- Sicurezza e controllo dell'accesso
- Transazioni (concetti generali)
- Introduzione ai sistemi NoSQL
- Sistemi NoSQL di tipo documentale
- Il modello dei dati di MongoDB
- Interrogazioni semplici in MongoDB
- Il framework di aggregazione di MongoDB
I temi trattati nella parte di laboratorio:
- Progettazione concettuale
- Il DBMS PostgreSQL
- Creazione, manipolazione e dump di schemi
- Gestione degli accessi (firewall), utenze e ruoli
- Linguaggio procedurale (PLpgSQL)
- MongoDB
Prerequisiti
Principi di programmazione procedurale
Metodi didattici
La parte di teoria si svolge mediante lezioni frontali. Sono previste sessioni di esercitazione nelle quali gli studenti svolgono esercizi che sono poi corretti e commentati in aula. La parte di laboratorio si compone di lezioni frontali, esercizi guidati e attività pratiche.
La frequenza, per quanto non obbligatoria, è fortemente consigliata.
La frequenza, per quanto non obbligatoria, è fortemente consigliata.
Materiale di riferimento
Il materiale di riferimento per studenti frequentanti e non frequentanti è il medesimo.
Per la parte di teoria, si consideri un testo a scelta tra:
- R. Elmasri, S.B. Navathe, Sistemi di basi di dati - Fondamenti e Complementi (7 ed.), Pearson, 2018.
Capitoli: 1, 2, 3 (escluso 3.8), 4 (fino a 4.5 compreso), 5, 6 (escluso 6.6), 7, 8, 9, 10, 15, 18 (fino a 18.3 incluso), 22
- P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di dati (VI ed.), McGraw-Hill, 2023.
Capitoli: 1, 2, 3 (solo 3.1), 4, 5, 6 (escluso 6.4), 7, 8, 9, 11
Per la parte di laboratorio, si considerino i manuali online degli strumenti utilizzati:
- PostgreSQL (https://www.postgresql.org/docs/manuals/)
- MongoDB (https://www.mongodb.com/docs/manual/)
Ulteriore materiale integrativo viene reso disponibile sul sito web dell'insegnamento (piattaforma Ariel) durante lo svolgimento del corso.
Per la parte di teoria, si consideri un testo a scelta tra:
- R. Elmasri, S.B. Navathe, Sistemi di basi di dati - Fondamenti e Complementi (7 ed.), Pearson, 2018.
Capitoli: 1, 2, 3 (escluso 3.8), 4 (fino a 4.5 compreso), 5, 6 (escluso 6.6), 7, 8, 9, 10, 15, 18 (fino a 18.3 incluso), 22
- P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di dati (VI ed.), McGraw-Hill, 2023.
Capitoli: 1, 2, 3 (solo 3.1), 4, 5, 6 (escluso 6.4), 7, 8, 9, 11
Per la parte di laboratorio, si considerino i manuali online degli strumenti utilizzati:
- PostgreSQL (https://www.postgresql.org/docs/manuals/)
- MongoDB (https://www.mongodb.com/docs/manual/)
Ulteriore materiale integrativo viene reso disponibile sul sito web dell'insegnamento (piattaforma Ariel) durante lo svolgimento del corso.
Modalità di verifica dell’apprendimento e criteri di valutazione
Studenti frequentanti e non frequentanti. L'esame consiste di due prove obbligatorie che riguardano rispettivamente la parte di teoria e la parte di laboratorio. Lo studente può sostenere la prova di teoria e la prova di laboratorio nell'ordine che preferisce. Tra le due prove, non dovrà trascorrere un periodo di tempo superiore ad un anno, pena l'annullamento del voto della prova già sostenuta.
Prova di teoria
Si svolge in forma scritta, verte sull'intero programma della parte di teoria e ha una durata indicativa di novanta minuti. La prova è composta da domande a risposta aperta e chiusa e esercizi. Per poter sostenere la prova è necessario iscriversi ad una delle sessioni d'esame indicate da calendario. La prova di teoria è valutata in trentesimi (voto S) e tiene conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di esercizi, completezza delle risposte, correttezza dei ragionamenti nello svolgimento degli esercizi. Se si consegue un voto almeno pari a 25/30 è facoltà dello studente chiedere di sostenere una discussione orale per migliorare il voto. Se non si sostiene la discussione orale, il voto della prova di teoria è automaticamente confermato. Se si consegue un voto inferiore a 25/30 la discussione orale NON è possibile.
Prova di laboratorio
Si svolge in forma scritta, verte sull'intero programma della parte di laboratorio e ha una durata indicativa di novanta minuti. La prova è composta da esercizi sugli argomenti coperti durante le lezioni del laboratorio.
Per poter sostenere la prova di laboratorio è necessario iscriversi ad una delle sessioni d'esame indicate da calendario. La prova di laboratorio è valutata in trentesimi (voto P) e tiene conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di specifiche concrete, qualità delle soluzioni proposte.
Voto finale
Dopo aver sostenuto la prova di teoria e la prova di laboratorio, lo studente riceve una proposta di voto in trentesimi corrispondente alla media pesata delle due prove sostenute così calcolata: voto=(2S+P)/3. Lo studente ha facoltà di rifiutare la proposta di voto. In questo caso, è facoltà dei docenti permettere allo studente di conservare il voto ricevuto in una delle due prove (teoria o laboratorio).
Prova di teoria
Si svolge in forma scritta, verte sull'intero programma della parte di teoria e ha una durata indicativa di novanta minuti. La prova è composta da domande a risposta aperta e chiusa e esercizi. Per poter sostenere la prova è necessario iscriversi ad una delle sessioni d'esame indicate da calendario. La prova di teoria è valutata in trentesimi (voto S) e tiene conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di esercizi, completezza delle risposte, correttezza dei ragionamenti nello svolgimento degli esercizi. Se si consegue un voto almeno pari a 25/30 è facoltà dello studente chiedere di sostenere una discussione orale per migliorare il voto. Se non si sostiene la discussione orale, il voto della prova di teoria è automaticamente confermato. Se si consegue un voto inferiore a 25/30 la discussione orale NON è possibile.
Prova di laboratorio
Si svolge in forma scritta, verte sull'intero programma della parte di laboratorio e ha una durata indicativa di novanta minuti. La prova è composta da esercizi sugli argomenti coperti durante le lezioni del laboratorio.
Per poter sostenere la prova di laboratorio è necessario iscriversi ad una delle sessioni d'esame indicate da calendario. La prova di laboratorio è valutata in trentesimi (voto P) e tiene conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di specifiche concrete, qualità delle soluzioni proposte.
Voto finale
Dopo aver sostenuto la prova di teoria e la prova di laboratorio, lo studente riceve una proposta di voto in trentesimi corrispondente alla media pesata delle due prove sostenute così calcolata: voto=(2S+P)/3. Lo studente ha facoltà di rifiutare la proposta di voto. In questo caso, è facoltà dei docenti permettere allo studente di conservare il voto ricevuto in una delle due prove (teoria o laboratorio).
INF/01 - INFORMATICA - CFU: 12
Laboratori: 32 ore
Lezioni: 80 ore
Lezioni: 80 ore
Docenti:
Bellandi Valerio, Montanelli Stefano
Docente/i
Ricevimento:
su appuntamento
stanza 7008
Ricevimento:
Su appuntamento da concordare via email
Stanza 7015, Dipartimento di Informatica "Giovanni degli Antoni", Via Celoria 18 - 20133 Milano