ITIS “N.Baldini” di Ravenna
Classe V A informatica “Abacus”
Margotti Manuel
Lubrano Lorenzo
Marini Guido
BIBLIO
2001
Progetto svolto per l’esame di stato
1999/2000
Biblio 2001 V. 1.2
2
Biblio 2001 V. 1.2
SOMMARIO
 Introduzione
 Conoscenze d’informatica applicate (e glossario)
 Cenni su SQL
 Cenni su Dreamweaver 2
 Struttura del database
 Descrizione delle funzioni svolte dal programma
 Acquisizione dati
 Dati utente
 Dati libro
 Algoritmo di conversione del codice ISBN
 Ricerche
 Su libri
 Su utenti
 Gestione prenotazioni ritardi
 Gestione in rete (Intranet, Internet)
 Protezione dei dati
 Statistiche elaborate
3
Biblio 2001 V. 1.2
INTRODUZIONE
Il progetto che abbiamo svolto in quest’anno scolastico tratta la gestione di
una biblioteca tramite l’ausilio di database, con la possibilità di
prenotazioni tramite Internet.
Il tutto è stato realizzato in linguaggio Borland Delphi 4 e con istruzioni
SQL (Structured Query Language, v.Conoscenze Applicate).
Inoltre, abbiamo costruito due ipertesti di appoggio al programma,
utilizzando Macromedia Dreamweaver 2. Questi ipertesti sono uno in
Italiano e l'altro in Inglese, in modo da consentirne la comprensione ad
una più vasta gamma di utenti, anche non italiani.
La prenotazione quindi, oltre che nel modo tradizionale (cercando di
persona un libro sugli scaffali), può essere fatta anche indirettamente
sfruttando Internet o una rete locale che adotti il protocollo TCP/IP
(Transmission Control Protocol / Internet Protocol, v.Conoscenze
Applicate), ancora prima di aver effettivamente ritirato il libro.
L’accesso all’archivio dati relativo ai libri, è consentito da qualsiasi
stazione collegata alla rete, ma in sola lettura e stampa.
Il programma è stato progettato pensando a tutte le generiche biblioteche,
da quella di piccole dimensioni a quella più fornita, quindi l’unica
limitazione è dovuta alle risorse hardware disponibili; il programma infatti è
snello e semplice da utilizzare, anche grazie ad interfacce user-friendly.
Abbiamo cercato di sviluppare un software originale rispetto a quelli in
commercio, integrandolo con le funzionalità da noi ritenute fondamentali
ma soprattutto caratterizzandone la presentazione grafica.
La realizzazione del progetto d'esame prevede il coinvolgimento di quasi
tutte le materie del corso di Informatica Abacus. La maggior parte delle
operazioni svolte fanno infatti riferimento a nozioni apprese durante l'anno
scolastico in corso, integrate con studi personali su determinati argomenti.
4
Biblio 2001 V. 1.2
CONOSCENZE D’INFORMATICA
APPLICATE
Abbiamo codificato le funzioni di Biblio 2001 in istruzioni SQL, poiché esso
è sia un DDL (DATA DESCRIPTION LANGUAGE) che un DML (DATA
MANIPULATION LANGUAGE), cioè un linguaggio che permette sia di
modificare lo schema del DB che di gestirlo nella sua totalità,
modificandone il contenuto informativo ed elaborandone i dati.
Ogni tabella corrisponde ad una relazione, che rappresenta una ENTITÀ
FORTE, cioè un insieme di oggetti con le stesse caratteristiche, ma
distinguibili internamente dal valore di una chiave primaria, per i CLIENTI
e i LIBRI. La tabella relativa alle PRENOTAZIONI, descrive invece
un’ASSOCIAZIONE, cioè il legame che unisce le due entità già nominate.
La chiave della tabella CLIENTI, serve soprattutto al sistema, appena
viene messo in funzione, per riconoscere i DBA (Data Base Administrator),
cioè gli utenti che hanno libero accesso a tutte le funzioni del software, e
che di solito lo hanno progettato e realizzato.
Una CHIAVE è un attributo o insieme di attributi (ATTRIBUTI PRIMI) che ha
certe caratteristiche:
 si comporta come tale a LIVELLO INTENSIONALE, cioè deve
referenziare sempre univocamente;
 identifica una informazione più complessa (record) di cui è
parte;
 MINIMALITÀ, cioè la chiave è ridotta al minimo sia per la
digitazione che per i tempi di confronto;
 i valori nulli che la costituiscono sono quelli che non conosciamo
o che non ci interessano;
 deve avere un valore informativo, quindi deve essere
conosciuta;
 non è aggiornabile se è di tipo contatore.
