I.T.G. Blaise Pascal BUS-TCS Simonazzi Paolo Classe 5 Informatico

I.T.G. Blaise Pascal BUS-TCS
Simonazzi Paolo
Classe 5 Informatico A
GESTIONE DI UN DATABASE
ATTRAVERSO UN SITO WEB
1
Indice


Introduzione ............................................
Strumenti e linguaggi utilizzati.................................
 Database ............................................
■ SQL ............................................
 Applicazioni web .......................................
■ HTML............................................
■ PHP ............................................
■ JAVASCRIPT ......................................
■



CSS
............................................
Programmi utilizzati .....................................
■
DB Designer .......................................
■
Apache ...........................................
■
PHP
■
MySql
■
PhpMyAdmin
■
EasyPhp (WINDOWS)
■
LAMP (LINUX)
............................................
Piattaforma di hosting Altervista
Obbiettivi

Gestione del DB via Web

Sviluppare un'interfaccia semplice, intuitiva e senza
4
6
6
7
9
9
11
11
12
2
13
13
14
14

problemi di visualizzazione

Sicurezza del contenuti (Login con criptaggio)

Creazione di pagine dinamiche (PHP)

Simulazione di siti esterni che utilizzano il DB

Proporre il progetto al CSI per un'effettiva messa
in atto del progetto


Sviluppo del progetto

Scartare l'interfaccia grafica complicata a favore di stile più chiaro e semplice
visualizzabile anche con cellulari e palmari.

effettuato algoritmo di criptaggio ma non è stato risolto il primo passaggio di valori →
servirebbe flash → utilizzo md5

impossibilità di utilizzare solamente l'array SESSION, rimangono comunque delle
pagine con il GET.

Necessaria abilitazione di JAVASCRIP → controllo → Warning
Allegati
1. Modello E/R

Bibliografia e Webografia
3
Introduzione
Nell'estate tra la 4a e la 5a , quattro chiacchiere tra amici portano a chiederci Perchè non fare un sito
web per la nostra parrocchia? , poi una cosa tira l'altra e perchè non facciamo il sito web anche
della società sportiva parrocchiale?
OK, bellissime idee, peccato che sia io quello che “ne sa“ di Internet, ma l'idea non mi spaventa,
soprattutto perchè intravedo la possibilità di trasformare il sito della società sportiva nella mia
tesina di 5a, se solo riuscissi a fare un bel lavoro che utilizzi anche i database.
Nasce così la mia tesina, un sito web di una società sportiva, con un database dentro al quale non si
sa ancora cosa metterci. Ben presto però le idee arrivano, così che la struttura del database
permetterebbe di gestire tutti i dati relativi alle squadre della società.
Il lavoro sul database, dopo una prima fase proficua, non riceve tutte le attenzioni necessarie, già
occupate dalla creazione di una veste grafica accattivante.
Negli ultimi mesi però mi accorgo dei due problemi che presenta la tesina finora: l'accanimento su
una veste grafica accattivante e soprattutto un database sproporzionato per le esigenze della società;
infatti ormai il database non gestisce più solo le squadre societarie ma anche i campionati, le partite,
i giocatori e le statistiche, rivelando necessarie moltissime ore da spendere per l'aggiornamento dei
dati.
Dovendo cercare i dati da inserire nel database, ho optato per i dati della pallavolo CSI, a cui ho
partecipato quest'anno con un gruppo di amici e amiche. Purtroppo mi sono trovato davanti degli
orribili file in formato PDF, che venivano sostituiti settimanalmente; questo mi ha fatto pensare che
al CSI sarebbe potuto interessare il mio lavoro.
É quindi stato necessario fare un cambiamento in corso d'opera, ovvero dimenticare per un po' il
sito della società sportiva e concentrarsi sul database. La nuova idea è di offrire ad un ente sportivo,
quale il CSI, il progetto e le potenzialità della mia tesina.
Uno dei vantaggi più sostanziali, è che il CSI ha già un addetto alla pubblicazione dei dati su
Internet (i PDF), percui se invece di pubblicare i PDF, effettuasse gli aggiornamenti utilizzando il
mio database, i dati verrebbero aggiornati per tutti quelli che ne usufruiscono.
Infatti la potenzialità migliore del mio lavoro è l'apertura del database verso l'esterno, ovvero
chiunque voglia vi si può connettere e leggere (solo e soltanto leggere), i dati in esso contenuti.
Questi chiunque che vi si possono connettere potrebbero essere altri sviluppatori di siti web,
interessati alla pubblicazione di risultati e classifiche delle proprie squadre; proprio come volevo
fare io all'inizio.
Fine di questo progetto è che non ci sia la necessità di creare piccoli database contenenti i dati
contenuti già in un altro. Ovvero si punta ad eliminare la ridondanza1, non solo tra le tabelle, ma
anche tra i diversi database.
La struttura del database finale risulta per il momento ridimensionata alle sole partite, squadre e
campionati, che verranno gestite via web attraverso un'interfaccia semplice ed intuitiva, puntando
su una grafica chiara che permetta una corretta visualizzazione su tutti i dispositivi utilizzabili, dai
PC fino ai cellulari.
1
La ridondanza è il ripetersi dello stesso dato su diverse tabelle di un database. La ridondanza porta
all'inconsistenza dei dati, in quanto in fase di aggiornamento lo stesso dato verrà aggiornato solo in alcune tabelle,
portando a non poter più riconoscere il dato nuovo rispetto al vecchio.
Strumenti e linguaggi utilizzati
Questo progetto intende evidenziare le potenzialità delle risorse informatiche, che possono
semplificare il lavoro di molti, solo se utilizzate nel migliore dei modi.
In particolare tratta di Database, ovvero di archivi informatici contententi grandi quantità di dati, e
della loro gestione attraverso un sito web. Per gestire un database via web è necessario conoscere
alcuni concetti di base sulle applicazioni web e sui Database.
Database
Un Database è una collezione di informazioni che rappresenta un aspetto del mondo reale, nel
nostro caso rappresenta tutte le informazioni che legano le squadre, le partite e i campionati di un
ente sportivo.
I dati vengono gestiti dal DBMS (Database Managment System), un software che deve:

