DATABASES AND WEB PROGRAMMING M - Z
Modulo DATA-BASE

Anno accademico 2024/2025 - Docente: FEDERICA PROIETTO SALANITRI

Risultati di apprendimento attesi

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 alle basi di dati relazionali ed alle tecniche implementative fondate sul linguaggio SQL.

Gli obiettivi formativi del corso, declinati secondo i descrittori di Dublino, sono:

Conoscenza e capacità di comprensione

  • Comprendere i principali concetti di gestione e progettazione di sistemi di database
  • Comprendere concetti e strumenti per l'interrogazione di basi di dati di natura differente (quindi con dati strutturati e non) e a diverse scale 
  • Comprendere il ruolo e l'impatto che i dati ed una loro corretta modellazione hanno sulle applicazioni software che li utilizzano 

Conoscenze applicate e capacità di comprensione

  • Essere in grado di progettare, partendo dai requisiti, una base di dati relazionale, dal punto di vista concettuale, logico e fisico.
  • Essere in grado di comprendere e utilizzare il linguaggio SQL per gestire i dati ed effettuare interrogazioni efficienti.

Autonomia di giudizio

  • Analizzare i requisiti funzionali e non-funzionali
  • Comprendere le implicazioni di scelte progettuali relative ai tempi di risposta e di implementazione 
  • Comprendere le problematiche prestazionali associate ai diversi DBMS

Abilità comunicative

  • Redigere un documento di specifiche di una database, facendo riferimento agli aspetti di modellazione concettuale e logica
  • Spiegare oralmente le proprie scelte di progetto

Capacità di apprendimento

  • Imparare a utilizzare le tecnologie per lo sviluppo di database e della loro scalabilità
  • Imparare a confrontare schemi di progetto alternativi da diverse prospettive
  • Imparare a riconoscere i principi di progetto alla base di diverse strategie di modellazione e delle tecnologie di sviluppo

Modalità di svolgimento dell'insegnamento

Lezioni frontali, esercitazioni, laboratori e seminari.

Prerequisiti richiesti

Conoscenze di base di programmazione.

Frequenza lezioni

Consigliata. 

Contenuti del corso

Modelli e Linguaggi per Basi di Dati

  • Introduzione ai Database Management Systems (DBMS): Basi di dati e sistemi di gestione delle basi di dati*, modelli dei dati*, indipendenza dei dati*.
  • Database relazionali:
    • Il modello relazionale: relazioni*, tabelle*, attributi*. Vincoli di integrità*. Chiavi*
    • Algebra e calcolo relazionale: operazioni sugli insiemi, ridenominazione, selezione, proiezione, join, interrogazioni. Cenni sul calcolo relazionale
    • Il linguaggio SQL: Definizione dei dati*, interrogazioni in SQL* (operatori aggregati, raggruppamento, interrogazioni insiemistiche, interrogazioni nidificate), Istruzioni di modifica dei dati*.
    • SQL avanzato: Viste*, funzioni*, stored procedures* e asserzioni. Trigger*, transazioni* e controllo degli accessi
    • Un esempio di DMBS relazionale: MySQL.
Progettazione di Basi di Dati Relazionali
  • 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*.

* Conoscenze minime irrinunciabili per il superamento dell'esame.

Testi di riferimento

  1. Basi di dati - 4/ed, Modelli e linguaggi di interrogazione. Di: Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi e Riccardo Torlone, Casa editrice: Mc-Graw-HIll
  2. Appunti e dispense del docente

Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione 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
2Algebra e calcolo relazionale: operazioni sugli insiemi, ridenominazione, selezione, proiezione, join, interrogazioni. Cenni sul calcolo relazionaleTesto 1. Capitolo 3
3SQL concetti base: definizione dei dati, interrogazioni in SQL (operatori aggregati, raggruppamento, interrogazioni insiemistiche, interrogazioni nidifcate), Istruzioni di modifica dei dati.Testo 1. Capitolo 4
4L'ambiente MySQLDispense del docente
5SQL: viste, asserzioni, funzioni, stored proceduresTesto 1. Capitolo 5
6SQL: Trigger, transazioni e controllo degli accessiTesto 1. Capitolo 5
7Progettazione delle basi di dati: metodologie, Il modello Entità-Relazione, documentazione degli schemi, raccolta dei requisiti, qualità di uno schema concettualeTesto 1. Capitoli 6 e 7,Dispense del docente
8La progettazione logica: analisi delle prestazioni su schemi ER, ristrutturazione di schemi, traduzione nel modello relazionaleTesto 1. Capitolo 8

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

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. 


A discrezione del docente, potrà essere richiesta anche una verifica orale per approfondire e chiarire le scelte progettuali e l'implementazione.

Esempi di domande e/o esercizi frequenti

Esempi di compiti saranno forniti durante il corso.