Introduzione all'integrazione dei dati

Pagina creata da Roberto Stella
 
CONTINUA A LEGGERE
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