Introduzione all'integrazione dei dati
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Introduzione
all’integrazione dei dati
Prof. Letizia Tanca
Tecnologie per i Sistemi Informativi
1
Problema della progettazione
“in piccolo”
• Come organizzare i dati nelle tabelle in
modo efficace ed efficiente?
– Evitare contraddizioni: escludere le dipendenze
funzionali indesiderate
– Permettere l’ottimizzazione delle interrogazioni
2
1Integrazione di dati
• Il problema della integrazione di dati
consiste nel voler combinare dati provenienti
da sorgenti differenti fornendo all’utente una
visione unificata
• Individuazione delle corrispondenze tra
concetti simili provenienti dalle diverse fonti
e risoluzione dei conflitti.
3
Le possibili prospettive e problemi
dell’integrazione
• Base di dati unica
• Base di dati distribuita o federata
– dati omogenei
• stesso modello dei dati
– dati eterogenei
• diverso modello dei dati
– dati semistrutturati
4
2NEI DATABASE CLASSICI:
BASE DI DATI UNICA
Ogni dato, a prescindere da quali applicazioni lo
utilizzino, compare una sola volta
– l’integrazione ELIMINA inutili
RIDONDANZE e SPRECHI DI MEMORIA
– MIGLIORA la CONSISTENZA dei dati (non
è infatti possibile che lo stesso dato abbia
contemporaneamente due valori diversi)
5
Una base di dati integrata
P5
P1
P2
P3 P4
V1
V5
V2 V3 V4
DB
6
3Base di dati unica:
integrazione di viste
• Ogni funzione aziendale avrà la sua visione
personalizzata
• Ciò viene realizzato mediante il
meccanismo delle VISTE
• Ciò permette di personalizzare ma anche di
controllare l’accesso
7
Uso di una strategia
di progettazione MISTA
• Progettazione di uno SCHEMA SCHELETRO e
individuazione dei sottosistemi
• Progettazione concettuale dei sottoschemi
• Traduzione dei sottoschemi nel modello logico scelto
• Integrazione dei sottoschemi logici in un unico schema
globale (n.b. non c’è problema di modello dei dati!)
• Eventuale ristrutturazione e riconciliazione con i
sottoschemi concettuali precedentemente progettati
8
4Viste
• Offrono la "visione" di tabelle virtuali (schemi esterni)
• Sintassi:
create view NomeVista [ (ListaAttributi) ] as
SelectSQL
[ with [ local | cascaded ] check option ]
9
Una vista relazionale
Corsi Aule
Corso Docente Aula Nome Edificio Piano
Basi di dati Rossi DS3 DS1 Ex-OMI Terra
Sistemi Neri N3 N3 Ex-OMI Terra
Reti Bruni N3 G Pincherle Primo
Controlli Bruni G
CorsiSedi
Corso Aula Edificio Piano
Sistemi N3 Ex-OMI Terra
Reti N3 Ex-OMI Terra
Controlli G Pincherle Primo
10
5Integrazione di viste
• Analisi dei conflitti
• Integrazione di schemi
• Arricchimento e ristrutturazione in base ai
sottoschemi concettuali precedentemente
progettati
• Eventuali raffinamenti
11
Analisi dei conflitti
• CONFLITTI DI NOME
Prodotto prezzo (di produzione)
– OMONIMIA Prodotto prezzo (di vendita)
Dipartimento
– SINONIMIA
Divisione
12
6Analisi dei conflitti
CONFLITTI DI TIPO (NUMERICO, ALFANUMERICO, ...)
• un attributo “sesso” può essere rappresentato
– con un carattere — M/F
– con una cifra — 0/1
– implicitamente nel codice fiscale
– non essere rappresentato
• il nome e cognome di una persona
– “Mario”, “Rossi”
– “Mario Rossi”
– “Rossi, Mario”
– “Rossi, M.”
13
Analisi dei conflitti
SEMANTICA PROPRIA DEL DATO
(DIFFERENZA DI UNITA’ DI MISURA, DI GRANULARITA’, …)
• Il prezzo può essere rappresentato in diverse
valute (unità di misura)
• Il peso può essere misurato in grammi, kg,
etc. (granularità)
• La temperatura può essere misurata in gradi
centigradi o Farhenheit (unità di misura)
14
7Analisi dei conflitti
Impiegato Impiegato
CONFLITTI DI
Dipartimento Progetto
STRUTTURA
Progetto
Libro Libro editore
sesso
Persona Persona
Uomo Donna
Editore
15
Analisi dei conflitti
• CONFLITTI DI DIPENDENZA(NEGLI SCHEMI I
CONCETTI SONO LEGATI DA TIPI DI DIPENDENZE DIVERSI)
Impiegato Impiegato
1:1 1:n
1:n 1:n
Dipartimento Progetto
1:1
1:n
Progetto
16
8Analisi dei conflitti
• CONFLITTI DI CHIAVE
Prodotto CODICE PRODOTTO)
LINEAP
Prodotto CODICEP
DESCRIZIONE
17
Se la bd non è centralizzata…
• Basi di dati distribuite su più server
• Appartenenti a una stessa organizzazione
• Caso dei dati omogenei
• L’obiettivo è di garantire:
Accessibilità
Maggiore affidabilità
18
9Basi di dati distribuite su più server
• vari tipi di frammentazione
- Verticale
- Orizzontale
• e replicazione
• integrati a priori
19
Se la bd non è unica…
• ma i dati sono omogenei
• eventualmente appartenenti a diverse
organizzazioni
• e comunque integrati a posteriori
• eventualmente con rapporti più
“complicati” tra i loro dati
…integrazione di viste come nella BD
unica
20
10Se la bd non è unica…
• Integrazione di schemi
– Produzione di uno schema unico
– Produzione dei singoli schemi come viste in qualche
relazione con lo schema unico
• Eventuale arricchimento e ristrutturazione
• Raffinamento
21
E se non avessimo a disposizione gli
schemi ER originari?
• Il reverse engineering è l’attività di comprensione
concettuale di uno schema di dati — ad es. la
rappresentazione di uno schema relazionale mediante
un modello concettuale
• Uno schema ER è più espressivo di uno schema
relazionale — è necessario conoscere la realtà di
interesse per recuperare la conoscenza persa nella fase
di progettazione logica
• Il reverse engineering può essere svolto in modo
semiautomatico dagli strumenti di progettazione CASE
22
11Ipotesi di lavoro
(prima approssimazione)
• Stesso modello dei dati
• Architettura con schema globale
• Lo schema globale deve fornire visione
• Riconciliata
• Integrata
• Virtuale
delle sorgenti
23
Architettura con schema globale
• Due approcci di base
– GAV (Global As View)
– LAV (Local As View)
• Si utilizzano anche nel caso di dati eterogenei
• In quel caso richiedono anche trasformazioni di
modello
24
12GAV (Global As View)
• Lo schema globale è espresso in termini delle sorgenti
LAV (Local As View)
• Lo schema globale è specificato indipendentemente
dalle sorgenti
• La relazione tra sorgenti e schema globale è stabilita
definendo ogni sorgente come view sullo schema
globale
GLAV (Global and Local As View)
• La relazione tra sorgenti e schema globale è stabilita
attraverso un insieme di view, alcune sullo schema
globale e alcune sulle sorgenti
25
Servizi forniti dal sistema di
integrazione
Indipendentemente dal tipo di mapping…
• Risponde alle query, che vengono poste in
termini di schema globale
• Richiede uno step di riformulazione delle
query (comunque formulate dall’utente) in
termini di query sulle sorgenti
26
13Mapping tra sorgenti e schema
mediato
• Schema globale G
• Schemi delle sorgenti S
• Mapping M tra sorgenti e schema globale costituito da un
insieme di asserzioni:
qS qG
qG qS
Intuitivamente, la prima asserzione specifica che il concetto
rappresentato da una query qS sullo schema di una sorgente
S corrisponde al concetto specificato da qG sullo schema
globale. Viceversa per la seconda.
• Le query al sistema integrato vengono poste in termini di G
e specificano quali dati vogliamo estrarre dalla base di dati
virtuale rappresentata dallo schema G
27
GAV
• Un mapping GAV è un insieme di asserzioni, una
per ogni elemento g di G
g qS
Perciò il mapping ci dice esplicitamente come
valutare la query.
• Va bene se le sorgenti sono stabili
• È difficile estendere con una nuova sorgente, che può avere
un notevole impatto sulla definizione dei vari elementi dello
schema globale
28
14Esempio GAV
SORGENTE 1
Prodotto(Codice, Nome, Descrizione, Avvertenze, NoteParticolari, IDCategoria)
Categoria(ID, Nome, Descrizione)
Variante(CodiceProdotto, CodVariante, Taglia, Colore, Nome, Descrizione,
DisponibilitàStock, Prezzo)
SORGENTE 2
Prodotto(Codice, Nome, Taglia, Colore, Descrizione,Tipo, Prezzo,Q.tàMagazzino)
Tipo(CodTipo, Nome, Descrizione)
n.b.: Faremo un esempio che prescinde dal FORMATO DEI
DATI
29
SORGENTE 1
Prodotto(Codice, Nome, Descrizione, Avvertenze, NoteParticolari, Categoria)
Variante(CodiceProdotto, CodVariante, Taglia, Colore, Nome, Descrizione,
DisponibilitàStock, Prezzo)
SORGENTE 2
Prodotto(Codice, Nome, Taglia, Colore, Descrizione,Tipo, Prezzo,Q.tàMagazzino)
SCHEMA GLOBALE
CREATE VIEW GLOB-PROD AS
SELECT Codice AS CodiceP, CodVariante as CodiceV, Variante.Nome AS Nome, Taglia,
Colore, Variante.Descrizione as Descrizione,Categoria, Variante.Prezzo, DisponibilitàStock
AS Stock
FROM SORGENTE1.Prodotto, SORGENTE1.Variante
WHERE Codice = CodiceProdotto
UNION
SELECT Codice AS CodiceP, 0 as CodiceV, Nome, Taglia, Colore, Descrizione,Tipo as
Categoria, Prezzo, Q.tàMagazzino AS Stock
FROM SORGENTE2.Prodotto
30
15GAV
• Supponiamo ora che si introduca una nuova
sorgente
• Evidentemente la semplice view che abbiamo
definito va integrata
• Nel caso più semplice si tratta di aggiungere in
unione un nuovo gruppo SELECT-FROM-WHERE
• È intuitivo capire che le definizioni delle view sono
in generale molto più complicate
31
Query processing in GAV
QUERY SULLO SCHEMA GLOBALE
SELECT CodiceP, CodiceV, Prezzo, Stock
FROM GLOB-PROD
WHERE Taglia = “V” AND Colore = “Rosso”
Si trasforma in maniera molto semplice in due query sulle sorgenti
SELECT Codice, CodVariante, Variante.Prezzo, DisponibilitàStock
FROM SORGENTE1.Prodotto, SORGENTE1.Variante
WHERE Codice = CodiceProdotto
SELECT Codice, 0, Prezzo, Q.tàMagazzino
FROM SORGENTE2.Prodotto
di queste si farà l’unione
32
16LAV
• Un mapping LAV è un insieme di asserzioni, una per
ogni elemento s di S
s qG
Perciò il contenuto di ogni sorgente è caratterizzato in
termini di una view qG sullo schema globale
• Va bene se lo schema globale è stabile, ad es. basato su un
modello d’impresa o su un’ontologia (v. seguito)
• Favorisce l’estensibilità del sistema: estendere con una nuova
sorgente vuol semplicemente dire aggiungere una nuova
asserzione (view)
• Query processing è molto più complesso
33
SORGENTE 1
Prodotto(Codice, Nome, Descrizione, Avvertenze, NoteParticolari, Categoria)
Variante(CodiceProdotto, CodVariante, Taglia, Colore, Nome, Descrizione,
DisponibilitàStock, Prezzo)
SORGENTE 2
Prodotto(Codice, Nome, Taglia, Colore, Descrizione,Tipo, Prezzo,Q.tàMagazzino)
SCHEMA GLOBALE
GLOB-PROD (CodiceP, CodiceV, Nome, Taglia, Colore, Descrizione,Categoria,
Prezzo, Stock)
In questo caso dobbiamo esprimere gli schemi delle sorgenti in termini
dello schema globale
34
17SCHEMA GLOBALE
GLOB-PROD (CodiceP, CodiceV, Nome, Taglia, Colore,
Descrizione,Categoria, Prezzo, Stock)
SORGENTE 2
Prodotto(Codice, Nome, Taglia, Colore, Descrizione,Tipo,
Prezzo,Q.tàMagazzino)
CREATE VIEW SORGENTE2.Prodotto AS
SELECT CodiceP AS Codice, Nome, Taglia, Colore,
Descrizione, Categoria as Tipo, Prezzo, Stock AS
Q.tàMagazzino
FROM GLOB-PROD
35
SCHEMA GLOBALE
GLOB-PROD (CodiceP, CodiceV, Nome, Taglia, Colore, Descrizione,Categoria, Prezzo,
Stock)
SORGENTE 1
Prodotto(Codice, Nome, Descrizione, Avvertenze, NoteParticolari, Categoria)
Variante(CodiceProdotto, CodVariante, Taglia, Colore, Nome, Descrizione,
DisponibilitàStock, Prezzo)
CREATE VIEW SORGENTE1.Prodotto AS
SELECT CodiceP AS Codice, ?Nome?, ?Descrizione?, ? Avvertenze ?,
?NoteParticolari?,Categoria
FROM GLOB-PROD
CREATE VIEW SORGENTE1. Variante AS
SELECT CodiceP AS CodiceProdotto, CodiceV as CodVariante, Taglia, Colore, Nome,
Descrizione, Stock as DisponibilitàStock, Prezzo)
FROM GLOB-PROD
N.B.: Manca informazione È UN LAVORO DIFFICILE 36
18Query processing in LAV
• Le query vengono espresse sullo schema globale
SELECT CodiceP, CodiceV, Prezzo, Stock
FROM GLOB-PROD
WHERE Taglia = “V” AND Colore = “Rosso”
• Le view specificano trasformazioni da globale a sorgente
CREATE VIEW SORGENTE1. Variante AS
SELECT CodiceP AS CodiceProdotto, CodiceV as
CodVariante, Taglia, Colore, Nome, Descrizione,
Stock as DisponibilitàStock, Prezzo)
FROM GLOB-PROD
• Problema: il mapping, cioè la definizione delle view, specifica la
trasformazione inversa di quella che ci serve
37
Query processing in LAV
- diversi modelli dei dati -
• Schema globale contenente, tra l’altro, una relazione binaria
COPPIA e due costanti Ann e Bill
• Due sorgenti maschio e femmina, con associate le view:
femmina(f) {f | coppia(f,m)}
maschio(m) {m | coppia(f,m)}
• Consideriamo due database sorgenti:
Femmina = {Ann} e Maschio ={Bill}
• La query Q = quali sono le coppie? Dovrebbe avere come risposta
{(Ann,Bill)}
• Problema: trovare la trasformazione che dà luogo a questa risposta
(il mapping specifica la trasformazione inversa di quella che ci
serve)
38
19Il nuovo contesto applicativo
• Un numero magari molto alto di (grandi) sorgenti di dati
• Dati generalmente molto variabili (es. WEB)
• Sorgenti di dati altamente eterogenee
• Sorgenti di dati mobili, transienti
• Utenti mobili
• Differenti livelli di strutturazione dei dati.
– Basi di dati basate su diversi modelli (relazionale,
oggetti…)
– Dati semistrutturati (XML, HTML,altri formati di
marcatura…)
– Dati completamente non strutturati (testi, immagini
etc…)
• Differenti terminologie e differenti contesti
39
Il nuovo contesto tecnologico
sistemi interconnessi da Internet
• World-Wide-Web: la più diffusa interfaccia per accedere
facilmente alle informazioni
• Sistemi eterogenei interconnessi, eventualmente con componenti
mobili
nuove tecnologie per la gestione dei dati
• data warehouse, data mining
40
20Sistemi eterogenei
• Un sistema di integrazione di dati fornisce una
interfaccia uniforme a una moltitudine di sorgenti
di dati eterogenee ed autonome, liberando l’utente
dal dover:
– Individuare le sorgenti di dati rilevanti al fine
della sua ricerca
– Interagire con ogni singola sorgente
– Combinare alla fine, manualmente, i risultati
estratti dalle singole sorgenti di dati
41
Principali problemi
• Eterogeneità delle sorgenti
• Schemi
• Modelli
• Sistemi
• Labilità delle connessioni
• Limitazioni di accesso alle sorgenti
• Sicurezza
• Privatezza
• Modellazione finale (relazioni tra le sorgenti)
• Schema globale
• Mediatori
• Peer-to-peer
• Espressione di interrogazioni e aggiornamenti
• Integrazione virtuale o materializzata
• Estrazione, pulitura
• Riconciliazione
• possibili inconsistenze tra diverse sorgenti
42
21Approccio con schema globale
(o mediato)
43
Varie sorgenti informative
esempio
BD UNIVERSITÀ (relazionale)
Department(dept_code,dept_name,budget)
Research_Staff(name,e_mail,dept_code,s_code)
FK dept_code REF Department, s_code REF Session
School_Member(name,school,year,e_mail)
Session(s_code,session_name,length,room_code)
FK room_code REF Room
Room(room_code,seats_number,notes)
44
22Altra fonte
Tax_Position source (XML)
45
Altra fonte
Computer_Science source (object oriented)
CS_Person(first_name,last_name)
Professor:CS_Person(belongs_to:Division,rank)
Student:CS_Person(year,takes:set,rank,e
_mail)
Division(description,address:Location)
Location(city,street,number,country)
Course(course_name,taught_by:Professor)
46
23Cosa fare?
• Reverse engineering degli schemi delle
fonti (ad es. in ER)
• Integrazione schemi ER
• Scelta del tipo di mapping (GAV, LAV,
GLAV)
• Definizione delle viste
• Definizione delle trasformazioni delle query
(dirette, inverse, entrambe)
47
Restano molti altri problemi
• Tolleranza della diversità (da impresa unica
fino a … Web) dati semistrutturati o non
strutturati
• Volatilità degli schemi (ove esistenti)
• Una possibile soluzione: eliminazione del
concetto di schema (globale)
48
24MEDIATORI
Un mediatore e’ un modulo software (a livello 7 ISO-
OSI) che utilizza la conoscenza implicita di alcuni
insiemi o sottoinsiemi di dati per creare informazione
per un livello superiore di applicazioni (Wiederhold)
La sua funzione principale e’ la fusione di oggetti
– raggruppare le informazioni sulla stessa entita’
del mondo reale
– rimuovere le ridondanze tra le diverse sorgenti
– risolvere le inconsistenze tra le diverse sorgenti
49
ESEMPIO DI ARCHITETTURA
A MEDIATORI
(TSIMMIS)
APPLICAZIONE 1 APPLICAZIONE 2
MEDIATORE 1 MEDIATORE 2
WRAPPER 1 WRAPPER 2 WRAPPER 3
SORGENTE DI SORGENTE DI SORGENTE DI
DATI 1 DATI 2 DATI 3
(RDBMS) (LOTUS NOTES) (WWW)
50
25WRAPPER (o traduttori)
• Convertono le interrogazioni in uno o piu’
comandi/interrogazioni comprensibili dalla specifica sorgente
• Possono estendere la possibilita’ di interrogazione di una
particolare sorgente
• Convertono i risultati dal formato nativo ad un formato
comprensibile all’applicazione
• La loro scrittura comporta un notevole sforzo realizzativo, ma
esistono strumenti che agevolano il lavoro (generatori di
wrapper)
51
Nozione di Wrapper
BookTitle Author Editor
The HTML J. Graham ...
Sourcebook
Computer A. Tannenbaum ...
Networks
Database R. Elmasri, ...
Systems S. Navathe
Wrapper Data on the
Web
S. Abiteboul,
P.Buneman, D.Suciu
…
database table(s)
HTML page (or XML docs)
52
26Esempio:
estrazione di informazioni da HTML
• Estrazione di informazioni
– Formato sorgente: plain text con marcatura HTML
(nessuna semantica)
– Formato di destinazione: tabella relazionale (p. es.
nidificata) o XML (si aggiunge struttura, cioè
semantica )
• Wrapper
– Pezzo di software che compie il passo di estrazione
– intuizione: usare regole di estrazione che sfruttano i
marcatori 53
Un processo complesso di estrazione
20-30KB di HTML
>10 attributes
54
with nesting
27Problemi
• I siti Web cambiano molto frequentemente
• Ogni cambio nel layout delle pagine può
far perdere senso alle regole di estrazione
• Mantenere a mano un wrapper progettato
ad hoc è molto costoso
• Meglio generatori automatici da utilizzare
con periodicità opportuna
55
Meglio generatori automatici...
• E’ possibile utilizzarli solo quando le
pagine hanno una certa regolarità
• Vanno bene per siti cosiddetti data intensive
• Molte pagine dinamiche dello stesso tipo
• Ad es. con base di dati sottostante
56
28Esempio libreria online
Books
Name Editions Editions
AuthorsTitle Description
Id Book Year Price Details
Details Year Price
Id Name #e1 #b1 1998 20$ First …
#a1 John Smith #e2 First Edition, Paperback
#b1 2000 30$ 1998 20$
Second …
Database Primer This book … #e3 #b2 1995 40$ First …
#a2 Paul Jones
John Smith Second Edition, Hard Cover 2000 30$
… … #e4 #b3 1999 30$ First …
#e5 #b4 1993 30$ null
Books
Computer Systems An undergraduate …
#e6
First Edition, Paperback
#b4 1999 45$
1995 40$
Second
Id Author Title Description
XML at Work A comprehensive #e7
… #b5 2000
First Edition, Paperback 50$ 1999 null
30$
#b1 #a1 Database Primer … … … … … …
#b2 #a1 Computer Systems null … 1993 30$
Paul Jones HTML and Scripts An useful HTML …
#b3 #a2 XML at Work Second…
Edition, Hard Cover
1999 45$
#b4 #a2 HTML and Script …
JavaScripts A must in … null 2000 50$
#b5 #a2 Java Script …
… …… … …… … … … …
Source Dataset 57
HTML Pages
Il problema della
ricerca dello schema
• Classe di Pagine
– Collezione di pagine generate dallo stesso script da
un dataset comune
– Pagine così tipicamente hanno la stessa struttura
• Ricerca dello Schema
– Dato un insieme di pagine HTML di esempio, appartenenti
alla stessa classe, trovare lo schema del dataset
(relazione?) nella base di dati sottostante
• Soluzione: Wrapper
– Struttura del dataset sottostante
– Regole di estrazione 58
29B
A E
C D F G H
Wrapper Output Database
First Edition,
…
1998 20$
This book …
Primer Second Edition,
John Smith 2000 30$
…
Computer An undergraduate First Edition,
Input HTML Sources
Systems … …
1995 40$
A comprehensive First Edition,
XML at Work 1999 30$
…
…
books.com books.com
null 1993 30$
John Smith HTML and Paul
An Jones
useful HTML
Paul Jones Second Edition,
Scripts
…
… 1999 45$
Database Primer XML at Work
JavaScripts
First Edition, Paperback, A must in … Edition,
First null Paperback,
2000 50$
… …
… … … … … …
Wrapper = Grammar
Target Schema
SET (
books.com TUPLE (A : #PCDATA;
#PCDATA B : SET (
( TUPLE ( C : #PCDATA;
( #PCDATA D : #PCDATA;
( #PCDATA )? E : SET (
( #PCDATA TUPLE ( F: #PCDATA;
#PCDATA )+ 59
G: #PCDATA;
)+… H: #PCDATA)))
Conclusioni
• Il problema dell’integrazione di dati non
trova una soluzione unica
• Gli approcci detti sopra non sono
alternativi, ma spesso convivono
• Quanto più complesso è il problema, tanto
meno precisa sarà la soluzione
• Vedremo approcci ancora più “loosely
coupled”
60
30Puoi anche leggere