DATABASE A - E

Anno accademico 2026/2027 - Docente: FEDERICA PROIETTO SALANITRI

Risultati di apprendimento attesi

Il corso tratta 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 e logico.
  • 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.


Canale di comunicazione del corso: https://elearning.unict.it/

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*. (2h frontali)
  • Database relazionali: (17h frontali + 15h esercitazione)
    • 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'. (4h frontali + 7h esercitazione)
  • Progettazione logica: ristrutturazione degli schemi E/R*, traduzione nel modello relazionale*. (5h frontali + 8h esercitazione)

* 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

Esame

L’esame è composto da due prove riguardanti:

  1. Progettazione di una base di dati, a partire da un insieme di requisiti e dai dati di carico a regime.
  2. Implementazione in MySQL.

Le prove vengono valutate 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.


Qualora si rendesse necessario un ulteriore approfondimento, potrà essere richiesta una verifica orale per chiarire le scelte progettuali e l'implementazione, al fine di accertare le conoscenze effettivamente acquisite.


L’esame si intende superato se si raggiunge la sufficienza su entrambe le parti.


Prove in Itinere


Gli studenti che frequentano il corso possono partecipare alle due prove in itinere, che saranno svolte durante il periodo delle lezioni: 


Prova in itinere SQL

L'accesso alla prova è subordinato alla consegna di:

  • esercitazioni che verranno svolte in aula. La consegna delle esercitazioni deve avvenire alla fine della lezione stessa.
  • homework che verranno assegnati durante la prima metà del corso.

Prova in itinere Progettazione

  • L'accesso alla prova è subordinato alla consegna di esercitazioni che verranno svolte in aula. La consegna delle esercitazioni deve avvenire alla fine della lezione stessa.

Qualora si rendesse necessario un ulteriore approfondimento, potrà essere richiesta una verifica orale per chiarire le scelte progettuali e l'implementazione, al fine di accertare le conoscenze effettivamente acquisite.


Esempi di domande e/o esercizi frequenti

Esempi di compiti saranno forniti durante il corso.