Università degli Studi di Modena e Reggio Emilia Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze Matematiche, Fisiche e Naturali Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Scienze dell’Informazione Corso di Laurea in Scienze dell’Informazione
Progetto e Sviluppo di un Sistema Informativo Progetto e Sviluppo di un Sistema Informativo
per la Gestione di una Base di Dati per la Gestione di una Base di Dati
di Pubblicazioni Scientifiche di Pubblicazioni Scientifiche
Valerio Romeo Valerio Romeo
Relatore:
Relatore:
Prof. Riccardo Martoglia Prof. Riccardo Martoglia
Anno Accademico 2006/2007 Anno Accademico 2006/2007
Introduzione 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 Problematiche affrontate
nella tesi nella tesi
• Analisi del caso di studio
• Analisi dei dati
• Progetto
• Implementazione
Information System Group Information System Group
• L’ISGroup è un gruppo di ricercatori che ha sede presso il Dipartimento di Ingegneria
dell’Informazione (DII) di Modena e che si
occupa di design e sviluppo di nuovi sistemi, algoritmi e strutture dati per l'accesso e
l'amministrazione dell’Informazione Sezioni principali
Sezioni principali
• Projects:
sono descritti in dettaglio i Topic Of Interest studiati e i progetti a cui il gruppo partecipa o ha partecipato
• Publications:
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 Information System Group
• Server Web: Internet Information Services
• Database: pub.mdb (MS Access)
• Tecnologie utilizzate:
– HTML
– ASP (VBScript) – JavaScript
Principali caratteristiche del sito:
Problematiche da risolvere 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
• Generazione manuale del BibTeX Accesso
diretto alle tabelle
@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}
Es.
Problematiche affrontate Problematiche affrontate
nella tesi nella tesi
• Analisi del caso di studio
• Analisi dei dati
• Progetto
• Implementazione
Studio del database
Studio del database pub.mdb pub.mdb
Gli Autori possono realizzare 0 o n Pubblicazioni, mentre
ogni Pubblicazione può far riferimento ad 1 o più Autori
Le Pubblicazioni possono essere di vario Tipo (unico
per ognuna) e possono riguardare un determinato
Topic of interest
Ogni Pubblicazione inoltre riguarda 1 o n Progetti per ciascuno dei quali possono essere stati realizzati da 0 a
n Prototipi
Un determinato Prototipo riguarda un solo Progetto e
fa riferimento ad un unico Topic Of Interest
Schema Logico 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 Problematiche affrontate
nella tesi nella tesi
• Analisi del caso di studio
• Analisi dei dati
• Progetto
• Implementazione
Progetto Progetto
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
Fasi affrontate:
Scenario:
Scenario:
Gestione Gestione
Pubblicazione Pubblicazione
Scenario: Gestione Pubblicazione Scenario: Gestione Pubblicazione
L’autore, a login effettuato, mediante un
apposito menù potrà decidere se inserire una
nuova pubblicazione o modificarne una già
esistente L’autore, a login effettuato, mediante un
apposito menù potrà decidere se inserire una
nuova pubblicazione o modificarne una già
esistente
In caso di inserimento verrà caricata la pagina opportuna contenente il
form da compilare...
In caso di inserimento verrà caricata la pagina opportuna contenente il
form da compilare...
...al contrario, se si è deciso di modificare una pubblicazione, mediante un apposito menù, sarà
possibile sceglierla ...al contrario, se si è deciso di modificare una pubblicazione, mediante un apposito menù, sarà
possibile sceglierla ... se è stato inserito un
nuovo topic, sarà necessario completare l’operazione relativa con i
dati del topic
... se è stato inserito un nuovo topic, sarà necessario completare l’operazione relativa con i
dati del topic
Dopo aver confermato l’inserimento, i dati saranno immessi nel database e sarà possibile
infine caricare sul server il file della pubblicazione
Dopo aver confermato l’inserimento, i dati saranno immessi nel database e sarà possibile
infine caricare sul server il file della pubblicazione
Visione globale della
gestione di una
pubblicazione da
inserire o da modificare
Activity Diagram:
Activity Diagram:
Inserimento Inserimento Pubblicazione Pubblicazione
Diagramma delle attività per la funzione di
inserimento di una
pubblicazione analizzata
in dettaglio
Modifiche al database Modifiche al database
• Nuovi dati per le pubblicazioni:
– Numero di pagine – Keywords
Attributi: Pag-Iniz e Pag-fin
Entità: Keywords
Relazione: Pub-Key
Schema E-R modificato Schema E-R modificato
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, Pag- Fin, 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
Schema E-R / Logico
Schema E-R / Logico
Problematiche affrontate Problematiche affrontate
nella tesi nella tesi
• Analisi del caso di studio
• Analisi dei dati
• Progetto
• Implementazione
Studio degli script Studio degli script
Script ASP:
• LoginForm (3 KB): realizza il form di login, contenente LoginForm 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 Login nella tabella ‘Login’
• Menu (3 KB): menù per effettuare le seguenti Menu
operazioni: logout, cancellazione cookie, inserimento pubblicazione e modifica pubblicazione
• Logout (1 KB): esegue il logout dall’area privata del sito e Logout redireziona l’utente alla pagina di login
Studio degli script (2) Studio degli script (2)
• DeletecookieDeletecookie (1 KB): cancella il cookie ‘Logon’ generato in fase di login con salvataggio dei dati
• SceltapubSceltapub (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 InsmodForm dei dati di una pubblicazione
• PreinserimentoPreinserimento (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 InstopicForm
Studio degli script (3) Studio degli script (3)
• InstopicInstopic (3 KB): visualizza, in una struttura a tabella, i dati del nuovo topic inseriti
• InserimentodatiInserimentodati (14 KB): contiene le query SQL per l’inserimento e la modifica dei dati della pubblicazione
• UploadUpload (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 Bibtex generazione automatica del BibTeX
• Script (11 KB): realizza una serie di controlli sui campi del Script form
Area Web: gestione pubblicazioni Area Web: gestione pubblicazioni
• Gestione pubblicazioni protetta da Login
Salvataggio dati: Cookie
‘Logon’
• Menù: Logout, Cancella Cookie,
Inserimento nuova Pub e Modifica Pub
Inserimento nuova pubblicazione:
caricamento del form
Controlli JavaScript Controlli JavaScript
( ( script.inc script.inc ) )
• Controllo sui campi obbligatori: Autore, Titolo, Libro, Abbr, Anno, Tipo e Topic
• Abilitazione / Disabilitazione
campi Nuovi Autori, Nuovo Tipo e
Nuovo Topic
• Controllo sulle
pagine inserite: le pagine devono
essere separate dal carattere ‘-’
• Controllo sulle parole chiave inserite: max 5
• Menù a tendina:
filtro autori
Inserimento pubblicazione Inserimento pubblicazione
• Possibilità di confermare i dati prima di inserirli nel database
• Possibilità di inserire un nuovo topic compilando i campi del form relativo
Visualizzazione
dati inseriti
Modifica pubblicazione Modifica pubblicazione
• Scelta della pubblicazione da ricercare mediante un apposito menù
• Caricamento dei
dati nel form
Upload file 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 Generazione automatica BibTeX
( ( bibtex.inc bibtex.inc ) )
• 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
Esempio:
Obiettivi raggiunti :
Sviluppi futuri :
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
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
l’area privata realizzata risulta essere protetta grazie all’uso di variabili di sessione e mediante una pagina di accesso