Una CHIAVE PRIMARIA inoltre:
 non contiene valori nulli;
 non ammette duplicati;
 nel caso sia composta, e venga privata di uno dei suoi
sottocampi, perde la caratteristica di univocità.
Una RELAZIONE è il sottoinsieme del prodotto cartesiano dei domini dei suoi
attributi, e può definirsi una RELAZIONE BASE se è almeno in 1A FORMA
NORMALE, cioè se i suoi attributi sono semplici.
Un ATTRIBUTO è
strutturato.
SEMPLICE,
se non è né di tipo sequenza né di tipo
5
Biblio 2001 V. 1.2
Invece, una RELAZIONE è VIRTUALE O ANONIMA se non è distinta da un nome
e una chiave (al contrario di quella BASE), non fa parte della base di dati,
ed è il risultato di un’interrogazione o è costruita da noi.
Se effettuiamo un’interrogazione tramite l’algebra relazionale, possiamo
usare gli OPERATORI RELAZIONALI, divisi in OPERATORI PRIMITIVI ( Unione,
 Differenza,  Prodotto cartesiano,  Proiezione,  Selezione, 
Ridenominazione) e DERIVATI, cioè ottenuti dalla combinazione dei
precedenti.
Le tre tabelle sono legate tra loro dal VINCOLO D’INTEGRITÀ REFERENZIALE,
cioè le chiavi esterne della relazione PRENOTAZIONI sono chiavi primarie
delle altre due tabelle. Tale vincolo collabora a garantire il rispetto della
congruenza.
Un LINGUAGGIO PROCEDURALE è un linguaggio attraverso il quale si deve
specificare esattamente la sequenza di azioni da seguire per svolgere una
determinata azione.
Un LINGUAGGIO DICHIARATIVO O NON PROCEDURALE offre la possibilità di
richiedere l’esecuzione di azioni specificando il risultato da ottenere più
che i passi mediante i quali ottenerlo.
Una VISTA LOGICA è una rappresentazione parziale dei dati, secondo criteri
indipendenti dallo schema fisico.
L’uso di Data Base comporta una certa RIDONDANZA, cioè una duplicazione
di dati e di strutture indice atte a migliorare l’efficienza del DBMS, la cui
eliminazione avrebbe un costo eccessivo (n2 banalmente, nlogn con
l’algoritmo migliore, dove n rappresenta il numero di confronti tra record).
Le operazioni accessibili in rete, presuppongono l’uso del protocollo
TCP/IP sia da parte di chi richiede un servizio, sia dalla macchina che lo
fornisce.
Abbiamo usato proprio TCP/IP (Transmission Control Protocol / Internet
Protocol), perché è il protocollo standard “de facto” usato da Internet.
Un PROTOCOLLO è infatti l’insieme di regole formali, che devono essere
rispettate da chi trasmette un messaggio, in modo che chi lo riceve (e usa
lo stesso protocollo) sia in grado di interpretarlo.
È possibile inoltre eseguire degli UPLOAD, che sono in generale, l’aggiunta
di un ipertesto o di un programma applicativo sulla rete mondiale Internet.
Il linguaggio JAVA SCRIPT è un linguaggio di scripting interpretato dal
browser, che usa una sintassi molto simile a quella di Java. Java Script
evita l’utilizzo dei bytecode (files con estensione .CLASS) da compilare in
sede separata dalla JVM (Java Virtual Machine), che serve appunto ad
interpretare i bytecode.
6
Biblio 2001 V. 1.2
Structured Query Language (SQL)
E’ un linguaggio che serve per eseguire operazioni di definizione,
gestione, controllo e reperimento dei dati in un database relazionale.
La sigla SQL è diventata sinonimo di linguaggio standard per la gestione
dei database relazionali, anche se in realtà nasconde una miriade di
prodotti, dalle versioni per mainframe a quelle per personal computer.
SQL è gestore di database relazionali, quindi assolve alle funzioni di Data
Description Language (DDL) e di Data Management Language (DML).
Inoltre può essere usato sia come linguaggio di interrogazione (QL) a sé
stante, di tipo non procedurale, sia come linguaggio ospite (embedded) di
un linguaggio procedurale.
SQL è quindi un linguaggio di tipo dichiarativo che rappresenta un
riferimento fondamentale per la gestione di un database relazionale.
Convenzionalmente, le istruzioni di questo linguaggio sono scritte con
tutte le lettere maiuscole.SQL non è “CASE SENSITIVE”, cioè non
distingue tra lettere minuscole e maiuscole nelle parole chiavi delle
istruzioni e nemmeno nei nomi di tabelle, colonne e altri oggetti. Quando si
tratta di definire il contenuto di una variabile le differenze contano.
I nomi degli oggetti (tabelle e altro) possono essere composti utilizzando
lettere, numeri e il simbolo di sottolineatura; il primo carattere deve essere
una lettera oppure il simbolo di sottolineato.
Le istruzioni SQL possono essere distribuite su più righe, senza una
regola precisa. Si distingue la fine di una istruzione dall'inizio di un'altra
attraverso la presenza di almeno una riga vuota. Alcuni sistemi SQL
solitamente richiedono l'uso di un simbolo di terminazione delle righe, che
è un punto e virgola.
L'SQL standard prevede la possibilità di inserire commenti; per questo si
può usare un doppio trattino (--) seguito dal commento desiderato, fino
alla fine della riga.
I tipi di dati gestibili con il linguaggio SQL sono molti. Fondamentalmente
si possono distinguere tipi contenenti: valori numerici, stringhe e
informazioni data-orario.
7
Biblio 2001 V. 1.2
Macromedia Dreamweaver 2
Dreamweaver è un rivoluzionario editor WYSIWYG che tramite strumenti
abbastanza semplici permette di realizzare applicazioni veramente
professionali.
La peculiarità di Dreamweaver è racchiusa nella facilità di creazione di
sintassi JavaScript (v.Conoscenze Applicate). E' infatti possibile con pochi
click del mouse mettere in movimento oggetti, rendere invisibili layers o
gestire gli eventi dell'utente.
L'interfaccia di Macromedia Dreamweaver 2 risulta molto più simile ad un
programma di grafica che ad un editor.
Attraverso Dreamweaver 2 è possibile gestire elementi con proprietà
esclusive di Microsoft Explorer, oppure di Netscape Navigator e infine
compatibili con entrambi.
Le barre dei pulsanti sono spostabili in qualsiasi parte dello schermo. La
finestra in cui scriviamo la nostra pagina è invece priva di ogni barra o
pulsante ed è ridimensionabile a seconda della risoluzione usata.
Le barre sono tre: "Objects", "Proprieties" e "Launcher".
La prima permette di inserire gli elementi più comuni nelle pagine web
(tabelle, immagini, scripts etc...).
La barra, o per meglio dire finestra, "Proprieties" permette di impostare
tutte le proprietà di ogni elemento inserito nella pagina, evitando così di
ritoccare il codice, operazione spesso necessaria con FrontPage 98.
Inserire, per esempio, una tabella non è semplice e immediato come con
l’editor FrontPage, ma si può ottenere subito quello che si vuole senza
dover aprire varie finestre per impostare le proprietà del tag. Con
Dreamweaver infatti, basta inserire la dimensione della tabella, il numero
di righe e di colonne e il lavoro è completato. Inoltre, al contrario di Front
Page98, permette di modificare documenti HTML precedentemente creati
con altri editor, senza aggiungere strani tag o formattazioni.
8
Biblio 2001 V. 1.2
"Launcher" è una barra con alcuni pulsanti che permettono di accedere ad
alcuni programmi e funzioni incluse in Dreamweaver: "Site", "Library",
"Styles", "Behavior" e "html". Le funzioni più utili sono Site e Html: il primo
è un site manager che può gestire il nostro progetto fino alla pubblicazione
online, il secondo è un editor HTML testuale, indispensabile ai
programmatori più esperti.
Cliccando sul menu "Insert" si possono inserire tutti gli elementi più
comuni, presenti anche nella barra "Objects".
Dal menu "Text" si può scegliere la formattazione e lo stile del vostro
testo.
Per modificare gli elementi inseriti nella pagina si deve usare il menu
"Modify" che, per esempio, nel caso di una tabella, permette di aggiungere
o eliminare righe o colonne.
Attraverso la voce "Preferences" nel menu "Edit" si possono impostare le
proprietà del programma adattandolo alle proprie esigenze.
Il Tracing Layer, una delle innovazioni di spicco del programma, riconosce
il fatto che in molti studi un designer compone la "pagina" in Photoshop, e
poi la passa ad un esperto Web che la ricrea in HTML. Dreamweaver
permette di prendere uno di questi layout in GIF o JPEG, e di piazzarlo
come guida sullo sfondo della finestra del documento. Creata una pagina,
la si salva come template, definendone zone protette e zone editabili. In
combinazione con un controllo di pagina, che dice quando una certa
pagina viene modificata, i template di Dreamweaver danno ai designer la
sicurezza di sapere che gli autori e i redattori del sito possono modificare i
contenuti, senza manomettere inavvertitamente il design della pagina.
Il supporto di Dreamweaver alle tabelle è notevole ma difficile da gestire:
si possono applicare testo e altre formattazioni a righe, colonne o a una
tavola intera; selezionare e formattare celle non contigue ed esportare il
contenuto delle tabelle.
Dreamweaver si avvale anche di tutte le funzioni presentate dalle versioni
4 e successive di Netscape Communicator e Internet Explorer, ma offre
anche retrocompatibilità con le versioni precedenti. Si possono disegnare
pagine con i Layers e poi convertirli in tabelle con un solo comando di
menu. Essendo disponibile sia per Macintosh che per Windows,
Dreamweaver s’impegna a coprire tutte le piattaforme e i browser.
Come tutti i migliori programmi però, anche Dreamweaver ha i propri
difetti. La finestra in cui si scrive per esempio, è più grande di quella del
browser (MsIE e Netscape) e nella creazione di animazioni si ha il rischio
di uscire da tale area. Inoltre, non incorpora un editor HTML puro.
9
Biblio 2001 V. 1.2
STRUTTURA DEL DATABASE
Il programma prevede l’inserimento, la modifica e la cancellazione degli
elementi delle tabelle. Per interfacciare il database con il programma è
stato utilizzato il linguaggio SQL (v. Conoscenze applicate), che ci ha
permesso di realizzare anche gli upload (v. Conoscenze applicate).
Il database contiene tre tabelle:
 TLibri
 TClienti
 Tprenotazioni