garantire la manutenzione dei dati (inserimento, modifica e cancellazione);

eliminare problemi come ridondanza ed inconsistenza;

garantire l'integrità dei dati;

permettere la multiutenza;

garantire la sicurezza dei dati.
Tutti i database possono essere rappresentati attraverso il modello concettuale più diffuso, il
modello Entità/Relazioni (E/R), dove vengono individuati:

le entità: gli oggetti che compongono la realtà da visualizzare;

gli attributi: le caratteristiche delle entità individuate;

le relazioni:le correlazioni logiche tra le entità.
A pagina xxx è presente il modello E/R del database utilizzato in questa tesina, con relativa lettura.
A partire da modello E/R un database può essere progettato e realizzato passando al modello logico,
scegliendo tra i vari tipi che si sono sviluppati negli anni (gerarchico, reticolare e relazionale).
Il modello relazionale, utilizzato in questa tesina, rappresenta il database come un insieme di
tabelle, correlate tramite chiavi primarie e secondarie, si rivela il metodo più semplice ed efficace,
perché è più vicino al modo consueto di pensare i dati.
Il modello relazionale si basa su un linguaggio universalmente conosciuto, quello matematico, ed in
particolare sul concetto matematico di relazione, inquadrato nell'ambito della teoria degli insiemi.
PARTITE
PARZIALI
Id_partita
data
ora
80MB001
21/02/2007
15:00
80MB002
14/05/2007
21:00
80MB003
15/04/2007
19:45
id_parziale cod_partita ris_casa
ris_ospiti
1
80MB001
25
17
2
80MB001
25
10
3
80MB001
25
2
4
80MB002
14
25
....
Il modello relazionale è un modello basato sui valori, infatti le associazioni tra le entità sono
descritte nelle tabelle solamente mediante i valori dei campi che compongono le righe delle tabelle.
SQL
SQL, acronimo di Structured Query Language, nasce nel '74 nei laboratori IBM come strumento
per lavorare con database che utilizzano il modello relazionale; dato il suo successo, anche altre
società iniziarono a sviluppare prodotti basati su SQL, che divenne subito lo standard industriale per
i software che utilizzano il modello relazionale.
Essendo un linguaggio dichiarativo, SQL non richiede la stesura di sequenze di operazioni (come ad
es. i Linguaggi imperativi), piuttosto di specificare le proprietà logiche delle informazioni ricercate.
Esso si divide in tre sottoinsiemi:

Data Definition Language (DDL) - permette di creare e cancellare database o di modificarne
la struttura

Data Manipulation Language (DML) - permette di inserire, cancellare, modificare e leggere
i dati

