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 1
Integrazione 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 2
NEI 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 3
Base 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 4
Viste • 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 5
Integrazione 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 6
Analisi 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 7
Analisi 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 8
Analisi 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 9
Basi 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 10
Se 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 11
Ipotesi 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 12
GAV (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 13
Mapping 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 14
Esempio 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 15
GAV • 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 16
LAV • 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 17
SCHEMA 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 18
Query 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 19
Il 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 20
Sistemi 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 21
Approccio 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 22
Altra 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 23
Cosa 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 24
MEDIATORI 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 25
WRAPPER (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 26
Esempio: 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 27
Problemi • 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 28
Esempio 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 29
B 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 30
Puoi anche leggere