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. Vengono inoltre introdotti elementi di base dell'approccio NO-SQL, evidenziando le diverse tecniche di modellazione dei dati.
Gli obiettivi del modulo sono:
a) Conoscere le tecnologie e le problematiche di gestione delle basi di dati.
b) Sapere progettare, partendo dai requisiti, una base di dati relazionale (e non), dal punto di vista concettuale, logico e fisico.
c) Sapere utilizzare il linguaggio SQL per gestire i dati ed effettuare interrogazioni efficienti.
Il modulo tratta gli strumenti metodologici per la progettazione dei moderni sistemi informativi basati su web (Web Information Systems) che collegano le basi di dati ai processi elaborativi di tipo interattivo. A questo fine, vengono trattati, in un contesto laboratoriale, gli strumenti per lo sviluppo di un sistema che comprenda la parte di back-end (programmazione lato server) e di front-end (programmazione lato client), quest'ultima con particolare riferimento ad applicazioni web "responsive" e progettate secondo criteri di ottimizzazione della user-experience. Si farà cenno anche a tecniche di progettazione e di implementazione più avanzate basate sul pattern architetturale Model-View-Controller (MVC).
Lezioni frontali, esercitazioni, laboratorio e seminari.
Lezioni frontali, esercitazioni, laboratorio e seminari.
Conoscenze di base di programmazione.
Conoscenze di base di programmazione.
Fortemente consigliata.
Fortemente consigliata.
Modelli e Linguaggi per Basi di Dati
Progettazione di Basi di Dati
* Conoscenze minime irrinunciabili per il superamento dell'esame.
Fondamenti di web programming e sviluppo lato server
Progettazione di Web Information System (WIS) e Sviluppo di applicazioni web lato client
Basi di dati non relazionali
* Conoscenze minime irrinunciabili per il superamento dell'esame.
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. High Performance MySQL: Optimization, Backups, and Replication (2011). Di Baron Schwartz e altri, Casa editrice: O'Reilly
Programmazione Web lato server (2011). Di: Della Mea, Di Gaspero, Scagnetto, Casa editrice: APOGEO
Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5 (2014). Di: Robin Nixon, Casa editrice: O'Reilly
Dispense del docente
Tutto il materiale didattico utilizzato a lezione e in laboratorio verrà pubblicato su Studium
Tutto il materiale didattico utilizzato a lezione e in laboratorio verrà pubblicato su Studium.
DATA-BASE | ||
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 delgi 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. Cap. 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 |
9 | La normalizzazione dei dati: Ridondanze, anomalie, dipendenze funzionali, forma normale di Boyce Codd, terza forma normale, verifiche di normalizzazioni | Testo 1. Capitolo 9 |
10 | Cenni sulla progettazione fisica dei database: strutture per l'organizzazione dei file, sequenziali, ad array, ad accesso calcolato, strutture ad albero dinamiche | Testo 1. Capitolo 11 |
11 | Evoluzione delle basi di dati: data base NOSQL e basi di dati multimediali | Dispense del docente |
L'esame consiste in una prova (individuale) da svolgere in laboratorio riguardante la progettazione di una basi di dati, a partire da un insieme di requisiti e dai dati di carico a regime, e la successiva implementazione in MySQL. Il voto sul modulo di database influirà al 50% sul voto totale 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.
Esempi di compiti riguardanti la prova di teoria e di laboratorio sono disponibili su Studium. La prova richiede, dal punto di vista teorico, il passaggio dai requisiti di una base di dati espressi in linguaggio naturale allo sviluppo del relativo modello entità-relazione, con eventuali ristrutturazioni, e lo sviluppo del progetto logico. Le interrogazioni ed operazioni richiesta sulla base di dati dovranno essere implementate in linguaggio SQL.