Basi di dati e web

A.A. 2026/2027
12
Crediti massimi
96
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'insegnamento fornisce le conoscenze e le competenze fondamentali per la progettazione e gestione di basi di dati relazionali e dei sistemi per la loro gestione. Inoltre, vengono presentate le principali tecniche per la realizzazione di applicazioni Web che sfruttano le informazioni contenute in una base di dati relazionale. L'insegnamento è articolato in lezioni teoriche e di laboratorio. Nelle lezione teoriche vengono presentati i modelli, i linguaggi, e le metodologie di progettazione di basi di dati relazionali, le tecnologie alla base della programmazione Web e alla gestione di informazioni multimediali (quali suono, immagini e video). Le lezioni di laboratorio sono dedicate allo sviluppo di applicazioni Web e all'uso di strumenti di gestione dati.
Risultati apprendimento attesi
Lo studente acquisirà le conoscenze e le competenze pratiche per gestire basi di dati relazionali e sviluppare semplici applicazioni Web. In particolare, progettare lo schema concettuale e logico di una basi di dati partendo da una descrizione del dominio applicativo di riferimento; comprendere ed eseguire interrogazioni SQL e definire il corrispondente piano di esecuzione in termini di operazioni dell'algebra relazionale; conoscere ed applicare le principali tecnologie per lo sviluppo di applicazioni Web.
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
Primo semestre

Programma
L'insegnamento è organizzato in due moduli.

Il primo modulo è dedicato alla teoria delle basi di dati. Verranno presentate le principali tecniche di progettazione ed interrogazione di base di dati relazionali.
Gli argomenti principali trattati sono:
* Introduzione ai sistemi di basi di dati
* Modellazione concettuale mediante il modello Entità-Relazione.
* Generazione nel modello relazionale a partire dal modello Entità-Relazione.
* Algebra relazionale.
* Linguaggio SQL.

Il secondo modulo è dedicato alla programmazione Web.
Gli argomenti principali trattati sono:
* I protocolli e gli standard alla base della programmazione Web (architettura client-server, il protocollo HTTP e il formato JSON).
* I fondamenti del linguaggio JavaScript e le principali tecnologie per lo sviluppo di applicazioni Web moderne.
* Node.js ed Express per la realizzazione di servizi REST e l'accesso a basi di dati relazionali.
* DOM, gestione degli eventi e interazione asincrona con i servizi Web tramite l'API Fetch.
* HTML, CSS e il framework Bootstrap per la realizzazione dell'interfaccia utente.
Prerequisiti
È consigliata la conoscenza delle nozioni fondamentali di programmazione imperativa (variabili, strutture di controllo, funzioni, strutture dati elementari) e dei principali concetti di teoria degli insiemi e algebra di Boole.
Metodi didattici
Per il modulo di basi di dati: Lezioni frontali.

Per il modulo di programmazione Web: lezioni frontali integrate da attività di laboratorio e sviluppo guidato di applicazioni.
Materiale di riferimento
Sito web: https://myariel.unimi.it/course/view.php?id=12105

Libri di riferimento:
* B. Catania, E. Ferrari, G. Guerrini Sistemi di Gestione Dati - Concetti e architetture Città Studi Edizioni
* P. Baralis, A. Belussi, G. Psaila - Basi di Dati. Temi d'esame svolti. - Società editrice ESCULAPIO
* Ulteriore materiale integrativo è disponibile sul sito web dell'insegnamento.
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste in due prove separate per ogni modulo dell'insegnamento. Per il modulo relativo alle basi di dati, è prevista una prova scritta relativa agli argomenti trattati nell'insegnamento tipicamente organizzata in esercizi di tipo applicativo aventi contenuti e difficoltà analoghi a quelli affrontati nelle esercitazioni.
La valutazione, espressa in trentesimi, tiene conto del livello di padronanza degli argomenti, della chiarezza espositiva e della capacità di analizzare e risolvere un problema.

Per il modulo relativo alla programmazione Web, è previsto un progetto che gli studenti in gruppi di al massimo 3 persone devono svolgere nel corso del semestre (o in autonomia per gli studenti non frequentanti). Una volta consegnato il progetto, ogni studente dovrà discutere individualmente il progetto sviluppato, dimostrando di avere padronanza del codice ed essere in grado di applicare modifiche al volo per aggiungere nuove funzionalità. Inoltre, dovrà rispondere a domande sugli argomenti relativi alla programmazione Web. La valutazione, espressa in trentesimi, tiene conto della correttezza funzionale dell'applicazione, della qualità del codice, della corretta progettazione dell'interazione tra applicazione Web e base di dati, nonché della capacità dello studente di comprendere e modificare autonomamente il sistema sviluppato e di esporre in modo appropriato gli argomenti trattati nell'insegnamento.

Le due prove devono essere svolte nel corso dello stesso anno accademico, fatta eccezione per l'ultimo appello, per il quale gli studenti avranno tempo fino alla sessione successiva per concludere l'esame. Qualora lo studente non concluda l'esame con le regole esposte, sarà tenuto a superare nuovamente le prove di entrambi i moduli. La valutazione dell'insegnamento è data dalla media dei voti ottenuti per i due moduli. Gli studenti che completeranno entrambe le prove entro l'appello di febbraio 2027 avranno diritto ad un bonus di 2 punti sulla media dei voti.

Eventuali informazioni aggiuntive sulle modalità di valutazione saranno illustrate durante il corso.
INF/01 - INFORMATICA - CFU: 12
Lezioni: 96 ore
Docente/i
Ricevimento:
Su appuntamento
via Celoria 18, terzo piano