B4914 - BASI DI DATI E APPLICAZIONI WEB

Anno Accademico 2026/2027

  • Docente: Marco Di Felice
  • Crediti formativi: 11
  • SSD: INFO-01/A
  • Lingua di insegnamento: Italiano
  • Moduli: Marco Di Felice (Modulo 1) Angelo Di Iorio (Modulo 2)
  • Modalità didattica: Lezioni in presenza (totalmente o parzialmente) (Modulo 1); Lezioni in presenza (totalmente o parzialmente) (Modulo 2)
  • Campus: Bologna
  • Corso: Laurea in Informatica per il management (cod. 6060)

Conoscenze e abilità da conseguire

Al termine del corso, lo studente: - conosce i principali modelli logici dei dati (relazionale, NoSQL) ed i costrutti del linguaggio SQL; - è in grado di progettare e realizzare una base di dati; - è capace di elaborare un progetto per la realizzazione di applicazioni Web e integrare componenti di basi di dati, front-end e back-end.

Contenuti

L’insegnamento è articolato in due moduli, di seguito denominati Modulo 1 e Modulo 2.

Il Modulo 1 è dedicato ai principi, alle metodologie, ai linguaggi e agli strumenti per la progettazione, modellazione e gestione di basi di dati, con particolare attenzione ai requisiti di scalabilità, persistenza, affidabilità e integrità dei dati.

Il Modulo 2 affronta le architetture, i linguaggi e le piattaforme per la progettazione e lo sviluppo di moderne applicazioni Web, con particolare enfasi sull’integrazione con i sistemi di gestione delle basi di dati trattati nel primo modulo.

Nota: i contenuti del Modulo 2 sono il proseguimento dei temi affrontati nel corso di Tecnologie Web: quest’ultimo tratta i linguaggi e le tecnologie alla base del World Wide Web, mentre il Modulo 2 si concentra sullo sviluppo server-side e client-side. Per una migliore comprensione degli argomenti trattati, si consiglia di seguire anche il corso di Tecnologie Web nello stesso semestre.

 

Di seguito si riporta la descrizione dettagliata dei contenuti dei due moduli.

MODULO 1: BASI DI DATI

Il Modulo 1 prevede due sezioni principali.

A valle di un’introduzione generale sull’area dell’insegnamento (dato, informazione, base di dati, etc), la prima sezione introduce i principi della modellazione e gestione di dati strutturati, basati sul modello relazionale e dei DBMS relazionali. Quindi, vengono illustrate in maniera dettagliata le funzionalità del linguaggio SQL per la creazione, modifica ed interrogazione di basi di dati relazionali (SQL DDL e DML). Inoltre, vengono presentati approcci alternativi al modello relazionale (sistemi NoSQL document-based e column-based), ed alle tecnologie per la gestione dei big data.

La seconda sezione illustra metodologie e strumenti per la progettazione di basi di dati a partire dell'analisi dei requisiti di sistema. Vengono presentate in dettaglio le fasi tradizionalmente legate all'ingegneria del software per la progettazione dei dati, ossia analisi dei requisiti, progettazione concettuale, progettazione logica, progettazione fisica, analisi delle prestazioni dei modelli, tecniche di normalizzazione.

MODULO 2: APPLICAZIONI WEB

Il Modulo 2 affronta linguaggi, architetture e strumenti per la costruzione di applicazioni Web, ed è ulteriormente diviso in due sezioni. La prima riguarda lo sviluppo del backend di un’applicazione Web e si pone l’obiettivo di analizzare la struttura interna delle applicazioni lato server, i meccanismi di lettura delle richieste HTTP ed elaborazione delle risposte, la costruzione e l’uso di API, e la struttura interna delle applicazioni.

La seconda sezione riguarda lo sviluppo del front-end e in particolare l’uso di framework come Vue, React e Angular. L’obiettivo è astrarre le caratteristiche comuni di questi framework, i principi di funzionamento, le componenti principali e la loro integrazione.

Nel modulo saranno inoltre illustrati alcuni stack tecnologici come LAMP e MERN.

 

Segue l'elenco sommario degli argomenti del corso:

Introduzione del corso: informazioni, dati e DBMS

Modelli e Linguaggi per Basi di Dati

  • Il modello relazionale: concetti di base, vincoli di integrita' e chiavi.
  • Algebra relazionale.
  • Esempi di Database Management Systems (DMBS) relazionali: MySQL.
  • Il linguaggio SQL: definizione dei dati, modifica dei dati, interrogazioni, definizione di viste, transazioni.
  • Approcci alternativi al modello relazionale: approcci NoSQL e tecnologie per la gestione i big data (cenni). Esempi di sistemi NoSQL: MongoDB e Cassandra.

    Progettazione di Basi di Dati

  • Progettazione concettuale: il modello E/R, raccolta ed analisi di requisiti, strategie di progettazione concettuale, verifica di qualita'.
  • Progettazione logica: ristrutturazione degli schemi E/R, traduzione nel modello relazionale, analisi di qualità di schemi E/R.
  • Tecniche di normalizzazione: forme normali (Boyce-Codd, terza forma normale), decomposizione in forma normale.
  • Progettazione fisica: indici e strutture dati per la gestione dei dati