Data Control Language (DCL) - permette di gestire gli utenti e i permessi
Nel nostro caso utilizziamo solo alcune delle moltissime istruzioni SQL, prevalentemente
sfruttiamo INSERT, UPDATE, DELETE e SELECT. Non vengono utilizzate istruzioni dal DDL
perché sono state utilizzate solamente durante la creazione del database, che non potrà essere
modificato via browser da un qualsiasi utente; potrà farlo solo l'amministratore passando
dall'interfaccia grafica di phpMyAdmin.
Esempio: query che ricava i dati del campionato da scrivere nel titolo della pagina
elenco_squadre.php
($_SESSION['campionato'] è una variabile globale di PHP contente l'id_campionato selezionato in
precedenza).
<?php
$query = "SELECT ente_organizzatore, descrizione, anno
FROM categorie, campionato
WHERE id_categoria=cod_categoria
AND id_campionato='{$_SESSION['campionato']}';";
$res = mysql_query($query,$conn)or die( "Errore: " . mysql_error() );
$info = mysql_fetch_row($res);
echo "<h3>:: ELENCO SQUADRE “;
echo “campionato ".$info[0]." ".$info[1]." anno ".$info[2]."</h3>";
?>
Risultato con $_SESSION['campionato']=1
Applicazioni Web




