INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICAIngegneria informaticaAnno accademico 2024/2025
1015330 - DATABASES AND WEB PROGRAMMING M - Z
Modulo 1015331 - DATA-BASE
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
- 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
- Appunti e dispense del docente
Programmazione del corso
| Argomenti | Riferimenti testi |
1 | Introduzione 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 |
2 | Algebra e calcolo relazionale: operazioni sugli insiemi, ridenominazione, selezione, proiezione, join, interrogazioni. Cenni sul calcolo relazionale | Testo 1. Capitolo 3 |
3 | SQL concetti base: definizione dei dati, interrogazioni in SQL (operatori aggregati, raggruppamento, interrogazioni insiemistiche, interrogazioni nidifcate), Istruzioni di modifica dei dati. | Testo 1. Capitolo 4 |
4 | L'ambiente MySQL | Dispense del docente |
5 | SQL: viste, asserzioni, funzioni, stored procedures | Testo 1. Capitolo 5 |
6 | SQL: Trigger, transazioni e controllo degli accessi | Testo 1. Capitolo 5 |
7 | Progettazione delle basi di dati: metodologie, Il modello Entità-Relazione, documentazione degli schemi, raccolta dei requisiti, qualità di uno schema concettuale | Testo 1. Capitoli 6 e 7,Dispense del docente |
8 | La progettazione logica: analisi delle prestazioni su schemi ER, ristrutturazione di schemi, traduzione nel modello relazionale | Testo 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.
English version