Applicazioni Web e Web Information Systems

  • Architettura delle applicazioni Web
  • Sviluppo backend: elaborare richieste e risposte HTTP e interfacciarsi con basi di dati
  • Sviluppo Web full stack: LAMP, MERN e altri stack tecnologici
  • Framework di sviluppo client-side basati su componenti: introduzione a Vue, React e Angular
  • Linguaggi per lo sviluppo Web: da Javascript e TypeScript

Testi/Bibliografia

Il testo di riferimento del Modulo 1 è il seguente:

Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone, "Basi di dati" 5/ed, 2018, ISBN: 9788838694455

Per il Modulo 2 non viene usato un unico testo di riferimento. Il materiale didattico sarà reso disponibile sulla piattaforma Virtuale.

Metodi didattici

Il corso prevede lezioni frontali svolte in aula, mediante l'ausilio di PC e proiettore da parte dei docenti. Le esercitazioni con linguaggi SQL sono svolte in aula mediante l'ausilio del tool CodeRunner integrato nella piattaforma Virtuale.

Modalità di verifica e valutazione dell'apprendimento

La verifica dell'apprendimento prevede una prova scritta (obbligatoria), un progetto (obbligatorio), una prova orale (facoltativa) ed eventuali homework(facoltativi).

  • Prova scritta. La prova scritta ha una durata di 2 ore e 30 minuti, non consente l'utilizzo di libri, appunti o altro materiale didattico ed è subordinata alla preventiva iscrizione tramite il portale AlmaEsami. La prova è costituita da esercizi relativi agli argomenti trattati durante l'insegnamento. La valutazione, espressa in trentesimi, contribuisce per 2/3 alla determinazione del voto finale. L'esito della prova scritta mantiene la propria validità senza limiti temporali.
  • Progetto. Il progetto consiste nella progettazione e realizzazione di un'applicazione Web completa, comprensiva di database, back-end e front-end, e contribuisce per 1/3 alla determinazione del voto finale. Il progetto può essere svolto in gruppi composti da un minimo di due e un massimo di tre studenti. La consegna avviene tramite la piattaforma Virtuale, mentre la discussione si svolge nelle date pubblicate sul portale AlmaEsami. Il progetto deve essere consegnato almeno tre giorni prima della data fissata per la discussione. Le tracce progettuali sono fornite dai docenti attraverso la pagina Virtuale del corso. Nella stessa pagina sono riportate le modalità per la consegna. Anche il progetto mantiene la propria validità senza limiti temporali. La prova scritta e il progetto possono essere sostenuti in qualsiasi ordine.
  • Prova orale. La prova orale è facoltativa e consiste in quesiti teorici ed esercizi sugli argomenti trattati durante il corso. La prova è finalizzata a integrare la valutazione complessiva dello studente.
  • Homework. Durante il corso potranno essere proposti esercizi facoltativi da svolgere individualmente come compiti a casa. La consegna degli homework consente di ottenere un bonus fino a un massimo di un punto, che sarà aggiunto al voto finale.

Il voto finale è calcolato come media pesata della valutazione della prova scritta, del progetto e dell'eventuale prova orale, cui si aggiungono gli eventuali punti bonus conseguiti mediante gli homework.

Istruzioni studenti e studentesse con DSA o disabilità temporanee o permanenti

Si raccomanda di contattare per tempo l’ufficio di Ateneo responsabile (https://site.unibo.it/studenti-con-disabilita-e-dsa/it ); sarà sua cura proporre agli studenti e alle studentesse interessati/e eventuali adattamenti, che dovranno comunque essere sottoposti, con un anticipo di 15 giorni, all’approvazione del/della docente, che ne valuterà l'opportunità anche in relazione agli obiettivi formativi dell’insegnamento.

UTILIZZO DI STRUMENTI DI AI

Per quanto riguarda la verifica dell’apprendimento, sia nella prova scritta, sia nel progetto e negli homework, l’uso dell’IA è vietato. Ogni utilizzo costituisce violazione dell’integrità accademica.

Strumenti a supporto della didattica

Tutto il materiale didattico (slides, codice, esercizi, materiali per il progetto, etc) presentato a lezione viene messo a disposizione dello studente attraverso la piattaforma VIRTUALE.

Orario di ricevimento

Consulta il sito web di Marco Di Felice

Consulta il sito web di Angelo Di Iorio

SDGs

Istruzione di qualità Imprese innovazione e infrastrutture

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.