ed è stato creato con Microsoft Access 2000.
Ogni tabella ha una propria chiave primaria (v. Conoscenze applicate),
che le mette in relazione tra loro tramite vincoli d’integrità referenziale (v.
Conoscenze applicate), e grazie a questo riferimento l’aggiornamento di
una relazione modifica anche quella associata.
Clienti (Codice cliente, Cognome, Nome, Via, Città, cap, sesso, Numero,
Telefono);
Libri (Codice a barre, Autore, Titolo, genere, Editore, Scaffale, Ripiano,
Riassunto);
Prenota(Codice,
data_di_consegna,
giorni
rimasti,
disponibilità,
codice_cliente, codice a barre, richiedente1-5);
Le informazioni memorizzate nella base di dati sono:
1. Tabella libri:
 Codice a barre ()
 Autore
 Titolo
 Editore
 Genere
 Scaffale
 Ripiano
 Scheda sintetica
10
Biblio 2001 V. 1.2
Questa tabella è accessibile in sola lettura, tranne che per i DBA
(riconosciuti all’avvio) a cui è permessa ogni operazione di lettura/scrittura
su tutte le relazioni. Infatti, sarebbe pericoloso permettere a chiunque
l’eliminazione di dati, o l’inserimento di informazioni non valide (non
corrette o su libri inesistenti).
2. Tabella clienti:
 Codice utente ()
 Nome
 Cognome
 Residenza
 Indirizzo
 Numero civico
 Numero di telefono
 CAP
 Sesso
