Progetti di Basi di dati Progetti standard

Progetti di Basi di dati
• Progetti “standard”
• Progetti con eventuale proseguimento nel
progetto di sistemi informativi
• Progetti con eventuale proseguimento in
prova finale
Progetti standard
1. Beni culturali
Progettare la base di dati on line delle opere conservate in diversi musei. I
musei interessati mettono a disposizione le proprie informazioni sulle
opere in possesso.
2. Agenzia di viaggi
Si supponga di voler costruire la base di dati che permetta di pianificare
un viaggio combinando i vari aspetti che un viaggio comporta. A tali
fine il sistema integra informazioni quali per esempio quelle di
compagnie aeree, prenotazione alberghi, treni.
3. Sanità
Si supponga di voler progettare la base di dati di un medico di base, con
selezione da parte del medico del laboratorio, studio o ospedale in cui
mandare un paziente per esami o visite specialistiche, con relative
prenotazioni, memorizzazione dei referti delle visite e degli esami di
laboratorio.
Progetti standard
4. Catasto strade
Il Sistema Informativo Strade è un sistema informativo geografico
distribuito, che deve integrare una serie di sistemi informativi, alcuni
dei quali già esistenti, altri ancora da implementare. I dati che si
riferiscono alla rappresentazione geometrica della rete stradale
costituiscono il grafo stradale. In questo sistema occorrerà mettere in
relazione tra di loro le diverse informazioni afferenti alla rete stradale
in possesso di enti diversi: il Catasto stradale, contenente le strade
(come archi di un grafo), i nomi delle vie, lo schema di circolazione, le
funzioni che le strade ricoprono ai fini viabilistici (es. principali e
secondarie); le informazioni su pavimentazione, marciapiedi,
spartitraffico, numero di carreggiate e corsie, etc. Esiste un Catasto
Segnaletica, che classifica e registra tutta la segnaletica cittadina;
occorre integrare poi le informazioni su eventi locali, come cantieri,
etc. che possono avere un’influenza sul traffico cittadino in determinati
giorni e a determinate ore; queste ultime informazioni sono in possesso
della Banca dati cantieri.
Progetti standard
5. Lavoro
Si vuole progettare una base di dati per supportare il
servizio di incontro domanda offerta di lavoro
analizzando le competenze lavorative presenti in
un curriculum e le offerte di lavoro presenti
all’interno dei vari centri per l’impiego provinciali
e degli enti accreditati.
6. Tema libero
Sulla base delle tracce sopra descritte è possibile
presentare un lavoro a tema libero di complessità
paragonabile.
Progetti integrati con quello di
Sistemi Informativi
• Tali progetti possono essere il
proseguimento di quelli detti prima, ma con
un’attenzione ai SERVIZI
Progetti integrati con quello di
Sistemi Informativi
1A Beni culturali
Gestione della segnalazione di emergenze per interventi su opere in siti
archeologici, sulla base di conoscenze disponibili sulle opere, il loro stato di
conservazione e la loro importanza in una base di dati. Organizzazione degli
interventi in ambiente wireless.
2A Turismo
Selezione e visualizzazione di percorsi turistici, informazioni e servizi sulla
base di profili di utenti, con particolare attenzione a esigenze legate a disabilità
o assistenza (per esempio, dialisi). Eventualmente in ambiente wireless con
very small databases.
3A. Sanità
Si supponga di voler fornire un processo di gestione di visite mediche
specialistiche, con selezione da parte del medico curante del laboratorio in cui
la visita e’ effettuabile nel piu’ breve tempo possibile, con relativa
prenotazione, con eventuali sincronizzazioni o sequenziazioni di diversi esami
(workflow), con servizi di elaborazione dei referti per i laboratori e invio
automatico dei risultati al medico curante.
Progetti integrati con quello di
Sistemi Informativi
4A. Catasto strade
Il Sistema Informativo Strade è un sistema informativo geografico distribuito, che deve
integrare una serie di sistemi informativi, alcuni dei quali già esistenti, altri ancora da
implementare. I dati che si riferiscono alla rappresentazione geometrica della rete stradale
costituiscono il grafo stradale. In questo sistema occorrerà mettere in relazione tra di
loro le diverse informazioni afferenti alla rete stradale in possesso di enti diversi: il Catasto
stradale, contenente le strade (come archi di un grafo), i nomi delle vie, lo schema di
circolazione, le funzioni che le strade ricoprono ai fini viabilistici (es. principali e
secondarie); le informazioni su pavimentazione, marciapiedi, spartitraffico, numero di
carreggiate e corsie, etc. Esiste un Catasto Segnaletica, che classifica e registra tutta la
segnaletica cittadina; occorre integrare poi le informazioni su eventi locali, come cantieri,
etc. che possono avere un’influenza sul traffico cittadino in determinati giorni e a
determinate ore; queste ultime informazioni sono in possesso della Banca dati cantieri.
Il SIS deve fornire quindi una serie di servizi:
restituire informazioni di georeferenziazione e aggancio al grafo in funzione dell'indirizzo
toponomastico e/o delle coordinate geografiche; è possibile agganciare al grafo oggetti
puntiformi o lineari per mezzo delle progressive.
Il Catasto Segnaletica deve ottenere un riferimento al grafo dal SIS per ogni oggetto (segnale)
inserito nella banca dati , es. collocazione cartello (ID univoco cartello) all'angolo tra via A
e via B;
Per contro, il SIS deve poter accedere alle informazioni del CS, ad esempio nelle operazioni di
verifica dello schema di circolazione (es. se un arco è a senso unico deve esistere un
cartello di divieto di accesso da un lato).
Progetti integrati con quello di
Sistemi Informativi
5A. Lavoro
Sulla base della specifica organizzazione supportare il servizio di incontro
domanda offerta analizzando le competenze lavorative presenti in un
curriculum e le offerte di lavoro presenti all’interno dei vari centri per
l’impiego provinciali e degli enti accreditati. Dato un curriculum ed
una offerta di lavoro sufficientemente “vicina” individuare la
formazione necessaria a colmare le lacune professionali della persona
in cerca di lavoro.
6A. Tema libero
Sulla base delle tracce sopra descritte è possibile presentare un lavoro a
tema libero di complessità paragonabile.
Progetti con eventuale
proseguimento in prova finale
• Vi sono una serie di argomenti di ricerca nel
campo delle basi di dati
• In tal caso è richiesta una fase di studio
preliminare sull’argomento
• Per tale motivo è consigliabile pensare a un
proseguimento con la prova finale
• Non è obbligatorio: se nonostante tutto ci si vuol
fermare prima, si ottiene una valutazione sui 2,5
crediti svolti
I Dati Semistrutturati
• La struttura spesso è implicita e può essere incompleta;
• la conoscenza della struttura può essere parziale;
• una struttura eccessivamente rigida, come ad esempio
quella delle basi di dati, può essere troppo vincolante;
• l'organizzazione dei dati non è vincolata dalla presenza, a
priori, di uno schema;
• lo schema può avere un alto contenuto informativo, e
quindi le interrogazioni sullo schema sono importanti
quanto quelle sui dati;
• lo schema evolve rapidamente, la sua struttura non è fissa
come nelle basi di dati e le modifiche possono essere
effettuate facilmente; perciò molte delle differenze tra
schema e dati presenti nelle basi di dati scompaiono.
Rappresentazione basata su grafi di
dati Semistrutturati
• Modelli basati su grafi
formalismo flessibile per
rappresentare la variabilità della struttura
age
teaches
37
teaches
Course
age
Age
name
Valori
concreti
Relazioni
Teacher
Teacher
Database
name
Name
surname
value
45
Smith
Oggetti
astratti
eXtensible Markup Language
• Formato di file proposto dal W3C per
scambiare e distribuire documenti
elettronici
• Esempi di documenti elettronici: libri,
manuali, cataloghi di prodotti, moduli
d’ordine, giornali, formule matematiche,
messaggi, ...
XML - eXtensible Markup Language
• Linguaggio per la marcatura di testi
derivato da SGML
• XML è un metalinguaggio come SGML
• Non è il successore di HTML
HTML
XML
• È un linguaggio di
presentazione
• Non descrive la
semantica (il significato)
dei dati che compongono
una pagina
• È un linguaggio per la
descrizione dei dati
• Permette la definizione di
(pseudo)schemi (i DTD)
o schemi veri in una versione
successiva
2
XML
• HTML: insieme fisso di tag
• XML: standard per creare linguaggi di markup con tag
personalizzati; possono essere usati in qualunque dominio
• HTML vs XML
<h1> The Idea Methodology
</h1>
<ul>
<li> di S. Ceri, P.
Fraternali
<li> Addison-Wesley
<li> US$ 49
</ul>
<book>
<title>The Idea
Methodology
</title>
<author> S. Ceri </author>
<author> P. Fraternali
</author>
<ed> Addison-Wesley </ed>
<price> US$ 49 </price>
</book>
Un esempio di documento
(rappresentazione grafica)
<manufacturer>
<mn-name>Mercury</mn-name>
<year>1999</year>
<model>
<mo-name>Sable LT</mo-name>
<front-rating>3.84</front-rating>
<side-rating>2.14</side-rating>
<rank>9</rank>
</model>
………
</manufacturer>
…..
manufacturer
mn-name
year
Mercury
1999
model
rank
mo-name
Sable LT
front-rating side-rating
9
3.84
2.14
Il meta-modello GSMM: Motivazioni
• I modelli per dati semistrutturati e XML sono:
– troppo specifici per poter essere confrontati facilmente
– non supportano una facile progettazione incrementale
General Semistructured Meta-Model (GSMM) come
formalismo unificante che permette:
• Traduzione di modelli diversi con un formalismo unico
• Facile confronto tra le caratteristiche dei diversi modelli
• Sostituzione del concetto di schema con quello di vincolo
Progetto 1: utilizzare GSMM per
traduzione tra modelli
• Algoritmo per tradurre istanze appartenenti ad un
modello origine M in istanze di un modello
destinazione M’ (ad esempio, da Plain XML a
Infoset)
Progetto 2: utilizzare GSMM per
specifica di ontologie
•Ontologia: è una descrizione formale dei concetti e
delle relazioni di una realtà da modellare
•Lo scopo del progetto è l’utilizzo del meta-modello
per formalizzare una ontologia di dominio:
•Determinare il grafo GSMM che rappresenta il
modello (basato su grafi) adeguato per formalizzare
l’ontologia considerata
•Specificare eventuali vincoli
Document Type Definition (DTD)
• Detta il tipo di un documento, cioè:
– i tag ammessi
– le regole di annidamento dei tag
• Esempio di dichiarazione di un elemento:
<!ELEMENT PRODOTTO (DESCRIZIONE, PREZZO)>
• L’elemento prodotto contiene al suo interno un elemento
descrizione seguito da un elemento prezzo
Esempio di DTD
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
ELENCO (PRODOTTO+)>
PRODOTTO (DESCRIZIONE, PREZZO?)>
DESCRIZIONE #PCDATA>
PREZZO #PCDATA>
<elenco>
<prodotto codice=“123kl14”>
<descrizione> Forno </descrizione>
<prezzo> 1040000 </prezzo>
</prodotto>
<prodotto codice=“432sd35”>
<descrizione> Frigo </descrizione>
</prodotto>
</elenco>
Rappresentazione grafica DTD
<!ELEMENT manufacturer
(mn-name, year)
<!ELEMENT model
(mo-name, front-rating,
side-rating, rank)>
<!ELEMENT mn-name PCDATA>
<!ELEMENT year PCDATA>
<!ELEMENT mo-name PCDATA>
<!ELEMENT front-rating
PCDATA>
<!ELEMENT side-rating PCDATA>
<!ELEMENT rank PCDATA>
manufacturer
mn-name
1:N
year
model
rank
mo-name
front-rating side-rating
Un esempio di istanza
<manufacturer>
<mn-name>Mercury</mn-name>
<year>1999</year>
<model>
<mo-name>Sable LT</mo-name>
<front-rating>3.84</front-rating>
<side-rating>2.14</side-rating>
<rank>9</rank>
</model>
………
</manufacturer>
…..
manufacturer
mn-name
year
Mercury
1999
model
rank
mo-name
Sable LT
front-rating side-rating
9
3.84
2.14
Un altro esempio
• DTD
Rappresentazione
<!ELEMENT libro
(isbn,titolo?,prezzo,autore
+)>
isbn
<!ELEMENT autore
(nome?,cognome)>
<!ELEMENT nome PCDATA>
<!ELEMENT cognome PCDATA>
<!ELEMENT isbn PCDATA>
<!ELEMENT titolo PCDATA>
<!ELEMENT prezzo PCDATA>
libro
1:N
prezzo
titolo
0:1
autore
0:1
nome
Graph Transformation
Grafi: rappresentazione formale di modelli
– diagrammi: UML (classi, interazione, stato, attività),
…
– database: E-R
– architetture: software, hardware, reti
Regole: descrizione di computazioni attraverso
trasformazioni locali
– aritmetiche
– sintattiche
– deduzioni
cognome
Esempio di Regola
L
R
emb
label: A
TE: I1
label: A
TE: I2
K=Ø
label: A
+ I2
TE: I1 U
appl=Ø
glue=Ø
Progetto 3: utilizzare Graph
Transformation per ricavare DTD di
documenti XML
•Capire come rappresentare con un grafo etichettato
il DTD di un documento XML
•Definire le regole di riscrittura da applicare al
documento:
•Considerare la cardinalità e i vincoli di elementi
e attributi
•Possibile implementazione con il software AGG
Data Mining
•Data Mining area di ricerca che si occupa dello
studio di tecniche per estrapolare informazioni
implicite, non conosciute ma utili per gli utenti, da
basi di dati di grosse dimensioni.
•Regola di associazione implicazione valida con
una certa frequenza. Ad esempio, con una certa
frequenza f, coloro che seguono il genere “gioco a
premi” seguono anche gli sceneggiati televisivi.
Progetto 4: un formalismo grafico per
estrarre informazione intensionale da
documenti XML
• Studio dell’applicabilità del formalismo dei grafi
per la specifica di regole di associazione estratte da
documenti XML
•Utilizzo di tali regole per fornire informazioni
intensionali sul documento XML (senza interrogare
il documento)
Una risposta intensionale ad una interrogazione è un insieme di “regole” (ad
esempio, vincoli, formule logiche, regole di associazione …) che
caratterizzare l’insieme di valori che soddisfano l’interrogazione stessa (tale
insieme di valori viene comunemente chiamato risposta estensionale).
Progettazione ed Interrogazione
di synopses XML
• Negli ultimi anni l’uso di XML, si è diffuso ad altri tipi di
applicazione:
– creazione sia di collezioni di documenti XML
– creazione linguaggi di interrogazione studiati esplicitamente per
interrogare e ristrutturare dati XML
• Purtroppo l’interrogazione esatta di vaste collezioni di dati
XML richiede elevati tempi di computazione della
risposta, specialmente in caso di computazione di
interrogazioni aggregate.
• Per superare questo problema sono state proposte delle
risposte di tipo approssimato, ricavate da riassunti statistici
delle collezioni di dati ottenuti tramite istogrammi.
L’idea alla base del progetto
XML data synopsis
<?XML version 1.0?>
<doc>.........
................
<doc>
<?XML version 1.0?>
<doc>.........
................
<?XML
version 1.0?>
<doc>
<doc>.........
................
<doc>
XML data
collection
XQuery
transformation
<?XML version 1.0?>
<doc>.........
................
<?XML version
<doc>1.0?>
<doc>.........
<hist>..........
</hist>
........
<doc>
Query transformed to
compute the answer
using the synopsis
<LET $V:=.......>
FOR.....
RETURN
avg_hist(.........
................
XQuery
transformation
<LET $V:=.......>
FOR.....
RETURN
avg(.........
................
approximate answer
Query formulated using
XQuery
USER
Progetti (1)
•
•
Il progetto consiste nell’implementazione di un algoritmo
ottimizzato di creazione di istogrammi all’interno di un
prototipo di costruttore di synopsi già esistente al fine di
migliorarne le prestazioni. L’algoritmo da implementare
sarà uno di quelli già esistenti per la basi di dati
relazionali, e sarà cura dello/degli studenti curarne
l’adattamento ad XML.
Il progetto consiste nel testare i prototipi risultanti dal
progetto precedente su un benchmark apposito (ad es. la
libreria di Brambati e Brambilla) e generare un confronto
critico sulle prestazioni delle diverse implementazioni
trovate.
Progetti (2)
• Effettuare uno studio sul problema della summarizabilità
nelle basi di dati relazionali e provare a discutere analogie
e differenze quando si prova ad analizzare lo stesso
problema con le basi di dati XML.
• Effettuare uno studio sul calcolo dell’errore di
approssimazione nelle risposte approssimate basate su
istogrammi. Tipi di errore presenti in letteratura e eventuali
legami col tipo di istogramma scelto.
Physical and logical data structures for
very small databases
• Inserimento nel lavoro relativo al DBMS
• Inserimento nel lavoro di tipo metodologico
Nota: il progetto integrato con sistemi informativi
può essere basato su tracce simili a quella
presentata oggi prestando particolare attenzione
alla progettazione della base di dati di un
dispositivo mobile: smartcard, cellulare, palmare
Physical and logical data structures for
very small databases
• Esiste una proposta di metodologia per il design di
basi di dati molto piccole (VSDB).
• La metodologia deve tener conto delle peculiarità
di questo tipo di basi di dati, in particolare:
– Delle strutture dati sia fisiche che logiche utilizzate dai
dispositivi che alloggiano queste basi di dati
– Delle modalità di accesso ai dati dei dispositivi
– Delle problematiche di risparmio di memoria e basso
consumo di potenza date da dispositivi con poche
risorse e dipendenti da una fornitura di energia limitata
(batteria)
Progetto 5: Esempio di traccia di
un progetto VSDB
1.
Si deve progettare una base di dati per una società che gestisce un insieme di
taxi. Ogni taxi è caratterizzato dalla targa, il tipo di macchina, il nome in
codice. Ogni macchina è caratterizzata dalla capienza. Ai taxi sono associati
gli autisti, ognuno caratterizzato dai propri dati anagrafici, da un codice e
dall’indirizzo dell’abitazione. I clienti telefonano alla sede centrale per
richiedere un taxi. La sede centrale associa i taxi alle richieste dei clienti.
Nella richiesta il cliente specifica il proprio nome, il luogo e l’ora a cui
desidera il taxi e la destinazione richiesta. Qualora abbia bisogno di un
veicolo particolarmente capiente, ciò deve essere comunicato al momento
della richiesta. Al termine della corsa, al cliente viene fornita una ricevuta
per l’importo della corsa. Sulla ricevuta sono indicati il nome del cliente, il
codice sia del taxi che dell’autista, il luogo e l’ora sia della partenza che
dell’arrivo, la distanza percorsa e l’ammontare che evidenzia le varie voci ed
i vari supplementi. Ad ogni ricevuta deve corrispondere una prenotazione,
ma il viceversa può non essere vero. In questo caso la prenotazione viene
conservata, ma etichettata come ‘’annullata’’.
Tipologia di progetto
• Si realizzi la base di dati residente sul server della società utilizzando
uno dei pacchetti commerciali disponibili su web ( si trovano in
versione shareware a 60 gg - tipo Sybase o Oracle 9i lite). Si realizzi
anche un taglio della base di dati da mettere su un portatile in
dotazione al tassista che gli permetta di gestire le prenotazioni ed i
servizi assegnatigli il più autonomamente possibile e si realizzi un
taglio della base di dati da mettere su un portatile in dotazione al
cliente che gli permetta di gestire le proprie prenotazioni e visulaizzare
e richiedere i diversi servizi. Si fornisca il software di tutta la
documentazione necessaria (manuale tecnico comprendente tutti i
diagrammi necessari e manuale utente).