1 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO Classe 5 Candidato Paride Cirillo Argomento scelto dal candidato Non vedo l’ora 2 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO ABSTRACT L’evoluzione tecnologica e la realizzazione di strumenti informatici sempre più performanti e connessi tra loro ha modificato il modo di vivere la scuola ed i servizi da essa offerti. Su queste basi è stato sviluppato un tool informatico utile a studenti e docenti per determinare gli orari dei singoli docenti e delle differenti classi. 3 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO ABSTRACT (ENGLISH VERSION) The Evolution of Technology and the Development of IT tools always more performing and related between them, they have modified the way to live school and the services offers . On this basics, it was developed a computer tool useful for students and teachers to determine the hours of individual teachers and different classes . 4 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO INDICE 1. INTRODUZIONE PAG. 5 1.1. L’ORARIO SCOLASTICO: IL DIARIO PAG. 6 1.2. DATABASE PER LA GESTIONE DEI DATI PAG. 10 2. SVILUPPO SOFTWARE PAG. 16 2.1. PROGETTAZIONE LOGICA E CONCETTUALE DEL DATABASE (SQL) PAG. 16 2.2. CREAZIONE DELL’INTERFACCIA GRAFICA ( PHP-HTML) PAG. 21 3.2.1 PHP PAG. 21 3.2.2 HTML PAG. 26 2.3. QUERYPERL’ESTRAZIONE DEI DATI PAG. 21 2.4. PUBBLICAZIONE DELL’APPLICATIVO (FILEZILLA) PAG. 34 3. CONCLUSIONE PAG. 37 3.1. PROGETTAZIONE PAG. 37 3.2. SVILUPPI FUTURI PAG.38 5 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO CAPITOLO 1 INTRODUZIONE Oggi sono poco utilizzati i diari cartacei di una volta, qualcuno usa ancora il diario scolastico per scriverci solo i compiti assegnati a scuola. Il diario è stato costretto a fare spazio ai computer, telefonini e via dicendo. La tecnologia avanza, internet è stata una scoperta e ha soppiantato in fretta carta e penna. I ragazzi comunicano molto più di prima, ma lo fanno con i social-network e con i messaggi sui telefonini, forse anche per questo sentono meno l’esigenza di tenere un diario personale. C’è da dire che un diario cartaceo può essere portato ovunque, non ha bisogno della corrente elettrica per funzionare e può essere personalizzato con disegni, collage, biglietti e molto altro ancora. Il formato elettronico, invece, è ideale per scrivere velocemente ma può esaurire la sua autonomia. Per quanto concerne la privacy, entrambi possono essere trovati da qualcun altro se non si prendono le misure adeguate. Tuttavia, sono sempre di meno le persone che scrivono su carta probabilmente è più facile nascondere un file elettronico che piuttosto un diario cartaceo. 6 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO 1.1 IL DIARIO Figura 1 Un diario è una forma narrativa in cui si annotano pensieri, riflessioni, sogni, speranze, segreti e paure. Può essere un racconto reale o di fantasia, ed è sviluppato cronologicamente, con intervalli di tempo regolari, solitamente a giorni. Come diario può essere usato un quaderno, un blocco note, un computer, o si può comprare un vero e proprio diario con tanto di lucchetto. Si può portare il diario sempre con se, in modo da poter scrivere in qualunque momento, oppure scegliere un preciso momento della giornata per poter svuotare la mente. Non tutti tengono un diario, e non sempre lo si tiene in tutti i periodi della vita. Però ci sono dei momenti in cui si ha voglia di mettere per iscritto i propri pensieri, a volte i più intimi, anche se non si è particolarmente dotati per la scrittura. Si può scrivere un diario per descrivere la propria vita o solo un periodo di essa, ma può essere anche la raccolta di annotazioni giornaliere in cui vengono descritti fatti di maggior importanza, o avvenimenti politici, sociali, economici, anche osservazioni di carattere scientifico o altro. Chi scrive un diario di solito lo fa per ricordare ciò che gli sta accadendo in quel periodo. Una persona scrive il diario per se stessa, per raccontare momenti felici e momenti tristi della propria vita, impressioni e sensazioni personali. Il diario non si scrive per gli altri, ovvero lo scopo principale dello scrivere un diario non è la divulgazione, ma 7 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO nasce dall’esigenza di esprimere liberamente i propri pensieri in una forma strettamente privata e ci da la possibilità di rileggere e di rivivere determinati avvenimenti. Il diario è uno strumento ottimo per tenere traccia degli eventi passati e riflettere sul futuro. Puoi fare delle previsioni e accorgerti se si avverano; puoi capire come sei cambiato nel corso del tempo, rileggere le pagine più vecchie e lasciarti andare ai ricordi, magari ridendoci sopra. Solitamente ogni pagina del diario viene datata, si scrive come se il diario stesso fosse il destinatario, oppure come se si parlasse a un amico immaginario. Il linguaggio è di solito semplice. Scrivere sempre in modo sincero. Il diario ascolta sempre, non dimentica mai, non giudica e non rivela a nessuno i segreti che contiene. Perciò non c’è motivo di mentire, si possono scrivere anche le verità più terribili. Esistono varie tipologie di diari: diario di viaggio, diario di bordo, diario intimo, diario per appunti, scolastico, oltre che il libro di ricordanze. Diffusi già nel Medioevo, i libri di ricordanze erano una serie di memorie ("ricordanze" appunto) registrate per sé o per i familiari o per i posteri immediati, scritti generalmente con brani che iniziano ciascuno con "Ricordo che...". Frequenti soprattutto in aree dove l'alfabetizzazione era molto diffusa (come a Firenze), erano a metà strada tra la cronaca e l'autobiografia. Spesso questi libri sono dei preziosi documenti sulla vita e i costumi del tempo. Diario di viaggio: nell'Ottocento si trovano esempi frequenti di diari di viaggio, come quello di Alexis de Tocqueville, che nel suo Viaggio in America 1831-1832 coglie una serie di dati interessanti della realtà americana, mescolando vari punti di vista: quello storico, quello geografico, quello paesaggistico, quello politico. Tra i diari di viaggio ci sono quelli di Stendhal, Émile Zola, Stevenson, il Viaggio in Italia di Goethe e, il Voyage en Orient di Gérard de Nerval. Diario di bordo: 8 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO il diario di bordo ha da sempre aiutato esploratori di ogni specie ad appuntare le varie fasi delle proprie imprese. Si riferisce nel particolare a viaggi effettuati su imbarcazioni e che riportano quanto accade a bordo della stessa. Tra i più famosi diari di bordo, quelli della prima navigazione verso l'America di Cristoforo Colombo (dal 3 agosto 1492 al 15 marzo 1493). Diario di guerra: esso è stato tenuto sia da ufficiali nella propria funzione sia da soldati. Anche il diario di Resistenza e di prigionia dovuta a guerra possono rientrare in questa categoria. Diario intimo: il diario intimo è una sorta d'amico immaginario. Al diario non si nasconde nulla e si possono avere più modi per scrivere questo diario. Si può raccontare della giornata, oppure dei sentimenti che si ha e che si ha paura di dire agli altri. Il diario è comunque un racconto personale, che, può essere scritto in modo fantasioso, oppure si scrive la realtà. Dall'Ottocento in poi, il diario prende sempre di più la forma del cosiddetto journal intime che mostra spesso emozioni, sensazioni e sentimenti allo stato nascente o latente, non ancora ben compresi dalla persona, come nel caso del celebre Diario di Anna Frank, dove la narratrice, immaginando di scrivere lettere a un'amica inesistente, ovvero un alter ego, racconta gli avvenimenti del giorno per esteso, scegliendo la forma della lettera. Nel diario intimo, chi scrive si misura con il suo mondo interiore in una forma di scrittura che assomiglia di più a una presa di coscienza. Diario per appunti: si tratta di un diario che non racconta mai episodi interi, ma fa riferimento a fatti e persone descritti in forma sintetica e lapidaria, Diario scolastico: 9 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO ancora in uso tra gli studenti delle scuole elementari e medie per segnare i compiti da fare a casa, o anche come strumento di comunicazione tra scuola e famiglia, meno tra i ragazzi più grandi che utilizzano i mezzi tecnologici. Alcuni diari sono stati pubblicati e sono divenuti opere letterarie vere e proprie in quanto legati a esperienze emblematiche, a viaggi o intrecciati ad eventi storici o a trasformazioni sociali. Gli esempi sono diversi: Il diario di Anna Frank (1947). Il diario di Etty Hillesum (pubblicato solo nel 1981). La tregua di Primo Levi (1963). Noi, i ragazzi dello zoo di Berlino, (1981). Il diario fittizio di Eva, la prima donna, scritto da Mark Twain (Eve's Diary, 1905). Il giornalino di Gian Burrasca di Vamba (1911). La coscienza di Zeno (1923) di Italo Svevo. 10 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO 1.2 DATABASE PER LA GESTIONE DEI DATI Figura 2 Quando nei campi lavorativi e nelle aziende si è presentato il problema della gestione e della manutenzione degli archivi, sempre più grandi e sempre meno spazio a disposizione per la loro sistemazione, ecco che lo sviluppo dell’informatica ha avuto una grande importanza e così proprio l’informatica ha contribuito tanto nel mondo degli archivi e dei Database. I Database non vanno confusi con le Banche Dati: queste ultime sono informazioni che riguardano un determinato soggetto e che si appoggiano molte volte su basi di dati. Per meglio capire possiamo porre come esempio: la rubrica telefonica. Un utente che ha numerosi contatti con altri soggetti situati in zone diverse e lontane dalla sua città non può certamente ricorrere alle guide ogni volta e non può ricordare tutti i numeri di telefono a memoria; a risolvere questo problema può essere utilizzato un prodotto per Database. I database sono dei grossi raccoglitori dove possiamo inserire i dati organizzati in tabelle. La loro consultazione è effettuata tramite le query, cioè collegamenti che riescono direttamente ad inserire, cancellare o semplicemente accedere al database. In informatica, il termine database, in italiano, base di dati, indica un insieme organizzato di dati, cioè archivi di dati, ben organizzati e ben gestiti sulle memorie di massa dei computer attraverso appositi software. Negli archivi deve essere garantita la resistenza e la protezione, cioè i dati in essi contenuti devono essere significativi ed essere utilizzabili nelle applicazioni dell’azienda; inoltre i dati devono essere protetti per impedire perdite accidentali, la produzione deve anche riguardare gli interventi sui 11 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO dati dovuti ad accessi non autorizzati con operazioni di lettura, modifica o cancellazione. La sicurezza è utile per impedire che il database venga danneggiato da interventi accidentali o non autorizzati. Nello sviluppo della teoria dei database, ci sono tre tipi diversi di modelli per le basi di dati cronologicamente: gerarchico, sviluppato negli anni sessanta, ed ha una struttura ad albero nella quale i nodi rappresentano le entità e gli archi le associazioni; reticolare, sviluppato negli anni sessanta, ed ha una struttura a grafo nella quale i nodi rappresentano i nodi e gli archi rappresentano le associazioni; relazionale, sviluppato tra gli anni settanta e ottanta e rappresentano il database come un insieme di tabelle; ad oggetti, sviluppato negli anni ottanta ed è basato sulla programmazione a oggetti. Attualmente il più usato è quello relazionale, perché è il modello più semplice ed efficace. Esso si basa sul linguaggio matematico e i concetti matematici, in questo modo l’obiettivo più importante è quello di utilizzare un linguaggio conosciuto a livello è universale, quale proprio il linguaggio matematico. Con il database i dati sono a disposizione degli utenti per una consultazione, un inserimento o un aggiornamento, tutto sempre con il permesso di accesso di questi ultimi. Questo è sempre più utile considerato che i dati informatici sono sempre più numerosi. Abbiamo sia il database locale, cioè utilizzabile su un terminale da un solo utente, sia il database ripartito, cioè quando le informazioni sono immagazzinate su terminali remoti e accessibili attraverso la rete. Il vantaggio più grande dell'utilizzo di un database è la possibilità di poter essere consultato da più utenti contemporaneamente. Inoltre un Database è una raccolta di dati organizzati in tabelle e memorizzati permanentemente su un apposito supporto di memorizzazione. Ogni tabella è suddivisa in record, a loro volta suddivisi in campi, contenenti informazioni relative ad un soggetto. I record sono in pratica le righe di una tabella, dette anche “tuple”, ed ogni record è 12 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO composto da più campi; ogni campo contiene un’informazione, detta “attributo”. Ogni attributo ha tre caratteristiche, che sono: formato, ovvero il tipo di valori che assume (carattere, numerico, data/ora); dimensione, ovvero la quantità massima di caratteri o cifre inseribili; infine, la scelta, che indica se l’inserimento di un valore è obbligatorio o meno. Infine, abbiamo altri due parametri importanti: “entità” e “associazione”. Il primo è un soggetto reale che si vuole rappresentare da un punto di vista concettuale, avente un significato anche quando viene considerato in modo isolato, ed ogni elemento appartenente all’entità è detto “istanza”; il secondo è un legame che stabilisce un’interazione tra le entità. In pratica: ogni riga è riconducibile ad un record: nel caso di specie si tratta dei numeri assegnati a ciascun nominativo ogni colonna è identificabile come un campo: che nell'esempio sono nome, cognome, indirizzo prefisso e numero telefonico. Riassumendo un database si può schematizzare così: RECORD CAMPO 1 CAMPO 2 CAMPO 3 CAMPO 4 CAMPO 5 NUMERO NOME COGNOME INDIRIZZO PREFISSO N.TELEF. 1 Mario Rossi Via Gatti, 20 0342 218970 2 Anna Valli Via Roma, 1 0345 659801 Tutte le basi di dati si distinguono in chiuse e aperte. Le chiuse sono quelle che hanno una struttura fissa e assolutamente immutabili per questo non è possibile aggiungere nuovi record e nuovi campi. Quelle aperte invece come sono quelle che hanno una struttura che non presenta alcuna rigidità e perciò è consentito aggiungere record e campi: mentre per i primi l'operazione non comporta difficoltà per i secondi la modifica comporta la totale riconfigurazione del sistema. Con il termine "database" si può indicare contemporaneamente sia l'archivio a livello fisico che l’archivio a livello logico. Il primo (hardware) è il sistema con i supporti di memorizzazione dei dati (es. hard disk). Il secondo è quello relativo alle modalità di 13 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO gestione dei dati, cioè il database management system (DBMS) ovvero quella vasta categoria di applicazioni che consentono la creazione, manipolazione (gestione) ed interrogazione efficiente dei dati. I DBMS svolgono un ruolo fondamentale in numerose applicazioni informatiche, dalla contabilità, la gestione delle risorse umane e la finanza fino a contesti tecnici come la gestione di rete o la telefonia. I primi DBMS furono introdotti alla fine degli anni sessanta dello scorso secolo, e da allora man mano si sono diffusi. Il sistema di gestione delle basi di dati (DBMS), che è un sistema software in grado di gestire grandi collezioni di dati integrate, condivise e persistenti garantendo la loro affidabilità e privatezza. Quindi quando si cita il DBMS si fa riferimento ad un insieme di programmi che consente il trattamento di un archivio, uno strumento attivo per l'aggiornamento la manutenzione e la consultazione. Il suo campo di azione lo mette in comunicazione con l'utente da un lato e con il sistema operativo e l'elaboratore dall'altro. Nel primo caso si serve di appositi linguaggi per Database con i quali un soggetto agisce in modo diretto nel secondo invece utilizza i File System cioè gruppi di programmi per la gestione dei file di dati che però non interagiscono con l'utente. Ogni utente può impartire operazioni utilizzando comandi appartenenti a linguaggi diversi; questi ultimi possono essere di interrogazione come SQL, specifici per le basi di dati ad esempio DBASE oppure quelli più tradizionali come COBOL e PASCAL. La fase procedurale non è complessa; i singoli costrutti vengono acquisiti e posti in collegamento con le tabelle da elaborare tramite un Language Processor da questo poi passano al Database Manager il quale traduce i comandi espressi in modo concettuale a comandi espressi a livello fisico. Gli elementi che entrano in gioco in questo processo sono: l'Hardware ovvero la componente che deve svolgere fisicamente le operazioni; il Sistema Operativo che si occupa di controllare l'elaborazione e l'organizzazione dei dati a livello fisco; la base di dati cioè le tabelle contenenti i dati che devono di fatto essere trattati; 14 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO l'utente iniziale, colui che si preoccupa di programmare e creare cosi delle procedure di gestione della base dati; l'utente finale ovvero colui che utilizzerà i programmi prodotti dal precedente allo scopo di ottenere in maniera semplice e anche veloce i risultati che si aspetta. Quest'ultima componente si trova facilitata nelle sue operazioni grazie anche ai linguaggi di interrogazione; l'utente deve semplicemente impostare un comando adeguato e non redigere un intero programma per ogni applicazione. Il gruppo che rientra nell'utenza finale può essere vastissimo e popolato anche da soggetti poco esperti. I principali sistemi di gestione di database sono i seguenti (DBMS) : Borland Paradox Filemaker IBM DB2 Ingres Interbase Microsoft SQL server Microsoft Access Microsoft FoxPro Oracle Sybase MySQL PostgreSQL mSQL SQL Server 11 La diffusione dei database, e dei relativi sistemi DBMS di gestione, nei sistemi informativi moderni è enorme e capillare essendo un componente base di un sistema informativo attraverso il rispettivo sistema informatico: si pensi a tutte le attività commerciali di gestione di magazzino, gestione clienti, a sistemi di 15 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO immagazzinamento di dati personali o pubblici nella pubblica amministrazione e nelle imprese private (es. banche e aziende), contabilità ecc. Infatti Per la realizzazione del progetto si è utilizzato un server esterno dove all’interno si è voluto creare 7 tabelle(professori, materiaprofessori, materia, giorni, ore, classe, anno), le quali venivano collegate alla tabella principale (orario) con tutti i loro attribuiti. Figura 3 16 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO CAPITOLO 2 SVILUPPO SOFTWARE 2.1 PROGETTAZIONE LOGICA E CONCETTUALE DATABASE(SQL) Figura 4 Il linguaggio SQL (Structured Query Language) che deriva dal linguaggio SEQUEL (Structured English Query Language), è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS) progettato per: leggere, ricercare, inserire, modificare e cancellare dati e operare con funzioni gestionali e amministrative su database. Quando si utilizza un database sul proprio server non si può non conoscere il linguaggio SQL per la creazione dei database relazionali. Donald Chamberlin (ingegnere), fu colui che progettò l’SQL, nel 1974 nei laboratori dell'IBM, in California. Inizialmente nacque col nome di SEQUEL ed era lo strumento per lavorare con database che seguivano il modello relazionale. 17 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO Nelle intenzioni del progettista, esso doveva essere un linguaggio più semplice e compatto dell’algebra relazionale per formulare query su database relazionali. Nel 1975 venne poi sviluppato un prototipo che fu chiamato SEQUEL-XRM; con questo prototipo si eseguirono sperimentazioni che portarono, nel 1977, a una nuova versione del linguaggio, l’attuale SQL. Ancora su di esso fu sviluppato un altro prototipo il System R, che IBM utilizzò per usi interni e per alcuni suoi clienti. Ma, dato il suo successo, anche altre società iniziarono subito a sviluppare prodotti basati su SQL. Nel 1981 IBM iniziò a vendere alcuni prodotti relazionali e nel 1983 rilasciò DB2, il suo DBMS relazionale diffuso ancor oggi. Nel 1986 l'ANSI (istituto americano), lo adottò come standard, nella stessa versione in cui l’aveva sviluppata l’IBM, senza apportare alcuna modifica. Nel 1987 la ISO (organizzazione per le norme tecniche), fece la medesima cosa. La prima versione standard fu denominata SQL/86. Successivamente negli anni furono eseguite altre versioni, quali SQL/89, SQL/92 e SQL/2003. Tale processo di standardizzazione mirava alla creazione di un linguaggio che funzionasse su tutti i DBMS (Data Base Management Systems) relazionali, ma questo obiettivo non fu del tutto raggiunto. Attualmente SQL è lo strumento più diffuso per interrogare e gestire basi di dati mediante l'utilizzo di costrutti di programmazione denominati query. In origine fu pensato come linguaggio di tipo dichiarativo, si è poi evoluto con l'introduzione di costrutti procedurali, istruzioni per il controllo di flusso, tipi di dati definiti dall'utente e varie altre estensioni del linguaggio. A partire dalla definizione dello standard SQL:1999 molte di queste estensioni sono state formalmente adottate come parte integrante di SQL nella sezione SQL/PSM dello standard. Si classificano i comandi SQL in due gruppi: DDL (Data Definition Language – in italiano=linguaggio di definizione dei dati) serve a creare, modificare o eliminare gli oggetti in un database. Sono i comandi DDL a definire la struttura del database e quindi dei dati che contiene, ma non fornisce gli strumenti per modificare i dati stessi per il quale si usa il 18 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO DML (Data Manipulation Language). L'utente deve avere i permessi necessari per agire sulla struttura del database e questi permessi vengono assegnati tramite il DCL (Data Control Language); DML (Data Manipulation Language –in italiano= linguaggio di manipolazione dei dati) fornisce i comandi per inserire, modificare ed eliminare i dati all'interno delle tabelle di un database. La struttura di questi dati deve già essere stata definita tramite il DDL. Inoltre, il permesso di accedere a tali dati deve essere precedentemente assegnato all'utente tramite il DCL. Il linguaggio SQL può essere usato sia come linguaggio autonomo, che essere ospitato in altri linguaggi di programmazione, in modo che si possono sviluppare applicazioni più complesse. L’operazione fondamentale del linguaggio SQL è il mapping rappresentato dalla sequenza: SELECT-FROM-WHERE: SELECT <LISTA_CAMPI> FROM <LISTA_TABELLE> [WHERE <CONDIZIONE>]. Il comando ha la funzione di inserire i dati nelle tabelle. Esso realizza un’interrogazione (o query), della base di dati e restituisce il risultato sotto forma di tabella virtuale che ha come colonne i campi specificati dopo la parola chiave SELECT. INSERT INTO nomeTabella (nomeCampo1, nomeCampo2) VALUES (valore1, valore2); Il comando insert inserisce in tabella una sola riga per volta. Ma è possibile inserire anche più di una riga per volta "in modo automatico" passando all'insert una serie di 19 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO righe (o tuple) risultanti da un comando di select, però tali righe devono essere compatibili con le colonne della tabella su cui si inseriscono i dati. UPDATE nomeTabella SET nomeCampo1=valore1, SET nomeCampo2=valore2 WHERE (condizione); Il comando update ha la triplice funzione di modificare i dati delle tabelle. Il nome di ogni campo che deve essere modificato va dichiarato dopo la parola chiave SET e deve essere seguito dal simbolo " = " (uguale) e dal nuovo valore che deve assumere. È possibile modificare più campi della stessa riga in un unico comando update, separandoli l'uno dall'altro con il simbolo ", " (virgola). Il comando generico aggiorna tutte le righe della tabella. È possibile restringerne il numero applicando la parola chiave aggiuntiva WHERE, che permette di effettuare una selezione qualitativa delle righe imponendo delle condizioni sui dati presenti nelle righe prima dell'aggiornamento. DELETE FROM nomeTabella WHERE (condizione); Il comando delete ha la funzione di cancellare i dati dalle tabelle. Come il comando update anche delete può operare in modo generico cancellando tutte le righe della tabella oppure può identificare le righe da cancellare mediante la parola chiave aggiuntiva WHERE e la condizione ad essa associata. Una Delete priva di clausola Where cancella tutte le righe dalla tabella specificata. Tuttavia, esiste un altro modo per svuotare completamente una tabella: il comando Truncate Table. Alcuni DBMS implementano questo comando (che non è presente nello standard SQL) in modo più veloce rispetto a una Delete, ad esempio cancellando il file dei dati senza leggerlo e ricreandolo vuoto. Generalmente però questo impedisce che vengano restituite alcune informazioni accessorie, come il numero di righe cancellate. 20 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO Una transazione è un insieme di istruzioni che sono strettamente correlate tra loro. Quando per qualsiasi motivo si verifica (un errore interno al DBMS, un errore nelle istruzioni SQL, un errore di sistema) una delle istruzioni non arrivi a compimento, verrà annullata tutta la transazione. Si ha allora una transazione non divisibile: cioè se non viene eseguita interamente, non verrà eseguita affatto. In questo si garantisce l'integrità dei dati. Fino a quando una transazione non ha esito positivo, le modifiche che apporta sono visibili solo per la sessione che ha avviato la transazione. Gli altri utenti potranno accedere solo a una versione più vecchia dei dati, oppure essere messi in attesa fino al termine della transazione. Non tutti i DBMS supportano le transazioni, mentre altri le supportano solo in determinate condizioni (ad esempio in MySQL sono supportate solo per alcuni tipi di tabelle). Inoltre il DBMS può limitare le transazioni ad un sottoinsieme dell'SQL (ad esempio, in MySQL, se si lancia un comando DDL la transazione corrente termina). All’interno di una transazione è possibile stabilire dei savepoint, cioè degli stati intermedi ai quali è possibile ritornare con una ROLLBACK, invece di annullare interamente la transazione. Quando si inizia una transazione si utilizza il comando START TRANSACTION. Per confermare la transazione si utilizza il comando COMMIT. Con esso tutte le modifiche effettuate sui dati in precedenza vengono memorizzate. Per annullare la transazione si utilizza il comando ROLLBACK. Con esso tutte le modifiche effettuate sui dati in precedenza (a partire dall'inizio della transazione) vengono cancellate. 21 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO 2.2 CREAZIONE DELL’INTERFACCIA (PHP-HTML) 2.2.1 PHP Figura 5 Quando si esegue un’operazione sul Web si coinvolge un client ed un server. Un client è un dispositivo (ad esempio un browser) che effettua una richiesta ad un server remoto. Il server remoto attraverso un linguaggio di scripting (come per esempio PHP) interpreta richiesta del client la elabora ed invia una risposta al client. A questo punto il client è in grado di interpretare, a sua volta, la risposta ricevuta e fornirla all’utente. Quindi il “PHP” è un linguaggio per lo scripting server-side, ovvero un linguaggio che risiede in un server. PHP (acronimo di : Hypertext Preprocessor, preprocessore di ipertesti; originariamente acronimo di "Personal Home Page") è un linguaggio di programmazione interpretato, originariamente concepito per la programmazione di pagine web dinamiche. Oggi viene principalmente usato per sviluppare applicazioni web lato server, ma esso può essere utilizzato anche per scrivere script a riga di comando o applicazioni standalone con interfaccia grafica. PHP è un prodotto open source e gratuito, comprensibile dalla maggior parte delle macchine host. Proprio per questi motivi assume sempre più una larga diffusione e va a sostituire il classico HTML. Questo linguaggio nacque nel 1994 ad opera del danese Rasmus Lerdorf, PHP era in 22 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO origine una raccolta di script CGI che permettevano una facile gestione delle pagine personali. Il pacchetto originario fu poi ampliato e riscritto dallo stesso Lerdorf in C, aggiungendo funzionalità quali il supporto al database mSQL. In questo modo il linguaggio cominciò ad avere una certa popolarità tra i progetti open source del web, e venne così notato da due giovani programmatori: Zeev Suraski e Andi Gutmans. I due collaborarono nel 1998 con Lerdorf allo sviluppo della terza versione di PHP riscrivendone il motore che fu battezzato Zend da una contrazione dei loro nomi. Le caratteristiche chiave della versione PHP 3.0, frutto del loro lavoro, erano l’estensibilità, la connettività ai database e il supporto iniziale per il paradigma a oggetti. PHP quindi iniziò ad essere usato in modo ampio. La versione 4 di PHP venne rilasciata nel 2000 e prevedeva notevoli migliorie. Attualmente siamo alla quinta versione, sviluppata da un team di programmatori, che comprende ancora Lerdorf, oltre a Suraski e Gutmans. La popolarità del linguaggio PHP è in costante crescita. Di solito nel Configurazione file stesso si documentano di 3 PHP tipi di di configurazioni: default; configurazione in un ambiente di sviluppo (per esempio con la possibilità di vedere a video gli errori); configurazione in un ambiente di produzione (dove per esempio si deve aprire un file di log per vedere gli errori e non sono mostrati a video). In PHP una stringa si rappresenta in due modi: racchiudendola tra apici doppi (") o singoli ('). Se si usano gli apici doppi vengono interpretati eventuali caratteri speciali (per esempio la tabulazione, "col1\tcol2" o il carattere di fine riga, "riga1\nriga2") e viene eseguita l'interpolazione del contenuto delle variabili, PHP gestisce gli array come delle mappe associative come un elenco di chiavi e associando ad ognuna un certo valore. Gli array in PHP possono perciò essere usati sia come un comune array ma anche come una lista (vettore), una stack, una coda, e molto altro. Ogni elemento dell'array può a sua volta contenere altri array (anche 23 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO multidimensionali) e tutti gli elementi dell'array o dei sotto-array possono essere fra loro dei tipi di variabile più diversa, facendo si che si ha la possibilità di creare strutture dati complesse. Questo fa degli array una vera particolarità del PHP. La dinamicità degli array sta anche nel fatto che i singoli elementi possono essere rimossi tramite unset (). Gli array in PHP (essendo associativi) possono essere attraversati tramite un costrutto speciale chiamato foreach che rende praticabile l'attraversamento ricavando tutte le singole associazioni di chiavi=>valore di un array. Codice d'esempio di un array associativo in cui ad ogni nome di città corrisponde il numero di abitanti. Si mostrerà a video ogni città con il rispettivo numero di abitanti e in seguito si mostrerà la somma di tutti gli abitanti. Molti siti famosi sono scritti in PHP: Wikipedia, Facebook, Flickr, Drupal, ecc., ed è un linguaggio utilizzato per molti sistemi. Per realizzare il php nel progetto si è dovuto creare una pagina dinamica dove all’interno si è scritto il seguente codice per il collegamento con il database: <html> <head> <head> <body> Selezionare il professore: <br> <form method="GET" action="TestProfessori.php"> <select name = "cognome" > <?php $cognome = $_GET["cognome"]; $connection = mysql_connect("localhost","root",""); mysql_select_db("orario_scolastico",$connection); $query = "SELECT cognome from professori order by cognome asc;"; $result = mysql_query($query,$connection); while($row = mysql_fetch_array($result)) { echo "<option value=".$row[cognome].">".$row[cognome]."</option>"."<br>"; } mysql_close($connection); ?> <br> <input type="submit" value="CERCA"><br> <br> 24 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO </form> </body> </html> Ed è stato fatto sia per la ricerca dei professori sia per la ricerca delle classi. Inserendo poi in un pagina php, con il seguente codice, possiamo benissimo riuscire a trovare l’orario di qualsiasi professore presente nella scuola. <head> </head> <body> <?php include("selectPersona.php"); include("QueryOrarioProfessori.php"); $cognome = $_GET["cognome"]; $connection = mysql_connect("localhost","root",""); mysql_select_db("orario_scolastico",$connection); if($cognome!="Tutti") { $query = "SELECT id_professori from professori where cognome='".$cognome."'"; $result = mysql_query($query,$connection); $row = mysql_fetch_array($result); echo " <BODY BGCOLOR=\"#CCFFCC\">"; echo "Orario " . $cognome; if($row["id_professori"]=="") {} else creatabellaprofessori($row["id_professori"]); } else { $query = "SELECT id_professori, cognome from professori where cognome<>'".$cognome."'"; $result = mysql_query($query,$connection); echo " <BODY BGCOLOR=\"#CCFFCC\">"; while($row = mysql_fetch_array($result)) { if($row["id_professori"]=="") { } else echo "Orario " . $row["cognome"]; creatabellaprofessori($row["id_professori"]); } } mysql_close($connection); ?> <br /> <br /> <a href="http://localhost/cometipare/Tesina/OrarioTest.php"> Torna alla pagina </a> iniziale. 25 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO </body> </html> Infine dopo aver realizzato questo codice dei professori, si farà lo stesso per le classe cambiando semplicemente i valori. Così poi il risultato dei professori e delle classi che vengono richiamate attraverso un codice, daranno una pagina simile a questa: <head> </head> <html> <head> <title> Orario Scolastico! </title> <head> <body> <?php include("selectPersona.php"); include("selectClasse.php"); echo " <BODY BGCOLOR=\"#CCFFCC\">"; ?> </body> </html> <body> </body> </html> 26 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO 2.2.2 HTML Figura 6 L'HTML è l’acronimo di Hyper Text Markup Language, che tradotto letteralmente suona come: linguaggio a marcatori per ipertesti, e in informatica è il linguaggio di markup che viene usato per la formattazione e impaginazione di documenti ipertestuali disponibili nel World Wide Web sotto forma di pagine web. Bisogna dire che l'ipertesto è un sistema non lineare di strutturare le informazioni. Mentre un romanzo si legge dalla prima pagina all'ultima secondo un ordine rigidamente sequenziale, l'ipertesto consente di saltare da un documento ad un altro senza che sia necessario seguire un percorso predefinito. Verso la fine degli anni ottanta del XX secolo il fisico Tim Berners-Lee sviluppò l’HTML presso il CERN di Ginevra, (l' Organizzazione europea per la ricerca sul nucleare). Con questo sistema che egli escogitò permise agli scienziati di condividere documenti su internet. L'invenzione dell' HTML consentì l'uso di un modello in base al quale i contenuti memorizzati in un server centrale potessero essere trasferiti e visualizzati in una postazione di lavoro locale per mezzo di un browser. Nel giugno 1993 Barners-Lee ne pubblica una prima definizione formale. Verso il 1994 ed anche nel corso degli anni successivi il linguaggio ha avuto una forte diffusione in seguito ai primi utilizzi commerciali del web. Nel corso degli anni, 27 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO seguendo lo sviluppo di Internet, l’HTML ha subito molte revisioni, ampliamenti e miglioramenti. Il 24 dicembre 1999 viene pubblicata la penultima versione ufficiale, cioè quella che descrive gli aspetti grafici del documento, in un'entità separata dall'HTML, i fogli di stile a cascata. Tale distinzione, tra contenuto e aspetto finale del documento, permette al browser e ai dispositivi differenti di rappresentare gli stessi contenuti in maniera adeguata alle diverse capacità grafiche e dimensioni disponibili. Quindi la principale caratteristica dell’ HTML è che esso è stato concepito per definire il contenuto logico e non l’aspetto finale del documento. Oggi giorno i documenti HTML incorporano molte tecnologie, che aggiungono al documento ipertestuale controlli più sofisticati sulla resa grafica, interazioni dinamiche con l'utente, animazioni interattive e contenuti multimediali. Sono i linguaggi come CSS, JavaScript e Query, XML, JSON, o di altre applicazioni multimediali di animazione vettoriale o di streaming audio o video. Lo scopo del linguaggio HTML è quello di gestire i contenuti associandone o specificandone allo stesso tempo la struttura grafica (layout) all'interno della pagina web da realizzare utilizzando dei tag diversi. Ogni tag (ad esempio <h1> o <p>) specifica un diverso ruolo dei contenuti che esso contrassegna (quindi il tag <h1> definirà un'importanza maggiore del tag <p>). La formattazione consiste nell'inserimento nel testo di marcatori o etichette, detti tag, che descrivono caratteristiche come la funzione, il colore, le dimensioni, la posizione relativa all'interno della pagina. I browser che leggono il codice mostrano all'utente formattazioni predefinite per ogni tag che incontrano (così ad esempio i contenuti marcati con il tag <h1> avranno carattere 18pt e i contenuti marcati da <p> avranno carattere 12pt). Tuttavia questa formattazione è completamente sotto il controllo dell'utente, che può modificarla nelle Impostazioni del suo browser. I documenti HTML sono immagazzinati sui dischi rigidi dei computer o server costantemente collegati e connessi a Internet. Il software specifico (web server) istallato su queste macchine si occupa di produrre e inviare i documenti ai browser degli utenti che ne fanno richiesta usando il protocollo HTTP per il trasferimento dati. 28 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO Quando il documento HTML viene generato totalmente o parzialmente tramite un codice eseguibile residente sul server Internet (elaborazione lato server) che interagisce con altre applicazioni presenti sul server stesso, come per esempio un database, e invia poi al browser il risultato finale, realizzando le cosiddette pagine web dinamiche con cui un utente può compiere operazioni interattive avanzate, si ha il caso di documenti scritti in linguaggi come ASP, PHP, Perl o Java. In altri casi invece alcuni tipi di elaborazione sono operati lato client con linguaggi come Javascript. Il componente principale della sintassi di questo linguaggio è l'elemento, inteso come struttura di base a cui è delegata la funzione di formattare i dati o indicare al browser delle informazioni. Ogni elemento è racchiuso all'interno di marcature dette tag, costituite da una sequenza di caratteri racchiusa tra due parentesi angolari o uncinate (<>), cioè i segni minore e maggiore (Es.: <br />; il tag di questo esempio serve per indicare un ritorno a capo). Il termine tag è utilizzato, nell'espressione tag HTML, sinonimo di elemento HTML, ed indica una struttura in un documento HTML ed è un metodo per ordinare gerarchicamente i contenuti. Gli elementi possono rappresentare intestazioni, paragrafi, collegamenti ipertestuali, elenchi, form, oggetti multimediali incorporati e diverse altre strutture. Quando il tag deve essere applicato a una sezione di testo o di codice, l'ambito di applicazione deve essere delimitato fra un tag di apertura ed uno di chiusura (chiusura esplicita), che coincide col tag di apertura preceduto da una barra (/) dopo la parentesi angolare aperta (Es.: <b>testo testo testo</b>, in questo caso, il testo compreso tra questi due tag verrà visualizzato in grassetto dal browser). Alcuni tag presentano un'applicazione puntuale, come per esempio il tag <img> che serve per inserire un'immagine in un determinato punto della pagina, e in quanto tali non richiedono il tag di chiusura; in questo caso si parla di tag a chiusura implicita. In XHTML, invece, la chiusura implicita è proibita e tutti i tag devono essere sempre chiusi esplicitamente tramite un tag di chiusura o, nel caso dei tag puntuali, usando il carattere '/' alla fine del tag stesso (per esempio <br />). Per questi tag, i browser sono in grado di accettare entrambe le modalità, per motivi di compatibilità. 29 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO Un documento HTML comincia con una dichiarazione del tipo di documento, una breve stringa che indica in quale sintassi e relativa versione esso sia scritto, per esempio HTML 4.0 Strict. Tale informazione è necessaria al browser per identificare le regole di interpretazione e visualizzazione appropriate per lo specifico documento, ed è per questa ragione che la dichiarazione debba precedere il documento vero e proprio. Dopo la dichiarazione del tipo di documento, il documento HTML presenta una struttura ad albero annidato, composta da sezioni delimitate da tag opportuni che al loro interno contengono a loro volta sottosezioni più piccole, sempre delimitate da tag. La struttura più esterna è quella che delimita l'intero documento, eccetto la DTD, ed è compresa tra i tag <html> e </html>. All'interno dei tag <html> lo standard prevede sempre la definizione di due sezioni ben distinte e disposte in sequenza ordinata: la sezione di intestazione o header, delimitata tra i tag <head> e </head>, che contiene informazioni di controllo normalmente non visualizzate dal browser, con l'eccezione di alcuni elementi. la sezione del corpo o body, delimitata tra i tag <body> e </body>, che contiene la parte informativa vera e propria, ossia il testo, le immagini e i collegamenti che costituiscono la parte visualizzata dal browser. Al di sotto di questa suddivisione generale, lo standard non prevede particolari obblighi per quanto riguarda l'ordine e il posizionamento delle ulteriori sottosezioni all'interno dell'header o del body, a parte l'indicazione del rispetto dei corretti annidamenti (le sottosezioni non si devono sovrapporre, ossia ogni sottosezione deve essere chiusa prima di iniziare la sottosezione successiva), lasciando così completa libertà allo sviluppatore o al progettista per quanto riguarda la strutturazione e l'organizzazione successive. I tag utilizzati nella sezione head sono tipicamente di tipo diverso da quelli utilizzati nella sezione body, essendo destinati a scopi differenti. I tag utilizzati nella sezione head normalmente non vengono visualizzati dal browser ma servono come informazioni di controllo e di servizio quali: 30 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO metadata per convogliare informazioni utili ad applicazioni esterne (es. motori di ricerca) o al browser (es. codifica dei caratteri, utile per la visualizzazione di alfabeti non latini) metadata di tipo http-equiv per controllare informazioni aggiuntive nel protocollo HTTP collegamenti verso file di servizio esterni (CSS, script, icone visualizzabili nella barra degli indirizzi del browser) inserimento di script (codice eseguibile) utilizzati dal documento informazioni di stile (CSS locali) il titolo associato alla pagina e visualizzato nella finestra principale del browser Invece nella sezione di body, che racchiude la parte visualizzabile del documento, si utilizzano i tag specifici previsti per la formattazione dei contenuti accessibili all'utente finale, ossia per il controllo di: intestazioni (titoli di capitoli, di paragrafi eccetera) strutture di testo (testo indentato, paragrafi, eccetera) aspetto del testo (grassetto, corsivo, eccetera) elenchi e liste (numerate, generiche, di definizione) tabelle moduli elettronici (campi compilabili dall'utente, campi selezionabili, menu a tendina, pulsanti eccetera) collegamenti ipertestuali e ancore layout generico del documento inserimento di immagini inserimento di contenuti multimediali (audio, video, animazioni eccetera) inserimento di contenuti interattivi (script, applicazioni esterne) Tra quelli elencati sopra, il tag <a> è quello che gioca un ruolo chiave in quanto descrive un collegamento a un altro documento ipertestuale consentendo, con un click del mouse o con un'operazione da tastiera, di abbandonare la pagina o il sito che si sta visualizzando e caricare quella indicata dal link, realizzando così la funzione di navigazione tipica dell'uso di Internet. 31 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO 2.3 QUERY PER L’ESTRAZIONE DEI DATI(SQL) In un database le informazioni sono organizzate in una struttura logica che permette di accedere con facilità ad ogni dato. I database non sono altro che grossi contenitori dove possiamo inserire i dati organizzati in tabelle. La loro manipolazione è effettuata tramite le query, ossia collegamenti che riescono direttamente ad inserire, cancellare o semplicemente Generalmente Query accedere quindi letteralmente è una proprio al definizione significa che è database. associata interrogazione, ai database. richiesta, domanda. La query viene scritta in un linguaggio di interrogazione. Ne esistono decine ed il più famoso prende il nome di SQL. Come tutti i linguaggi, l'SQL ha una sintassi e delle regole. Tramite queste regole è possibile ricercare fra i dati, applicando dei filtri ed ordinando i dati a piacimento. Ogni volta che si cercano delle informazioni su Google si effettuano delle query. Scrivendo delle parole chiave, si dice al motore di ricerca di tradurle in un linguaggio di interrogazione. Queste parole chiave faranno da filtro per tutte le pagine web che Google ha nel suo database, dando quindi un certo numero di risultati. In informatica si utilizza il termine query per indicare l'interrogazione da parte di un utente di un database, strutturato tipicamente secondo il modello relazionale, per compiere determinate operazioni sui dati (selezione, inserimento, cancellazione dati, aggiornamento ecc.). Di solito una query utilizza un linguaggio di interrogazione interpretato rappresentato dallo standard SQL (Structured Query Language) nei suoi sottolinguaggi e Data Query Language e Data Manipulation Language, per renderla più comprensibile al DBMS. L'analisi del risultato della query è oggetto di studio dell'algebra relazionale. Una query di selezione inizia con il comando select che apre una stringa di interrogazione sul database; il simbolo * sta per all ovvero seleziona tutti i campi della tabella; from dichiara l'origine dei dati. Esistono diversi tipi di query: 32 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO Query di selezione: è possibile estrarre i dati (select) da una o più tabelle e visualizzarli in una nuova tabella. Query di accodamento: consente di aggiungere (insert) a tabelle già esistenti un gruppo di record in base a dei criteri specifici. Query di aggiornamento: consente di modificare (update) il valore di uno o più campi in corrispondenza di un intervallo selezionato di records esistenti. Query di eliminazione: consente di cancellare (delete) uno o più record dipendentemente dai criteri inseriti nella creazione della query.ù Query a campi incrociati: permette di "incrociare" i campi di più tabelle in modo tale da ottenere una matrice in cui le righe corrispondono normalmente a campi di tipo descrittivo e riepilogativo, mentre le colonne corrispondono a totali o conteggi. Vengono chiamate anche query pivot, poiché i dati che risultano alla fine della creazione sono simili alle tabelle pivot di un foglio di calcolo. Query di creazione tabella: le righe prodotte da una query possono anche alimentare i record di una nuova tabella mediante una query di creazione tabella, facendo sempre riferimento alla scheda Struttura, gruppo Tipo di query Esistono anche le query di raggruppamento dove si possono raggruppare righe in base ad uno o più campi, in questo caso, ogni gruppo è costituito da righe aventi dati uguali nel campo indicato (detto appunto campo raggruppato) ed occuperà una sola riga dell'elenco prodotto dalla query. Le principali funzioni native di Access da applicare ad ogni raggruppamento sono quelle di somma, conteggio, media, minimo e massimo. Nel progetto si sono utilizzate le seguenti query per l’estrazione delle classe e dei professori con i loro orari assegnati: SELECT classe.sezione, ore.orario, professori.cognome, materia.id_materia FROM ((((((professori INNER JOIN materiaprofessori ON professori.id_professori = materiaprofessori.id_professore) INNER JOIN materia ON materia.id_materia = materiaprofessori.id_materia) 33 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO INNER JOIN orario ON materia.id_materia = orario.id_materia) INNER JOIN ore ON ore.id_ore = orario.id_ore) INNER JOIN classe ON classe.id_classe = orario.id_classe) INNER JOIN giorni ON giorni.id_giorni = orario.id_giorni) WHERE ore.id_ore=" . $id_ore . " and giorni.id_giorni=" . $id_giorni . " and orario.id_materia = materiaprofessori.id_materia AND orario.id_professore = professori.id_professori AND professori.id_professori=". $id_professori ." ORDER BY ore.id_ore, giorni.id_giorni Questa query ci elencherà il nominativo di un professore ed il suo orario. La seconda query, riportata qui sotto: SELECT classe.sezione, ore.orario, professori.cognome, materia.id_materia FROM ((((((professori INNER JOIN materiaprofessori ON professori.id_professori = materiaprofessori.id_professore) INNER JOIN materia ON materia.id_materia = materiaprofessori.id_materia) INNER JOIN orario ON materia.id_materia = orario.id_materia) INNER JOIN ore ON ore.id_ore = orario.id_ore) INNER JOIN classe ON classe.id_classe = orario.id_classe) INNER JOIN giorni ON giorni.id_giorni = orario.id_giorni) WHERE ore.id_ore=" . $id_ore . " and giorni.id_giorni=" . $id_giorni . " and orario.id_materia = materiaprofessori.id_materia AND orario.id_ materia = materia.id_ materia AND materia.id_materia=". $id_ materia." ORDER BY ore.id_ore, giorni.id_giorni Questa query invece ci elencherà la materia presente in ogni classe. 34 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO 2.4 PUBBLICAZIONE DELL’APPLICATIVO(FILEZILLA) Nel 2001 Tim Kosse e due suoi amici crearono il programma Filezilla come un progetto per corsI di informatica. All'inizio, ci fu una discussione sul tipo di licenza da attribuire al progetto: ma successivamente decisero di rilasciarlo come software open source perché sul mercato erano presenti già numerosi client FTP, quindi non presentandolo come prodotto commerciale avrebbero avuto la possibilità di venderne tantissimecopie. FileZilla Client è un software libero multipiattaforma che permette il trasferimento di file in Rete attraverso il protocollo FTP. Il programma è disponibile per GNU/Linux, Microsoft Windows, e Mac OS X. Le principali caratteristiche del programma sono: il site manager, che permette all'utente di creare una lista di siti FTP e di selezionarne uno con un menu a tendina. Una volta selezionato il sito desiderato, il programma si connetterà al sito stesso permettendo l'upload o il download di file; il message log, è presente in alto e contiene la lista di tutti i messaggi inviati ai server dal programma e le relative risposte ricevute dai server FTP; il file and folder view, è l'interfaccia grafica associata al motore di trasferimento dei file. Posto al di sotto del message log e composto da due finestre di egual grandezza, esso permette all'utente di fare il drag and drop ovvero di navigare tra le cartelle del sistema (parte sinistra) e trascinarle dall'altra parte (parte destra) per trasferire i file o le cartelle selezionate sul server desiderato; il transfer queue, posto sulla parte inferiore della schermata, è formato da una luce rossa e una verde e indica la velocità di trasmissione in download o upload. 35 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO Lo scopo principale del Filezilla è quello di consentire l’accesso a server FTP remoti per effettuare il download e l’upload di file via web, sfruttando l’omonimo protocollo di comunicazione su rete. Esso è dotato di un’interfaccia grafica molto semplice da utilizzare ed in grado di mettere in risalto quelli gli elementi essenziali dell’applicazione. L’interfaccia di FileZilla è organizzata a schede, ogni scheda può essere dedicata ad una specifica connessione, grazie alla possibilità di collegarsi contemporaneamente a più server FTP. In ciascuna scheda è possibile inserire le credenziali di accesso, cioè l’indirizzo del server, il nome utente, la password e la porta sulla quale instaurare la comunicazione, oppure scegliere tra un elenco contenente le informazioni relative alle ultime connessioni eseguite. Un apposito sistema per la gestione dei propri siti web permette inoltre di salvare le credenziali di login dei server ai quali si accede più frequentemente, così da averle sempre a disposizione ed avviare una sessione in pochi click. Il trasferimento dei file avviene in maniera semplice perché si riesce a visualizzare contemporaneamente sia il contenuto dell’hard disk locale che quello del server remoto. Tramite drag & drop è possibile trascinare un file da una posizione all’altra, con l’avvio del trasferimento che avviene in maniera istantanea con una velocità di upload e download fortemente legata sia alla banda della propria connessione che ai parametri impostati nell’apposito strumento per la gestione dei limiti di banda presente in FileZilla. Per la configurazione dell’applicazione risulta essere utile il tool per il settaggio automatico dei parametri di connessione, il quale consente di scovare eventuali problemi nella configurazione attuale. FileZilla, grazie alla sua semplicità d’uso ed all’ottimo livello di sicurezza ed affidabilità, è diventato nel tempo uno dei nomi più apprezzati da tutti coloro che accedono frequentemente a server web remoti. 36 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO Ed infatti nel mio progetto poi andato ad inserire ogni file all'interno del software freeware FileZilla, programma dedito al trasferimento FTP di file all'interno di un server/dispositivo munito attivamente di un protocollo FTP o SFTP su cui inviare i file all'interno dell'apposito canale di comunicazione. Figura 7 37 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO CAPITOLO 3 CONCLUSIONE 3.1 PROGETTAZIONE Il progetto è partito dall’idea di avere un portale che ci formula un elenco delle classi e dei professori della scuola con il proprio orario, più facile e veloce da consultare. E’ stato utile per i professori e le classi, così almeno al posto di avere i fogli cartacei, con questo tool informatico possono liberamente vedere i propri orario da qualsiasi posto. Figura 8 38 Istituto Tecnico Industriale DON ORIONE Fano a. s. 2014-2015 ESAME DI STATO 3.2 SVILUPPI FUTURI Il progetto non è ancora completato nelle sue funzionalità basilari, ma si punta al completamento in breve tempo. Si dovrà trovare una soluzione accettabile per la selezione delle classi e dei professori in base agli anni, infatti nel database esiste già la tabella che inoltra gli anni, bisognerebbe soltanto collegare e fare la ricerca in base all’anno. Sarà inoltre necessario modificare l’interfaccia grafica e un template migliore.