In base alle norme sulla privacy, l’accesso a questo archivio è stato
consentito ai soli DBA, qualunque sia l’operazione da effettuare
sull’istanza.
3. Tabella prenotazioni:
 Codice ()
 Data di consegna
 Codice utente (*)
 Codice a barre (*)
 Disponibilità
 Lista richiedenti
 Volte libro preso
 Giorni Rimasti
11
Biblio 2001 V. 1.2
La tabella PRENOTAZIONI viene suddivisa anno per anno in più file, in
modo che siano fisicamente distinti dal sistema, i prestiti avvenuti in anni
diversi, ma che allo stesso tempo l’utente continui a considerare l’elenco
di dati come un’entità unica. Raggruppando in questo modo l’elenco delle
prenotazioni, sarà più semplice ed immediato ritrovare una data
prenotazione ed eliminare un’intera annata.
Anch’essa possiede una chiave primaria () come le altre, ma contiene
inoltre due chiavi esterne (*) per poter mettere in relazione l’archivio
CLIENTI e quello dei LIBRI.
In base alla DATA DI CONSEGNA, cioè al giorno in cui comincia il
prestito, ed al numero di richiedenti in lista d’attesa, viene calcolato il
periodo di indisponibilità del libro per ogni cliente che effettua la
prenotazione.
Ad esempio: se la durata massima di un prestito è stata fissata dal gestore
a 15 giorni, ed un libro viene consegnato al primo di quattro prenotanti, si
può prevedere che un quinto richiedente riceverà quel libro al massimo tra
due mesi (60 giorni).
FUNZIONI DEL PROGRAMMA
Ogni volta che il programma viene lanciato, esso richiede il NUMERO
UTENTE, la PASSWORD e la modalità di accesso (LETTORE o
AMMINISTRATORE), in modo da completare il proprio caricamento solo
quando l’utente è stato riconosciuto dal sistema. Dalla combinazione di
queste tre informazioni, il sistema riconosce l’utente, e automaticamente
attiva solo le opzioni permesse.
12
Biblio 2001 V. 1.2
Il software infatti, fa una distinzione tra le funzionalità riservate ai DBA (v.
Conoscenze applicate) che possiedono una PASSWORD particolare, e gli
utenti semplici.
Facciamo ora una panoramica generale di tutte le potenzialità del
programma, cioè di tutti gli strumenti messi a disposizione dei DBA.
Il programma è suddiviso in sottomenù che permettono la gestione, in
lettura e scrittura, di ogni tabella presente nel database.
L’inserimento viene effettuato memorizzando i dati ordinatamente
(secondo i valori della chiave) nelle tabelle, sia in quella degli UTENTI che
in quella dei LIBRI.
Il programma infatti, prevede due tipi di inserimento dati: quello di un
nuovo libro all'interno dell'archivio della biblioteca e quello di un nuovo
utente nell'albo degli iscritti.
In entrambi i tipi di Inserimento sono stati fatti i dovuti controlli sui dati.
Essi devono assicurare che ad ogni attributo della relazione venga
assegnato un valore (not null) e che esso rispetti il formato ed il range
previsti.
Sui dati numerici, i controlli devono garantire che il valore inserito sia
compreso in un determinato range (ad esempio, l'anno di nascita di un
nuovo utente deve essere compreso tra il 1900 e il 2000), e che siano
possibili operazioni di tipo logico su di essi.
13
Biblio 2001 V. 1.2
Sui dati alfanumerici, invece, i controlli riguardano per lo più la lunghezza
massima che devono assumere le varie stringhe (ad esempio, il nome di
un nuovo utente non deve superare i 25 caratteri).
Nei confronti tra stringhe, non è stata fatta distinzione tra lettere maiuscole
e minuscole, perché considerato inutile.
ACQUISIZIONE DEI DATI
DATI UTENTI
L'operazione di inserimento di un nuovo utente è concessa solo ai DBA, i
quali solo dal terminale in cui è presente il programma possono inserire
nuovi utenti ricevendo dal sistema il codice personale univoco del lettore.
Il cliente dovrà inserire questo codice ogni volta che carica il software.
Tramite questo codice, infatti, il sistema è in grado di tenere
costantemente sotto controllo le operazioni di un utente semplice, e di
avvertirlo automaticamente all’avvio del programma, del suo eventuale
ritardo nella restituzione di un libro in possesso, o della disponibilità di uno
precedentemente richiesto.
Per ogni UTENTE vengono memorizzati:











CODICE: 6 caratteri
COGNOME: 25 caratteri
NOME: 25 caratteri
VIA/PIAZZA: 15 caratteri
NUMERO CIVICO: 5 caratteri
CITTA’: 20 caratteri
PROVINCIA: 2 caratteri
TELEFONO:
CAP: 5 caratteri
SESSO: 1 carattere
Password: 8 caratteri
14
Biblio 2001 V. 1.2
I valori del CODICE sono sequenziali e numerici, cioè abbiamo scelto una
chiave di tipo contatore, che memorizza l’ordine cronologico con cui gli
utenti sono diventati clienti della biblioteca. All’avvio del programma, dovrà
essere inserita anche la PASSWORD giusta, che è stata memorizzata nel
file Pswr.utf, tra CODICE, PASSWORD e tipologia dell’utente (LETTORE
o AMMINISTRATORE) c’è una relazione univoca, quindi finchè non sono
tutte tre corrette, il sistema non consente l’accesso ai menù. Non c’è modo
di modificare direttamente la PASSWORD di un utente, quindi deve
essere un DBA a cancellare il record dell’utente (semplice o
amministratore) e ad inserirne uno nuovo. Quando il record di un utente
viene eliminato, i CODICI rimangono invariati, e quindi il successivo
inserimento di un utente, andrà ad assegnare all’utente il primo CODICE
libero.
Il programma non contiene la procedura per la modifica diretta, poiché è
un’operazione poco frequente.
DATI LIBRO
Anche qui, l'operazione di aggiunta di un nuovo libro è permessa soltanto
ai DBA (v. Conoscenze Applicate), in quanto sono loro a dover garantire la
completezza e la correttezza dei dati.
Sul codice a barre è stato effettuato un particolare tipo di controllo, che
riguarda la sua lunghezza: essa deve corrispondere esattamente a 13
cifre.
15
Biblio 2001 V. 1.2
Per ogni LIBRO vengono memorizzati:








CODICE A BARRE: 13 caratteri
AUTORE: 30 caratteri
TITOLO: 50 caratteri
EDITORE: 20 caratteri
SCAFFALE: 5 caratteri
RIPIANO: 2 caratteri
RIASSUNTO: di tipo Memo e non ha limiti di spazio
GENERE: file di Testo, contenente al massimo 50 caratteri per riga
Anche in questa tabella, non è possibile fare una modifica diretta, quindi si
deve ricorrere alla cancellazione del record selezionato, e all’inserimento
di uno nuovo.
16
Biblio 2001 V. 1.2
Algoritmo di conversione del
codice ISBN
Questo algoritmo è abbastanza complesso e consiste in 6 fasi:
1. concatena alla stringa ‘978’, il codice ISBN dopo averne eliminata
l’ultima cifra;
2. calcola la somma delle cifre in posizione pari all’interno della stringa
X appena ottenuta;
3. calcola la somma delle cifre in posizione dispari della stessa stringa
X;
4. moltiplica la somma delle cifre dispari per 3, aggiunge la somma
delle cifre pari, e calcola il modulo 10 del totale;
5. se il risultato è diverso da 0, allora memorizza la differenza tra 10
ed il valore calcolato nella fase 4; altrimenti il risultato di questa
fase è 0;
6. il codice a barre è ottenuto inserendo alla fine della stringa X, la
cifra calcolata nella fase 5.
RICERCHE…
L'operazione di ricerca viene eseguita sfruttando gli operatori relazionali.
Tramite una query il database viene "interrogato", eseguendo le istruzioni
SQL in grado di fornire all’utente i risultati richiesti.
Nel caso della ricerca, viene eseguita una selezione sulla relazione
(LIBRO o UTENTE), usando come condizione il valore conosciuto di uno o
più attributi. Ad esempio, per la ricerca di un libro, di cui si sa che l'autore
è Verga, occorre fare una selezione sulla relazione LIBRO, comparando i
valori dell'attributo NOME con la stringa 'VERGA'.
Dalla videata in cui vengono visualizzati i risultati della ricerca, è possibile
richiamare la funzione di Stampa che fornisce una copia su carta delle
informazioni trovate.
Il tempo richiesto per effettuare la stampa su carta risulta proporzionale
alla mole di dati su cui si lavora. Una stampa completa di tutti i libri della
biblioteca, infatti, richiede tempi di risposta elevatissimi.
…SUI LIBRI
La ricerca inerente un determinato libro è un servizio offerto agli utenti
semplici, che semplifica notevolmente la scansione dell'archivio, fornendo
una lista ridotta dei libri, che rispondono a particolari requisiti.
La ricerca può essere effettuata non solo su unico attributo, ma
combinando più criteri insieme, tranne quando uno di questi è la chiave
17
Biblio 2001 V. 1.2
della relazione. In quest’ultimo caso vengono ignorati gli altri attributi
conosciuti, perché possiamo sicuramente ottenere al massimo un solo
elemento della relazione.
Inoltre è possibile ordinare la visualizzazione della ricerca per ogni
attributo visibile nella lista.
E’ da questa finestra che un lettore può fare la sua prenotazione, o
stampare su carta eventuali elenchi di libri.
Il DBA invece, oltre a poter visualizzare e ricercare come un normale
utente, può anche modificare gli attributi di un determinato libro, o
addirittura lo può cancellare fisicamente.
…SUGLI UTENTI
La ricerca di un utente è invece un'esclusiva dei gestori della biblioteca e
del database (DBA), i quali hanno accesso a tutti i dati inerenti un
determinato UTENTE, conoscendone il CODICE personale o il
COGNOME. Anche se meno utilizzati per questo scopo, il programma
permette di avviare una ricerca disponendo degli altri campi, ad esempio
del TELEFONO o della CITTA’.
18
Biblio 2001 V. 1.2
Il DBA, come per i libri, può modificare ogni attributo di dati del lettore o
cancellare.
In più si possono ordinare i lettori per singolo attributo, ed eventualmente
stampare un elenco di lettori.
GESTIONE PRENOTAZIONI E
RITARDI
Il prestito di un libro risulta limitato nell'ambito del tempo: a completa
discrezione della biblioteca, viene stabilito un periodo massimo per il
prestito del libro, scaduto il quale occorre restituirlo (in quest’ambito noi
abbiamo prefissato un limite massimo di 15 giorni)
Nel momento in cui un utente trattenga un libro per un periodo maggiore,
occorre segnalare l'infrazione ai DBA (all’avvio del programma) che
provvederà ad avvertire l'utente, in maniera da accelerarne la restituzione.
Il nostro programma permette ai DBA, di creare una lista di tutti i clienti
che commettono un'infrazione, correlati con il numero di giorni passati
dalla data di restituzione.
Per quanto riguarda invece, le funzioni accessibili anche all’utente
semplice, il programma offre la possibilità di conoscere, per ciascun libro,
il numero di richiedenti e di aggiungerne un altro nella lista d'attesa.
19
Biblio 2001 V. 1.2
Ogni PRENOTAZIONE ha un codice alfanumerico di 7 caratteri.
Ogni volta che si avvia il programma, l’UTENTE viene automaticamente
avvertito di quale/i libro/i da lui tenuto/i in prestito, è/sono in ritardo di
consegna e da quanti giorni è scaduto il termine di riconsegna.
Anche ai DBA, il sistema comunica ogni volta che viene caricato, quali
sono i libri e gli utenti che hanno superato la data di restituzione e da
quanti giorni, in modo che vengano presi i provvedimenti dovuti.
La prenotazione si effettua tramite un’interfaccia di Ricerca (v. Ricerche
sui libri).
Il sistema controlla se il libro è disponibile o no, e nel caso sia già in
prestito comunica all’utente tra quanti giorni tornerà disponibile (cioè
quando tutti gli utenti in lista lo avranno ricevuto e riconsegnato), e gli
chiede di confermare la prenotazione.
Ogni PRENOTAZIONE sarà memorizzata permanentemente, in file distinti
a seconda dell’anno in cui è avvenuto il prestito, in modo da poter essere
sfruttata dai DBA, per pubblicare l’andamento dell’attività nel corso del
tempo, oltre a varie statistiche sui libri e sui generi più graditi dal pubblico.
GESTIONE IN RETE
Il software consente al DBA di poter interfacciare un sito Web (internet o
intranet) al databese del programma tramite asp.
Le Active Server Pages (ASP) sono costruite nei file .asp che sono dei file
testuali che contengono le seguenti proprietà:
•Testo •Tag HTML •Comandi di Script. Un comando di script istruisce il
computer a fare qualcosa, come assegnare un valore ad una variabile.
E' alquanto facile creare un file .asp: Basta rinominare un qualsiasi file
HTML, sostituendo i file con le estensione esistenti .htm o .html con
l'estensione .asp. Per creare uno script .asp disponibile agli utenti del
Web, bisogna salvare il file in una directory appartenente al Web
publishing (in pratica la cartella di presentazione del web, ed essere sicuri
di avere il permesso d esecuzione degli script. Quando il file verrà
chiamato dal browser, si vedrà che il processo ASP restituisce del codice
HTML.
La tecnica Asp lavora tramite degli script che sono una serie di comandi di
Script.
L'esecuzione di uno script invia una serie di comandi ad un motore di
scripting (scripting engine), che lo interpreta. Gli Script sono scritti in
linguaggi aventi precise regole; tra queste: per poter usare un linguaggio
20
Biblio 2001 V. 1.2
di scripting, il server deve disporre di uno scripting engine che conosca il
linguaggio. ASP contiene gli scripting engines per i linguaggi di scripting
VBScript and JScript. Il primo linguaggio di scripting che ASP assume, se
non è specificato quale usare, è di Default VBScript.
Sintassi ASP
ASP in realtà non è un linguagio di scripting; ASP offre un environment
(ambiente) che processa gli scripts che vengono incorporati nelle pagine
HTML.
Delimitatori
I Tag HTML sono differenziati dal testo dai delimitatori. Un delimitatore è
un carattere o una sequenza di caratteri che marcano l'inizio e la fine di
una unità.
Nel caso dell'HTML, questi delimitatori sono il simbolo minore (<) e
maggiore (>).
In modo del tutto simile, i comandi e le espressioni di output degli script
ASP sono differenziati sia dal testo che dai Tag HTML dai delimitatori.
ASP usa i delimitatori <% e %> per includere i comandi di script.
Ad esempio, il comando <% nMioNumero = 5 %> assegna il valore
numerico 5 alla variabile nMioNumero.
ASP usa i delimitatori <%= e %> per racchiudere le espressioni di output.
Ad esempio, l'espressione di output <%= nMioNumero %> invia il valore 5
(valore corrente della variable) al browser.
Espressioni Singole
E' possibile includere nei delimitatori ASP qualsiasi espressione valida per
il linguaggio di scripting primario.
Ad esempio, le seguenti linee producono la fine del testo con l'orario
corrente del server:
Istruzioni
Una istruzione, in VBScript e negli altri linguaggi di scripting, è una unità
sintatticamente completa che esprime un insieme di azioni, dichiarazioni,
o definizioni. L'istruzione condizionale If...Then...Else che mostriamo, sono
un classico esempio, che può essere anche visto nel corso di VBScript, di
istruzioni VBScript.
<%
If Time >=#12:00:00 AM# And Time < #12:00:00 PM# Then
cSaluto = "Buon Girno!"
Else
cSaluto = "Buona Sera!"
End If
%>
21
Biblio 2001 V. 1.2
Queste istruzioni memorizzano il valore "Buon Girno!" oppure il valore
"Buona Sera!" nella variabile cSaluto. Non inviano nessun valore al
browser client.
Le seguenti linee inviano il valore, in colore verde, al browser client:
<FONT COLOR="GREEN">
<%= cSaluto %>
</FONT>
Includere l'HTML nelle istruzioni
E' possibile includere del testo HTML tra le sezioni dele istruzioni.
Per esempio, il seguente script, che miscela HTML con l'istruzione
If...Then...Else, produce lo stesso risultato dello script della sezione
precedente:
<FONT COLOR="GREEN">
<% If Time > = #12:00:00 AM# And Time < #12:00:00 PM# Then %>
Buon Giorno!
<% Else %>
Buona Sera!
<% End If %>
</FONT>
Se la condizione è vera, ciò se è Mezzanotte o comunque prima di
Mezzogiorno, allora il Web Server invia l'HTML che soddisfa la condizione
(Buon Giorno) al browser; altrimenti, invia l'HTML che soddisfa la
condizione Else (Buona Sera) al browser.
Tag di Script
Le istruzioni, espressioni, comandi, e le procedure che vengono usate con
i delimitatori di script devono essere vaidi per il linguaggio di script
primario di default.
Il linguaggio primario d scripting di ASP per default è settato a VBScript.
Naturalmente, con ASP è possibile usare altri linguaggi di scripting; basta
usare i tag di script HTML script <SCRIPT> e </SCRIPT>, isieme con gli
attributi LANGUAGE e RUNAT, per racchiudere le procedure scritte in altri
linguaggi che hanno il supporto nello scripting engine.
Ad esempio, il seguente file .asp processa la procedura JScript chiamata
MiaFunzione.
<HTML>
<BODY>
<% Call MiaFunzione %>
</BODY>
</HTML>
<SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT>
function MiaFunczione ()
{
22
Biblio 2001 V. 1.2
Response.Write("è stata chiamata la funzione MiaFunzione")
}
</SCRIPT>
PROTEZIONE DEI DATI
I dati sono stati protetti, limitando l’accesso alle funzionalità che ne
manipolano il contenuto, ed in certi casi oscurando i campi informativi da
non rendere pubblici.
Tali controlli dipendono dall’identificativo
(CODICE+PASSWORD+modalità) inserito all’avvio dall’UTENTE, che
determina la tipologia di utente (semplice o DBA) e ne abilita sole le
funzionalità e le viste logiche accessibili.
STATISTICHE ELABORATE
Il software è stato progettato in maniera da coinvolgere il maggior numero
di materie, e tra queste vi rientra anche Calcolo.
Anche per questo motivo, il menù del programma permette la
visualizzazione di due tipi di ricerche statistiche:
 la Top Ten dei libri più letti;
 la Top Ten dei libri meno letti.
Queste funzionalità sono interessanti sia per i lettori, soprattutto quelli
occasionali che spesso scelgono le loro prime letture tra quelle più
gettonate, sia per i gestori della biblioteca che ovviamente cercano di
offrire ai clienti i generi ed i titoli letterari più apprezzati.
23
Biblio 2001 V. 1.2
BIBLIOGRAFIA
-
Dameri, Foresti, Percivale Corso di Informatica 3, Jackson Libri, 1996
Diversi Ipertesti ed Appunti forniti dal prof. Flavio Cerini
Vari Tutorial scaricati dal sito Internet Http://www.html.it
RINGRAZIAMENTI
Il programma BIBLIO 2001 è stato realizzato grazie all’aiuto dei seguenti
insegnanti:
- Cerini Flavio (Sistemi e Telecomunicazioni), per gli appunti e gli
ipertesti forniti che ci hanno permesso di approfondire le conoscenze
inerenti alcuni argomenti fondamentali;
- Cavallini Luisa (Informatica), per le conoscenze di Informatica
applicata che abbiamo appreso nell’arco dei tre anni di
specializzazione;
- Bazzi Mirka (Italiano), per la correzione dell’Ipertesto introduttivo al
programma Biblio 2001;
- Weinstein Vicky (Inglese), per la correzione della traduzione in lingua
Inglese dell’Ipertesto introduttivo;
- Tutti gli altri docenti ed assistenti del Consiglio di Classe della 5°Aia,
per avere sempre espresso la propria disponibilità e aver concesso
diverse ore di laboratorio per la realizzazione del Progetto d’Esame.
24