I siti web sono costituiti da diversi linguaggi:
HTML: la struttura portante della pagina, con la quale si descrive i documenti ipertestuali (testo
ed immagini).
PHP (o ASP): linguaggio lato-server; ovvero il suo codice viene letto ed interpretato dal server
prima che la pagina venga inviata al nostro browser.
JAVASCRIPT: linguaggio lato client, il cui codice viene letto dal browser insieme all'HTML,
viene utilizzato prevalentemente per rendere le pagine animate .
CSS: veste grafica sviluppata negli ultimi anni, per sopperire alle carenze della grafiche
dell'HTML puro.
Nel nostro caso utilizzeremo anche il linguaggio SQL, attraverso alcune funzioni di PHP, che ci
permettono di modificare, inserire e cancellare dati dal database.
HTML
Hyper Text Mark-up Language è un linguaggio di formattazione usato per descrivere i documenti
ipertestuali disponibili nel Web. Tutti i siti web presenti su Internet sono costituiti da codice HTML,
il codice che è letto ed elaborato dal browser, il quale genera la pagina come noi la vediamo.
L'HTML non è un linguaggio di programmazione, ma un linguaggio di markup, ossia descrive il
contenuto, testuale e non, di una pagina web.
L'HTML nasce negli anni 80 e la sua sintassi viene stabilita dal World Wide Web Consortium
(W3C) , il quale dopo il 1999 non ha apportato ulteriori modifiche alla sintassi, poiché verrà presto
sostituito dai nuovi linguaggi XHTML e XML.
L'elemento fondamentale dell'HTML sono i tag, ovvero sequenze di caratteri racchiuse tra due
parentesi angolari (< >), che permettono di definire la formattazione del codice. Spesso le
informazioni su cui "agisce" il tag devono essere racchiuse fra un tag di apertura ed uno di chiusura,
quest'ultimo indicato apponendo il carattere slash (/) dopo la parentesi angolare aperta. Per alcuni
tag come <img> e <a> (ovvero inserimento di immagini e link ad altre pagine) è necessario
specificare alcune istruzioni che permettono il funzionamento del tag.
Esempi:
codice
Risultato Finale
tag singolo
<br>
Questo tag serve per mandare a capo
Tag link
<a href=”pippo.html”>Pagina Pippo</a>
Pagina Pippo
Un'ulteriore ed importante caratteristica di HTML è che esso è stato concepito per definire il
contenuto logico e non l'aspetto finale del documento. I dispositivi che possono accedere ad un
documento HTML sono molteplici e non sempre dotati di potenti capacità grafiche. Proprio per
questo gli sviluppatori di HTML hanno optato per un linguaggio che descrivesse dal punto di vista
logico, piuttosto che grafico il contenuto dei documenti.
In che modo arriva la pagina sul mio PC?
I documenti HTML vengono immagazzinati di solito sui dischi rigidi di macchine costantemente
collegate ad Internet. Su queste macchine vi è installato u software detto web server 2, che si occupa
di produrre e inviare i documenti ai browsers che ne fanno richiesta. Spesso il documento HTML
viene generato da un software residente sul server Internet, che può così inviare al browser una
pagina adattata a particolari situazioni. È il caso di software scritti nei linguaggi come ASP, PHP o
Perl. Questi linguaggi permettono la realizzazione delle cosiddette pagine dinamiche.
Esempio di codice HTML con sintassi evidenziata .
Questa funzione viene solitamente eseguita da un
editor di pagine web o da alcuni browser, come ad
esempio Mozilla Firefox
2
Il webserver più diffuso è Apache; di cui parlo a pagina x
PHP
PHP, acronimo ricorsivo di PHP: Hypertext Preprocessor, è un linguaggio di
scripting3 interpretato, con licenza d'uso open surce4, originariamente
concepito per la realizzazione di pagine web dinamiche. Attualmente è
utilizzato principalmente per sviluppare applicazioni web lato server, ma può
essere usato anche per scrivere script a linea di comando.
PHP viene invece elaborato da un motore presente sul server web. Quando andiamo sul nostro
browser e digitiamo un indirizzo, del tipo "http://www.sito.com/maradona.html", il nostro browser
esegue una richiesta al server che ospita il sito "sito.com" e la pagina "maradona.html". Il server si
limita a restituire il file. Se nella pagina esistono degli script javascript, sarà compito del nostro
browser leggerli, interpretarli ed eseguirli mano mano. Se invece richiediamo una pagina contenente
script PHP, il server interpreterà le istruzioni e soltanto dopo restituirà la pagina al nostro computer.
IL codice PHP necessita per essere riconosciuto di essere incluso tra i tag <?php e ?>.
Fino a poco tempo fa si poteva omettere la scritta php nel tag di apertura, ma l'avvento del codice
XHTML, inizializzato con <?xml, non permetterebbe più il riconoscimento di un linguaggio
dall'altro.
JAVASCRIPT
La caratteristica principale di Javascript è quella di essere un linguaggio interpretato. Il codice
quindi non viene compilato bensì c'è un interprete (in questo caso il browser che si sta utilizzando)
che esegue riga per riga quanto scritto nello script. In realtà la logica è la stessa dell'HTML con la
differenza di avere una struttura simile a quella di un linguaggio compilato e quindi la possibilità di
poter eseguire funzionalità complesse vicine anche ai normali linguaggi (creazione di oggetti,
strutture di controllo, cicli, etc.). Presenta quindi tutte le caratteristiche di un normale linguaggio
interpretato e di conseguenza i suoi vantaggi e svantaggi. Da aggiungere il fatto che il codice
JavaScript viene eseguito sul client quindi il server non viene sollecitato. Ciò risulta essere un
vantaggio in quanto con la presenza di script particolarmente complessi il server non verrebbe
sovraccaricato.
Javascript permette di animare le pagine web allo scatenarsi di un evento. Questi eventi, come il
click del mouse o l'entrata e l'uscita del puntatore in una determinata area, vengono sfruttati per
creare menù dinamici che mostrano una lista di opzioni al passaggio del mouse, oppure la
sostituzione di un'immagine con un'altra al passaggio del mouse.
CSS
I fogli di stile a cascata (dall'inglese CSS Cascading Style Sheets), detti semplicemente fogli di stile,
vengono usati per definire la rappresentazione di documenti HTML e XHTML. Le regole per
comporre i fogli di stile sono contenute in un insieme di direttive (Recommendations) emanate a
partire dal 1996 dal W3C. L'introduzione dei fogli di stile si è resa necessaria per separare i
3
linguaggio di scripting, vale a dire liste di comandi di programmi interattivi che invece di venire digitati uno ad
uno su una linea di comando, potevano essere salvati in un file, che diventava così una specie di comando composto che
si poteva eseguire in modalità batch per automatizzare compiti lunghi e ripetitivi.
4
Open surce, indica un software rilasciato con un tipo di licenza per la quale il codice sorgente è lasciato alla
disponibilità di eventuali sviluppatori.
contenuti dalla formattazione e permettere una programmazione più chiara e facile da utilizzare, sia
per gli autori delle pagine HTML che per gli utenti.
Sono delle regole di definizione e modifica dello stile (grafico, visivo, di stampa, vocale, etc) di un
documento HTML e dei suoi componenti strutturali. Consentono in pratica di definire e modificare
lo stile di un font, di uno sfondo, la posizione di un testo, una tabella, un'immagine etc. senza
"sporcare" il codice HTML.
Ristabiliscono, secondo lo spirito originario di HTML, la separazione di significato e presentazione,
della progettazione basata sulla codifica del significato dell'informazione (struttura logica del
documento: titolo, sezioni, paragrafi etc.) dalla progettazione basata sulla presentazione (tipo di
font, dimensioni, colore, posizione testo, etc.)
I CSS sono uno strumento molto potente per il web. I fogli di stile ti permettono di gestire colori,
posizionamento, impaginazione, font (caratteri tipografici) e molto altro ancora in maniera molto
più completa del semplice HTML. Uno dei tanti vantaggi nell'usare i fogli di stile è la possibilità di
usare un solo documento esterno collegato a tutte le pagine. Aggiornando un file, si cambia l'aspetto
di un intero sito.
Programmi utilizzati
Per sviluppare questo progetto mi sono avvalso di diversi programmi che mi hanno permesso di
creare e gestire il sito web e il database. A causa di vari errori che generava il programma EasyPhp
con il sistema operativo Windows 98, ho cominciato ad utilizzare costantemente il sistema
operativo Linux (Ubuntu 8.04), senza perdere il lavoro già svolto, grazie all'utilizzo di software e
linguaggi liberi, ovvero che non richiedono una licenza d'utilizzo.
Php e Apache sono nativi del sistema Linux, DBDesigner è un programma totalmente open-surce e
phpMyAdmin e MySql non risentono del cambiamento del sistema su cui lavorano.
DB Designer 4
DB Designer è un software che permette la creazione del modello
logico relazionale di un database MySQL. É in grado di creare
tabelle, relazioni e attributi, può connettersi con un database locale
e sincronizzare il modello creato con la struttura già esistente.
Attraverso questo programma non vengono gestiti i dati contenuti
nel database, ma solo la sua struttura logica.
DBDesigner 4 è comparabile con prodotti come Oracle's
Designer©, IBM's Rational Rose©, Computer Associates's
ERwin© e theKompany's DataArchitect©, ma con il vantaggio di
essere un progetto Open Source, disponibile per Microsoft Windows© 2k/XP e Linux
KDE/Gnome.
Sito web: http://www.fabforce.net/dbdesigner4/
APACHE
Apache è un server-web, ovvero un software che permette la
visualizzazione in locale di pagine web con contenuti dinamici.
Le pagine HTML possono essere visualizzate ovunque esse
siano salvate e senza che intervenga un server web; le pagine
PHP, invece necessitano del server-web perchè il codice al suo interno deve essere riconosciuto ed
interpretato; è quindi necessario che esse siano salvate nella cartella definita da Apache, che
ricevuta una richiesta dal browser, legge la pagina e se necessario la gira all'interprete PHP con il
quale vengono gestite sia le pagine dinamiche, sia l'accesso ai database. Apache funziona
esattamente come un server-web remoto che troviamo su internet, se vi fossimo connessi ed un
nostro amico conoscesse il nostro indirizzo IP, assegnatoci dal provider, potrebbe visualizzare il
contenuto delle nostre pagine web locali, scrivendo il nostro indirizzo IP nella sua barra degli
indirizzi del suo browser.
Il server web è visualizzabile via browser scrivento localhost ( o 127.0.0.1) nella barra degli
indirizzi del browser. La directory in cui possiamo salvare le nostre pagine php sono: su Windows
c:\Programmi\EasyPhp\www, mentre su Linux, /var/www.
PHP
PHP, ovvero l'interprete Php: si affianca ad Apache ed interpreta le parti di codice php contenute
nelle pagine web. Questo permette di interagire con il database MySql attraverso funzioni
specifiche, oppure creare pagina web dinamiche che cambiano il loro contenuto a seconda delle
variabili definite dal programmatore.
Allegato 1: Modello E/R
Possiamo individuare all'interno di questo modello E/R 3 entità fondamentali, ovvero SQUADRA,
PARTITA e CAMPIONATO.
In seguito alla normalizzazione5, dagli attributi delle 3 entità manzionate nascono nuove entità,
ovvero: CAMPO, RESPONSABILI e SOCIETA dalla tabella SQUADRA; CATEGORIE dalla
tabella CAMPIONATI e PARZIALI dalla tabella PARTITE.
Le tabelle DISPUTA e GIOCA sono entità deboli, ovvero rappresentano le relazioni che
intercorrono tra le tabelle a cui sono collegate.
5
Normalizzazione:processo che porta ad eliminare la ridondanza e l'inconsistenza.