Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open...

16
Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale, e tipicamente ad ogni applicazione non troppo pretenziosa, tipo ufficio, magazzino, ecc.

Transcript of Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open...

Page 1: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Presentazione Data Base

Ovvero: il paradigma LAPM(Linux - Apache - PHP - mySQL)

come supporto Open Source ad un piccolo progetto di Data Base relazionale, e tipicamente ad ogni

applicazione non troppo pretenziosa, tipo ufficio, magazzino, ecc.

Page 2: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Perché un Data Base relazionale

● La prima domanda che ci si può fare è “perché mai mi dovrebbe servire un Data Base relazionale, visto che devo solo gestire delle tabelle di dati?”– Una singola tabella può ormai facilmente essere

gestita da un Foglio elettronico (Excel, o equivalenti: OpenOffice Calc, StarCalc, KSpread, ecc.)

– Il problema si fa decisamente più complicato quando si ha a che fare con più di una tabella incrociata

Page 3: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

L'anagrafica parrocchiale

● Tipicamente ha una tabella “Famiglie”– In essa sono presenti

dati quali l'indirizzo, il telefono, informazioni generali relative alla famiglia

– Questi dati sono presenti una sola volta nel DB

● E una tabella “Persone”– Con nome, cognome, data

di nascita, e altri dati specifici della persona

– Ogni persona si riferisce ad una e una sola Famiglia

– Non è necessario ripetere e gestire per ogni persona dati quali indirizzo, telefono, ecc.

Page 4: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Collegamento fra tabelle

● Insomma, quando si cerca un dato, deve essere possibile fare ricerche sia sui dati personali che su quelli familiari, senza preoccuparsi di dove sono memorizzati

– Il programma deve gestire i puntatori (le frecce), interrogare la tabella giusta, incrociare i dati, ecc.

– Tutto questo deve avvenire in modo trasparente all'utente

Page 5: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Alcuni DB relazionali

● Un DB relazionale è appunto questo “motore” che, interrogato con un linguaggio standard (SQL), tiene conto delle relazioni fra le tabelle

● Alcuni DB relazionali famosi:– DB2 - mySQL– Informix - MS Access– Oracle - MS SQL Server– Ingres - Paradox– Postgres

Page 6: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Perché Open Source

● La seconda domanda è perché usare software Open Source, visto che con un semplice schema in Access si può ottenere quello che serve?– Nel mio caso la scelta è stata favorita da questa

considerazione: i dati che sono inseriti in una anagrafica parrocchiale sono dati “sensibili” secondo la definizione della normativa italiana, e bisogna quindi garantire che «secondo i correnti standard tecnologici» siano protetti

– Io non mi fido della sicurezza di un sistema che può essere compromesso da un qualunque virus, e d'altra parte voglio essere in grado di verificare a quale software affido i dati

Page 7: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

La scelta del software

● Rimane il problema di quale software usare:– Nelle varie suite di Ufficio

non è presente un DB relazionale tipo Access

– D'altra parte i DB Open source esistenti hanno una interfaccia a carattere o, se esiste una interfaccia grafica, è solo abbozzata

● Giungiamo quindi al paradigma LAPM:– Linux come S.O.– Apache come server

Web– PHP come linguaggio

di scripting– mySQL come motore

di DB relazionale

Page 8: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Struttura di un progetto LAPM

Page 9: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Un progetto “aperto”

● Come avrete notato alcuni non secondari vantaggi di questo paradigma sono:– È “aperto” nel senso che poi l'utente può usare il

programma da un qualunque browser, sotto qualunque S.O. : i dati viaggiano in formato HTML!

– È “proteggibile” molto bene e selettivamente, in quanto il DB (dove sono i dati) viene contattato SOLO dallo script PHP, che a sua volta gira SOLO sul server Linux, e Apache è un server Web con uno dei più flessibili sistemi di configurazione accessi

Page 10: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Alcune schermate di esempio:

Page 11: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Una ricerca si fa con un semplice Form

Page 12: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Ecco il risultato:

Page 13: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

è una semplice pagina HTML!

Page 14: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

La pagina è stata creata da uno script PHP che interroga il DB mySQL

● Il file show.php (che viene eseguito sul server) contiene codice HTML, e mescolato insieme il codice PHP che costruisce la stringa da passare a mySQL a seconda dei dati presenti nel Form di ricerca

● Fatti alcuni controlli, e gestite le possibili segnalazioni di errore (contiene anche un po' di test usati durante il debug ;-( perché non ho ancora avuto il tempo di ripulirlo), si occupa di collegare fra loro le tabelle...

● Come notate il PHP permette l'uso di subroutines, che nel mio caso sono raccolte nel file common.php - incluso all'inizio di ogni altro file PHP

Page 15: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,
Page 16: Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,

Controllo accessi

● Attraverso i file di configurazione di Apache si può limitare l'accesso al programma:– Alla sola console del server, fisicamente inteso– Alla sottorete locale (i computer di un ufficio, ad es.)– A chiunque, anche se è in altre parti del Web, ma con

verifica di utente-password, o altri schemi (SSL)● C'è poi il sistema di controllo accessi di mySQL

che può ulteriormente precisare privilegi di accesso alla singola tabella, al singolo utente...