Elenco Lezioni Lezione Successiva

Laboratorio di Sistemi Informativi

Presentazione del corso

Obiettivo di questo laboratorio è mettere in pratica le nozioni teoriche apprese durante il corso di "Basi di Dati" (o "Sistemi Informativi"), integrandole con quanto appreso con il corso di "Tecnologie Web". Quest'ultimo era incentrato sullo sviluppo di pagine web "statiche", ovvero pagine scritte interamente in HTML, e immutabili: ogni volta che una pagina veniva caricata, il browser visualizzava sempre la stessa cosa. In questo corso ci concentreremo invece sullo sviluppo di siti web "dinamici", nei quali le pagine da visualizzare non sono scritte una volta per tutte, ma vengono generate "al volo", quando richieste, prelevando i dati da un DBMS.

Cosa è un database (o base di dati)

Probabilmente il modello relazionale è l'unico modello che avete visto nel corso di Sistemi Informativi, per cui ai vostri occhi i termini database e database relazionale sono praticamente sinonimi. Tuttavia, esistono modelli alternativi, alcuni ormai in disuso (modello gerarchico e modello reticolare), altri invece più nuovi che si stanno facendo strada (modello a oggetti).

Cosa è un DBMS

DBMS (Data Base Management System): è il software che si occupa della gestione di un database. SGBD (Sistema di Gestione di Basi di Dati) è la traduzione in italiano di DBMS. In generale, un DBMS è composto da vari programmi. Nel caso più semplice, possiamo riconoscerne due:

Notare che il programma client e il programma server possono anche risiedere su computer diversi, e comunicare tra di loro tramite la rete. Ovviamente, il database risiede sullo stesso computer dove si trova il server DBMS. Una architettura di questo tipo, che si ritrova anche in tantissimi altri contesti, si chiama architettura client/server.

Architettura Client-Server

Alcuni esempi di DBMS sono: Oracle Database, IBM DB2, Microsoft SQL server, MySQL, Postgres/SQL, Interbase. Microsoft Access, che è un sistema per la gestione di archivi molto diffuso, non è generalmente considerato un vero e proprio DBMS, in quanto non ha la struttura client/server ed è scarsamente efficiente su basi di dati voluminose.

Cosa è MySQL ?

È un DBMS per database relazionali, sviluppato dalla MySQL AB e successivamente acquistato dalla Oracle. Queste le sue caratteristiche:

Per tutti questi motivi, e anche per la sua ampia diffusione, utilizzeremo MySQL come DBMS per il nostro corso.

Al momento, esistono varie versioni di MySQL:

Cosa è Linux ?

Come detto MySQL è disponibile per molti sistemi operativi. Noi lo utilizzeremo in ambiente Linux. Linux è un sistema operativo libero, che ha una notevole diffusione nel mondo dei server, e che lentamente si sta diffondendo nel mondo delle macchine client (da tempo ormai dominate dai prodotti Microsoft).

Linux trae le sue origini dai sistemi operativi della famiglia Unix. Tuttavia il suo nome (oltre a ricordare quello di Linus Torvalds, che è la persona che ne coordina lo sviluppo) è anche l'acronimo di "Linux Is Not UniX", e vuole rappresentare il fatto che mentre i sistemi Unix tradizionali sono sistemi proprietari (ogni costruttore di computer ha il suo) Linux è un sistema operativo aperto, che funziona su molte architetture hardware: PC, Macintosh, Sun, server IBM, etc..

Perché la scelta di Linux?

Dal punto di vista dell'interfaccia grafica, non c'è tantissima differenza tra Windows e Linux. Spiegherò tuttavia, nel corso delle lezioni, alcuni dei punti più importanti che distinguono Linux da Windows.

Firefox, Apache HTTP Server e PHP

Ulteriori "compagni di viaggio", che però vedremo soltanto più avanti, sono Firefox, Apache HTTP server (comunemente chiamato semplicemente Apache) e PHP.

Firefox è un browser, ovvero un programma che è in grado di visulizzare il contenuto di pagine web e file HTML (in realtà un browser fa tante altre cose, ad esempio esegue programmi Javascript, ma noi utilizzeremo quasi esclusivamente la sua funzione principale). Firefox è il browser più diffuso dopo Internet Explorer, che ovviamente gode della rendita datagli dal monopolio di Windows nel mercato dei sistemi operativi. Firefox è multi-piattaforma, gira su sistemi Windows, Mac, Linux e altri. In realtà, non sfrutteremo nessuna caratteristica peculiare di Firefox, quindi un qualunque browser può andare bene per i nostri scopi.

Apache è uno dei server web più diffusi al momento, se non il più diffuso. Un server web è il programma che consente di avere delle pagine HTML nella propria macchina e di renderle disponibili a tutti. Ad esempio, quando vi collegate al sito http://www.unich.it quello che succede è che il browser comunica con il server web che risiede sulla macchina www.unich.it per accedere alle pagine HTML che compongono il sito.

PHP è invece un linguaggio di scripting per le pagine HTML. Con PHP è possibile scrivere delle pagine web dinamiche, che vengono generate ogni volta nel momento in cui vegono richieste, possibilmente (ed è quello che faremo noi) prelevando i dati da un database. In un certo senso è simile a JavaScript, ma con una differenza fondamentale: JavaScript è eseguito all'interno del browser, mentre PHP è parte del server web.

Note sull'utilizzo di queste lezioni

Riassumiamo infine alcune convenzioni che utilizzeremo in queste note. Prima di tutto, poiché il mio computer in ufficio è configurato per utilizzare la lingua inglese e non l'italiano, tutti gli screenshot e le istruzioni che troverete nel seguito saranno basate sulla versione inglese. A voi la scelta tra tradurre le istruzioni in italiano o selezionare l'inglese anche nel vostro computer.

Tutte le istruzioni assumono che si utilizzi un computer con una installazione "casalinga" di Ubuntu, in cui server MySQL, server Apache e home directory risiedono nello stesso computer.

Le differenze relative all'utilizzo in aula informatizzata sono evidenziate con un bordo verde spezzettato, come avviene per questo paragrafo.

Elenco Lezioni Lezione Successiva

Valid HTML 4.01 Transitional Valid CSS!