Laboratorio di Sistemi Informativi

CLEI triennale. 5 CFU.

A.A. 2006/2007

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 Linux.

Programma: Introduzione a 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. 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 tramite i blocchi di tabella. Gestione degli errori personalizzata. Bufferizzazione dell'output. Set di caratteri e codifica delle stringhe.

Esami svolti

Prerequisiti:

Modalità d'esame:

L'esame finale consiste in un progetto e in una prova pratica in laboratorio. Per l'anno accademico 2006/2007 il progetto da presentare è l'archivio delle carte collezionabili di Michele.

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. La consegna avviene per posta elettronica, all'indirizzo amato@sci.unich.it.

La prova pratica si svolge in aula informatizzata 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 informatizzata (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 informatizzata e provarlo, in modo da essere sicuri che il giorno della prova pratica tutto funzioni a dovere.

Il progetto e la prova pratica avranno due voti distinti, espressi in trentesimi. Il voto finale sarà la media ponderata dei voti del progetto e della prova in laboratorio, con i pesi di 1/3 e 2/3 rispettivamente. 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 in laboratorio.

Materiale Didattico:

Sono utili per la consultazione anche:

Software utilizzato durante il corso:

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

Lezioni on-line:

I seguenti file sono utilizzati a più riprese nel corso delle lezioni:

Testi di riferimento:

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

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:

Testi di consultazione:

Per quanto riguarda la teoria delle basi di dati relazionali si consiglia uno dei seguenti:

Per una guida completa di MySQL, si consiglia:

Quest'ultimo è disponibile per il download in vari formati.