Laboratorio di Sistemi Informativi

CLEI triennale. 5 CFU.

A.A. 2010/2011

docente: Gianluca Amato


Descrizione: Questo laboratorio si propone di consolidare le nozioni sulle basi di dati apprese nel corso di Sistemi Informativi tramite l'uso pratico, in laboratorio, di un DBMS relazione: MySQL. Si passerà quindi allo sviluppo di applicazioni costruite su basi di dati e con interfaccia utente basata sul web. Come sistema di sviluppo verrà utilizzato il linguaggio di programmazione PHP, che è tra i più diffusi in questo campo. Il corso si terrà interamente in ambiente GNU/Linux.

Programma: Introduzione a GNU/Linux. Introduzione al database relazionale MySQL. Breve ripasso del linguaggio SQL e caratteristiche peculiari di MySQL. Importazione ed esportazione dei dati da/a MySQL. Gestione degli utenti: comandi GRANT e REVOKE. Funzionalità avanzate di MySQL: gestione dei processi, indici, vincoli di integrità referenziale, tipi di tabelle. Applicazioni client/server: modelli a 2 e 3 livelli. I server web. Il linguaggio PHP. Accesso al server MySQL da PHP con la libreria PDO. Passaggio di parametri agli script PHP e form HTML. Implementazione delle operazioni di lettura, inserimento, modifica e cancellazione dati. Protocollo HTTP, intestazioni e redirezione del browser. Gestione degli utenti da parte delle applicazioni web. Sessioni. Validazione dei dati. Sicurezza: SQL-injection, buffer overflow, cross site scripting. Gestione della concorrenza e blocchi di tabella.

Compiti degli appelli precedenti:

Prerequisiti:

Materiale Didattico:

Sono utili per consultazione anche:

Software utilizzato durante il corso:

Tutte queste applicazioni costituiscono parte integrate della Ubuntu 8.04 (e successive). Qualora si voglia utilizzare un'altra distribuzione, accertarsi che disponga di questi software, o prepararsi a installarli a mano.

Testi di riferimento:

Sebbene il corso non segua direttamente un libro di testo, si consiglia comunque l'utilizzo di

Hugh E. Williams, David Lane
Web Database Applications with PHP & MySQL (2nd edition)
O'Reilly

da leggere parallelamente alle lezioni, per avere una panoramica più ampia e delle spiegazioni alternative ai concetti introdotti durante il corso.  Del libro è disponibile anche una versione italiana:

Hugh E. Williams, David Lane
Applicazioni web database con PHP e MySQL
Tecniche Nuove

Per quanto riguarda la teoria delle basi di dati relazionali, si può utilizzare

P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone
Basi di Dati: modelli e linguaggi di interrogazione (terza edizione)
McGraw-Hill

Modalità d'esame:

L'esame finale consiste in un progetto e in una prova pratica in laboratorio. Per quest'anno accademico, il progetto finale è l'applicazione MyDiary. Gli studenti che hanno seguito nell'anno accademico 2009/10 e che hanno già consegnato il progetto "banca virtuale" (o hanno già iniziato a lavorarci), potranno continuare a far valere il loro progetto fino all'appello del mese di Luglio 2011. Il progetto può essere svolto in gruppi di al massimo 3 persone.

Per poter partecipare ad un appello occorre consegnare il progetto nelle sue tre componenti (relazione, database e applicazione) almeno una settimana prima della data prevista per la prova pratica. Fa eccezione l'appello del 16 Maggio 2011, per il quale è sufficiente consegnare il progetto entro il 12 Maggio. La consegna avviene per posta elettronica, all'indirizzo amato@sci.unich.it. Il progetto viene valutato in trentesimi. È ammesso alla prova pratica chi ha preso un voto superiore o uguale a 16.

La prova pratica si svolge in aula informatica nella data e alle ore previste dal calendario degli esami. Dura tre ore, è strettamente individuale, e consiste nell'apportare una opportuna modifica, richiesta dal docente, al proprio progetto. Durante la prova è possibile utilizzare tutta la documentazione che si desidera, ma non è possibile connettersi a Internet né utilizzare dispositivi elettronici al di fuori dei computer presenti in aula. Prima di presentarsi per la prova pratica, accertarsi di avere a disposizione sia la password per l'accesso ai computer dell'aula informatica (da richiedere eventualmente al GASL), sia la password per l'accesso al server MySQL (da richiedere a me, di persona o tramite posta elettronica). È una buona idea anche installare il proprio progetto in aula informatica e provarlo, in modo da essere sicuri che il giorno della prova pratica tutto funzioni a dovere. La prova pratica verrà valutata in trentesimi.

Il voto finale è ottenuto facendo una media ponderata tra il voto della prova in laboratorio e il voto del progetto, il primo con peso 3/4 e il secondo con peso 1/4. A discrezione del docente, o su richiesta dello studente che ha preso un voto sufficiente, è possibile sostenere una prova orale successiva alla prova pratica.

Chi non fosse soddisfatto del voto conseguito, può ripresentarsi alla prova pratica in laboratorio senza cambiare progetto. Alternativamente, è possibile anche ripresentare un altro progetto, sempre secondo le modalità di cui sopra, ma in tal caso è obbligatorio risostenere la prova pratica in laboratorio.

Valid XHTML 1.0 Strict Valid CSS!