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 introdotte le basi di dati NO-SQL, evidenziando le diverse tecniche di modellazione dei dati. Quindi il corso fornisce i primi strumenti metodologici per la progettazione dei sistemi informativi basati su web (Web Information Systems) che collegano le basi di dati ai processi elaborativi di tipo interattivo. A questo fine, vengono trattate le tecniche di progettazione e di implementazione basate sul pattern architetturale Model-View-Controller (MVC) e si forniscono, 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.
Gli obiettivi del corso 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.
d) Conoscere le principali tecnologie per sviluppare applicazioni web lato client e lato server
e) Sapere progettare e sviluppare applicazioni di alto livello che si interfacciano con basi di dati, utilizzando il pattern architetturale MVC
f) Conoscere e sapere applicare criteri di progettazione di un front-end per ottimizzare la user-experience
Conoscenze di base di programmazione.
Fortemente consigliata.
Modelli e Linguaggi per Basi di Dati
Progettazione di Basi di Dati
Fondamenti di web programming e sviluppo lato server
Progettazione di Web Information System (WIS) e Sviluppo di applicazioni web lato client
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
3. Programmazione Web lato server (2011). Di: Della Mea, Di Gaspero, Scagnetto, Casa editrice: APOGEO
4. Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5 (2014). Di: Robin Nixon, Casa editrice: O'Reilly
5. Dispense fornite dai docenti del corso
Tutto il materiale didattico utilizzato a lezione e in laboratorio verrà pubblicato su Studium
L'esame consiste: in una prova (individuale) da svolgere in laboratorio riguardante il linguaggio SQL e conoscenza degli argomenti di teoria, e nello sviluppo di un elaborato progettuale (da svolgere individualmente o in team di max due persone) riguardante lo sviluppo di un Web Information System. L'elaborato (codice e relazione) viene discusso in sede di esame orale e va consegnato tre giorni prima della data concordata per l'esame orale.
Durante il corso verrà organizzata una prova in itinere che se superata sostituirà la prova di teoria e di laboratorio di SQL. Durante le attività di laboratorio verrà richiesta la consegna obbligatoria di alcuni homeworks intermedi che saranno parte integrante del progetto finale.