Lezione Successiva

Laboratorio di Sistemi Informativi

Presentazione del Corso

Obiettivo di questo corso di laboratorio è mettere in pratica le nozioni teoriche apprese durante il corso di "Basi di Dati". Mentre quest'ultimo era focalizzato sul concetto di "base di dati" in sè, in questo corso ci concentreremo invece sulle loro applicazioni.  In particolare, ci interesseremo dello 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.

Come "caso di studio", svilupperemo un sistema per la prenotazione online di posti ad uso di una compagnia aerea. Verranno introdotti progressivamente gli strumenti e i linguaggi necessari a portare a compimento tale progetto (che ovviamente non ha nessuna pretesa di essere rispondente alle esigenze di una vera compagnia aerea).

Al cuore di questo sistema  sta una base di dati che tiene traccia di voli, posti, prenotazioni, ecc... Come sistema di gestione per le basi di dati utilizzeremo MySQL.

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

(Data Base Management System): è il software che si occupa della gestione di un database. 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, anche in altri contesti, si chiama architettura client/server.

Architettura Client-Server

SGBD (Sistema di Gestione di Basi di Dati) è la traduzione in italiano di DBMS.

Alcuni esempi di DBMS sono: Oracle, 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. 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 in 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 è il suo principale sviluppatore) è 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.

E infine Apache e PHP

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

Apache è uno dei server web più diffusi al momento, probabilmente 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.


Lezione Successiva