Università degli Studi di Modena e Reggio Emilia
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Scienze dell’Informazione
Progetto e Sviluppo di un Sistema Informativo
per la Gestione di una Base di Dati
di Pubblicazioni Scientifiche
Valerio Romeo
Relatore:
Prof. Riccardo Martoglia
Anno Accademico 2006/2007
Introduzione
• Studio ed estensione delle funzionalità del sito
Information Systems Group
(http://www.isgroup.unimo.it)
• Sezioni principali del sito: Projects, Publications
e Thesis
• La sezione analizzata in dettaglio è quella delle
pubblicazioni scientifiche
• Necessità degli autori di effettuare inserimenti e
modifiche alla base di dati direttamente da
interfaccia Web
• Realizzazione di un’area protetta per consentire
le operazioni summenzionate
Problematiche affrontate
nella tesi
• Analisi del caso di studio
• Analisi dei dati
• Progetto
• Implementazione
Information System Group
Sezioni
principali
• L’ISGroup
è un gruppo di ricercatori che ha sede
• Projects:
presso il Dipartimento di Ingegneria
sono descritti in
dettaglio
i Topic
Of Interest
dell’Informazione
(DII)
di Modena
e che
si
studiati
e i progetti
a cui ildigruppo
partecipa o
occupa
di design
e sviluppo
nuovi sistemi,
ha partecipato
algoritmi e strutture dati per l'accesso e
• Publications:
l'amministrazione dell’Informazione
vengono elencate, raggruppate per anno o
topic, le pubblicazioni scientifiche realizzate
dai vari membri del gruppo
• Thesis:
sono elencate le tesi proposte e una serie di
tesi pubblicate
Information System Group
Principali caratteristiche del sito:
•
•
•
Server Web: Internet Information Services
Database: pub.mdb (MS Access)
Tecnologie utilizzate:
– HTML
– ASP (VBScript)
– JavaScript
Problematiche da risolvere
• Inserimenti e modifiche manuali dei dati
• Upload del file tramite accesso diretto alla
cartella del server ( /pub/ )
• Mancanza di funzionalità sul controllo dei dati
inseriti
Accesso
diretto alle
• Generazione manuale del BibTeX
tabelle
Es. @inproceedings{sebd04smart,
author
= {F. Mandreoli and R. Martoglia},
title
= "{Exploiting related digital library corpora with query rewriting}",
booktitle = {Proc. of the 12th Convegno su Sistemi Evoluti per Basi di Dati (SEBD 2004)},
year = {2004}
}
Problematiche affrontate
nella tesi
• Analisi del caso di studio
• Analisi dei dati
• Progetto
• Implementazione
Studio del database pub.mdb
Le Pubblicazioni
possono
Ogni
Pubblicazione
inoltre
GliUn
Autori
determinato
possonoPrototipo
realizzare
essere
Tipo (unico
riguardadi1vario
o n Progetti
per
riguarda
0 o n Pubblicazioni,
un solo Progetto
mentre
e
per ognuna)
e possono
ciascuno
dei quali
possono
ogni
fa riferimento
Pubblicazione
ad unpuò
unico
far
riguardare
determinato
essere
stati un
realizzati
da 0 a
riferimento
Topic ad
Of 1
Interest
o più Autori
Topic
of interest
n Prototipi
Schema Logico
AUTORI ( ID, Nome, Search )
PUB-AUT ( ID, Pub, Autore )
AK: Pub, Autore
FK: Pub REFERENCES Pubblicazioni
FK: Autore REFERENCES Autori
PUBBLICAZIONI ( ID, Titolo, Libro, Abbr, Luogo, Year, Month, Tipo, Topic,
PDFLink, Abstract, BibTeX )
FK: Tipo REFERENCES Tipo
FK: Topic REFERENCES TopicOfInterest
TIPO ( ID, Tipo )
TOPICOFINTEREST ( ID, Titolo, Descrizione, PaginaWeb, Search )
PROG-PUB ( ID, Prog, Pub )
AK: Prog, Pub
FK: Prog REFERENCES Progetti
FK: Pub REFERENCES Pubblicazioni
PROGETTI ( ID, Titolo, Descrizione, PaginaWeb, Tipo, Inizio, Fine )
PROTOTIPI ( ID, Nome, PaginaWeb, Topic. Progetto )
FK: Topic REFERENCES TopicOfInterest
FK: Progetto REFERENCES Progetti
Problematiche affrontate
nella tesi
• Analisi del caso di studio
• Analisi dei dati
• Progetto
• Implementazione
Progetto
Fasi affrontate:
1. Raccolta dei requisiti da sviluppare
2. Analisi dello scenario: gestione pubblicazioni
3. Individuazione dei casi d’uso: inserimento e
modifica pubblicazione
4. Realizzazione degli Activity Diagram
5. Modifica al database
Scenario:
Scenario:Gestione Pubblicazione
Gestione
Pubblicazione
Visione globale della
gestione di una
pubblicazione da
inserire
oaver
daconfermato
L’autore,
amodificare
login
Dopo
...
effettuato,
...al
se
contrario,
è stato
inserito
se
si un
è
In
l’inserimento,
caso
di mediante
inserimento
i dati
deciso
apposito
nuovo
di modificare
topic,
menù
potrà
una
verrà
saranno
caricata
immessi
lasarà
pagina
nel
pubblicazione,
decidere
necessario
completare
inserire
mediante
una
database
opportuna
esecontenente
sarà
possibile
il
l’operazione
un
nuova
apposito
pubblicazione
relativa
menù,
sarà
con
o i
infine
form
caricare
da
compilare...
sul server
modificarne
possibile
dati del
sceglierla
topic
una già
il file
della
pubblicazione
esistente
Activity Diagram:
Inserimento
Pubblicazione
Diagramma delle attività
per la funzione di
inserimento di una
pubblicazione analizzata
in dettaglio
Modifiche al database
• Nuovi dati per le pubblicazioni:
Attributi: Pag-Iniz e Pag-fin
– Numero di pagine
– Keywords
Entità: Keywords
Relazione: Pub-Key
Schema E-R /modificato
Logico
AUTORI ( ID, Nome, Search )
PUB-AUT ( ID, Pub, Autore )
AK: Pub, Autore
FK: Pub REFERENCES Pubblicazioni
FK: Autore REFERENCES Autori
PUBBLICAZIONI ( ID, Titolo, Libro, Abbr, Pag-Iniz, PagFin, Luogo, Year, Month, Tipo, Topic, PDFLink, Abstract,
BibTeX )
FK: Tipo REFERENCES Tipo
FK: Topic REFERENCES TopicOfInterest
KEYWORDS ( ID, Keyword )
PUB-KEY ( ID, Pub, Keyword )
AK: Pub, Keyword
FK: Pub REFERENCES Pubblicazioni
FK: Keyword REFERENCES Keywords
TIPO ( ID, Tipo )
TOPICOFINTEREST ( ID, Titolo, Descrizione,
PaginaWeb, Search )
PROG-PUB ( ID, Prog, Pub )
AK: Prog, Pub
FK: Prog REFERENCES Progetti
FK: Pub REFERENCES Pubblicazioni
PROGETTI ( ID, Titolo, Descrizione, PaginaWeb, Tipo,
Inizio, Fine )
PROTOTIPI ( ID, Nome, PaginaWeb, Topic. Progetto )
FK: Topic REFERENCES TopicOfInterest
FK: Progetto REFERENCES Progetti
Problematiche affrontate
nella tesi
• Analisi del caso di studio
• Analisi dei dati
• Progetto
• Implementazione
Studio degli script
Script ASP:
• LoginForm (3 KB): realizza il form di login, contenente
i campi di testo Username e Password e il checkbox
Salva LogIn, per accedere all’area privata del sito
• Login (2 KB): controlla che i campi inseriti siano presenti
nella tabella ‘Login’
• Menu (3 KB): menù per effettuare le seguenti
operazioni: logout, cancellazione cookie, inserimento
pubblicazione e modifica pubblicazione
• Logout (1 KB): esegue il logout dall’area privata del sito e
redireziona l’utente alla pagina di login
Studio degli script (2)
• Deletecookie (1 KB): cancella il cookie ‘Logon’ generato in
fase di login con salvataggio dei dati
• Sceltapub (10 KB): permette di ricercare, per autore e
topic, le pubblicazioni presenti nel database.
Selezionando il pulsante ‘Modifica’ si potrà accedere
al form per apportare i cambiamenti desiderati
• InsmodForm (16 KB): form per l’inserimento e la modifica
dei dati di una pubblicazione
• Preinserimento (10 KB): visualizza, in una struttura a
tabella, i dati inseriti nel form prima di dare l’effettiva
conferma di inserimento o modifica
• InstopicForm (2 KB): form di inserimento per i dati del
nuovo topic
Studio degli script (3)
• Instopic (3 KB): visualizza, in una struttura a tabella, i dati
del nuovo topic inseriti
• Inserimentodati (14 KB): contiene le query SQL per
l’inserimento e la modifica dei dati della pubblicazione
• Upload (4 KB): gestisce l’upload del file, in formato PDF,
della pubblicazione scientifica sul server
Script JavaScript:
• Bibtex (4 KB): contiene la funzione gen_bibtex() per la
generazione automatica del BibTeX
• Script (11 KB): realizza una serie di controlli sui campi del
form
Area Web: gestione pubblicazioni
pubblicazioni
• Gestione
Menù: Logout,
Cancellaprotetta
Cookie,da Login
Inserimento nuova Pub e Modifica Pub
Salvataggio
dati: Cookie
‘Logon’
Inserimento nuova
pubblicazione:
caricamento del form
Controlli JavaScript
(script.inc)
• Controllo
Menù a tendina:
Abilitazione
sui/ campi
sulle
obbligatori:
Disabilitazione
pagine
parole
filtro
autori
chiave
inserite:
Autore,
le
Titolo, Nuovi
campi
pagine
inserite:
Libro,
devono
maxAbbr,
5
Anno, Tipo
Autori,
essere
Nuovo
separate
e Topic
Tipo
e Nuovo
dal
carattere
Topic‘-’
Inserimento pubblicazione
• Possibilità di inserire
confermare
un nuovo
i dati prima
topic di
inserirli nel database
compilando
i campi del form relativo
Visualizzazione
dati inseriti
Modifica pubblicazione
• Scelta
Caricamento
della dei
pubblicazione
dati
nel form
da ricercare
mediante un
apposito menù
Upload file
•
•
Gestito mediante un form di tipo
multipart/form-data
Fasi upload:
1. Verifica di quanti dati sono stati spediti dal client
(Request.TotalBytes)
2. Recupero dei dati (Request.BinaryRead)
3. Distinzione dell’header dal contenuto vero e
proprio (variabile ContenutoFile)
4. Scrittura del file mediante l’oggetto
FileSystemObject che permette di accedere al
file system del server
Generazione automatica BibTeX
(bibtex.inc)
•Esempio:
Strumento utilizzato per la formattazione di riferimenti
bibliografici contenente una serie di voci; nel caso di una
pubblicazione, le voci prese in considerazione sono:
Abbr, Autori, Titolo, Libro e Anno
• realizzato mediante una concatenazione di stringhe
generata automaticamente dalla funzione gen_bibtex()
• questa funzione viene richiamata ogni volta che si
compila un campo a cui è associato il metodo onChange
• tale metodo stabilisce l'esecuzione di un'espressione
JavaScript quando un campo di un form HTML non è più
evidenziato e il suo valore è cambiato
Obiettivi raggiunti :

migliorata la sezione Publications attraverso inserimenti e
modifiche più veloci e sicure attraverso una serie di controlli

sono stati introdotti nuovi attributi per le pubblicazioni ed è stata
aggiunta l’entità ‘Keywords’
anche l’upload del file è stato ottimizzato gestendolo mediante
l’ausilio di un form ed evitando quindi l’accesso diretto alla cartella
del server
 l’area privata realizzata risulta essere protetta grazie all’uso di
variabili di sessione e mediante una pagina di accesso

Sviluppi futuri :

creare script ASP al fine di ottimizzare gli inserimenti e le modifiche
anche per le sezioni Projects e Thesis

inserire nel criterio di ricerca delle pubblicazioni anche le parole
chiave così da filtrare maggiormente i risultati ottenuti
gestire inoltre la cancellazione dalla base di dati di una determinata
pubblicazione
