Data integration: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
EnzoBot (discussione | contributi)
m Definizioni: urlmorto
FrescoBot (discussione | contributi)
m Bot: numeri di pagina nei template citazione
 
(9 versioni intermedie di 8 utenti non mostrate)
Riga 1:
La [[locuzione]] '''data integration''' si riferisce ai processi da attuare su [[dati]] provenienti da diverse sorgenti [[informazione|informative]] per fornire all'utente una visione unificata di quei dati.<ref name="refonelenzerini">{{Cita|Lenzerini, 2002}}.</ref>
{{Cita conferenza|autore=[[Maurizio Lenzerini]] |articolo=Data Integration: A Theoretical Perspective |titolo=PODS 2002 |anno=2002 |pp=233–246 |url=http://www.dis.uniroma1.it/~lenzerin/homepagine/talks/TutorialPODS02.pdf}}</ref>
 
== Storia ==
[[File:DataWarehouse.png|thumb|right|Figura 1: Semplice diagramma di un data warehouse. Il processo [[Extract, transform, load|ETL]] estrae informazioni dai database sorgenti, le trasforma e le carica nel data warehouse.]]
 
Riga 9 ⟶ 8:
Problemi nella combinazione di fonti di dati eterogenee, spesso identificati come silos di informazioni, attraverso una singola interfaccia per ''[[query]]'' esistettero per diverso tempo.
 
Nei primi [[anni ottanta]] del [[XX secolo]] i tecnici informatici cominciarono a progettare sistemi per l'interoperabilità di basi di dati eterogenee.<ref>{{Cita news|autore= John Miles Smith |titolo= Multibase: integrating heterogeneous distributed database systems |anno=1982 |rivista=AFIPS '81 Proceedings of the May 4–7, 1981, national computer conference |pp= 487–499487-499 |url=https://dl.acm.org/citation.cfm?id=1500483}}</ref>
Il primo sistema di integrazione dei dati guidato da metadati strutturati è stato progettato presso l'[[Università del Minnesota]] nel 1991 per Integrated Public Use Microdata Series (IPUMS). IPUMS impiegava un approccio in stile [[data warehouse]] che estrae, trasforma e carica i dati provenienti da sorgenti eterogenee in un'unica vista, affinché i dati diventino compatibili.<ref>{{Cita news|autore= [[Steven Ruggles]], J. David Hacker, and Matthew Sobek |titolo= Order out of Chaos: The Integrated Public Use Microdata Series |url= https://archive.org/details/sim_historical-methods_winter-1995_28_1/page/33 |anno=1995 |rivista=Historical Methods |volume=28 |pp= 33–3933-39}}</ref>
Rendendo interoperabili centinaia di basi di dati relative alla popolazione, IPUMS ha dimostrato la praticabilità di integrazione di dati su larga scala. L'approccio data warehouse offre un'architettura fortemente accoppiata, perché i dati sono già fisicamente riconciliati in un unico archivio interrogabile, in modo che di solito richieda poco tempo risolvere le ''query''.<ref>{{Cita news|autore= Jennifer Widom |titolo= Research problems in data warehousing |anno=1995 |rivista=CIKM '95 Proceedings of the fourth international conference on information and knowledge management |pp= 25–3025-30 |url=https://dl.acm.org/citation.cfm?id=221319}}</ref>
 
L'approccio data warehouse è meno realizzabile per insiemi di dati aggiornati frequentemente: ciò richiede la continua esecuzione del processo ''[[extract, transform, load]]'' (ETL) per la sincronizzazione. Difficoltà nascono anche nella costruzione di data warehouse quando si ha un'interfaccia di interrogazione solo su dati sintetizzati e non si ha accesso alla loro totalità.
Questo problema sorge frequentemente quando si integrano diversi servizi di interrogazione commerciale quali viaggi o applicazioni web con pubblicità classificata.
 
A partire dal 2009 l'andamento nella ''data integration'' ha l'accoppiamento tra dati fornendo un'interfaccia unificata per l'accesso ai dati in tempo reale attraverso uno schema intermedio, che consente alle informazioni di essere recuperate direttamente dalle basi di dati originali. Ciò è coerente con l'approccio [[SOAService-oriented architecture|Service Oriented Architecture]], popolare in quel momento.
Questo approccio si basa sulla mappatura tra lo schema intermedio e gli schemi delle fonti originali, trasformando una ''query'' in ''query'' specializzate sugli schemi specifici delle sorgenti originali. Tali mappature possono essere definite in due modi: con una mappatura dalle entità dello schema intermedio alle entità delle fonti originali (approccio "Global As View" (GAV)), o una mappatura dalle entità dei sorgenti originali alle entità dello schema intermedio (approccio "Local As View" (LAV)). Il secondo approccio richiede inferenze più sofisticate per risolvere interrogazioni sullo schema intermedio, ma rende più facile aggiungere nuove fonti di dati a uno (stabile) schema intermedio.
 
A partire dal 2010 una parte del lavoro di ricerca sull'integrazione dei dati si occupa del problema dell'integrazione semantica. Questo problema non riguarda il modo di strutturare l'architettura di integrazione, bensì il modo di risolvere i conflitti di semantica tra sorgenti di dati eterogenee. Per esempio: se due società fondono i loro database, alcuni concetti e definizioni nei rispettivi schemi, tipo "guadagni", hanno inevitabilmente significati diversi. In un database potrebbe significare profitti in euro (espressi in numero decimale), mentre nell'altro potrebbe rappresentare il numero di vendite (espresse in numero intero). Una strategia comune per la risoluzione di tali problemi implica l'uso di [[Ontologia (informatica)|ontologie]] che definiscano esplicitamente i termini dello schema e quindi aiutino a risolvere i conflitti semantici.
Questo approccio rappresenta l'integrazione dei dati basata su ontologie.
D'altra parte, il problema di combinare i risultati di ricerca da archivi bioinformatici differenti richiede benchmarking delle somiglianze calcolato a partire da diverse fonti di dati su un unico criterio, per esempio il valore predittivo positivo. Ciò abilita le diverse fonti a un confronto diretto, e possono essere integrate anche quando la natura degli esperimenti è distinta.<ref>{{Cita pubblicazione|url=http://shubhrasankar.tripod.com/cgi-bin/combiningMultisourceIEEE.pdf |rivista=IEEE Transactions on Biomedical Engineering |titolo=Combining Multi-Source Information through Functional Annotation based Weighting: Gene Function Prediction in Yeast|autore=Shubhra S. Ray|volume= 56 |pp=229–236229-236 | pmid=19272921 |anno=2009|numero=2 | doi=10.1109/TBME.2008.2005955}}</ref>
 
A partire dal 2011 ci si è resi conto che i metodi di modellazione dei dati attuali stavano imprimendo l'isolamento dei dati in ogni architettura sotto forma di isole di dati disparati e silos di informazioni. Questo isolamento dei dati è un artefatto involontario della metodologia di modellazione dati che provoca lo sviluppo di modelli di dati dissimili. Modelli di dati dissimili, quando stoccati in basi di dati, formano basi di dati dissimili. Modelli avanzati di dati sono stati sviluppati per eliminare l'artefatto e per promuovere lo sviluppo di modelli di dati integrati.<ref>{{Cita news|autore= Michael Mireku Kwakye |titolo= A Practical Approach To Merging Multidimensional Data Models |anno=2011 |url=https://hdl.handle.net/10393/20457 }}</ref><ref>{{Cita web |url=http://www.iri.com/pdf/RapidAce-Brochure.pdf |titolo=Rapid Architectural Consolidation Engine&nbsp;– The enterprise solution for disparate data models. |anno=2011 |accesso=5 dicembre 2016 |urlarchivio=https://web.archive.org/web/20150924040201/http://www.iri.com/pdf/RapidAce-Brochure.pdf |dataarchivio=24 settembre 2015 |urlmorto=sì }}</ref>
Riga 32 ⟶ 31:
== Descrizione ==
Questo processo si rivela importante in molteplici situazioni, nell'ambito sia commerciale (si pensi a due imprese che debbano unire i loro [[Base di dati|database]]) sia scientifico (per esempio, combinare risultati da diversi archivi [[Bioinformatica|bioinformatici]]).
La ''data integration'' compare con sempre maggior frequenza, allo stesso modo in cui sta esplodendo il volume e la necessità di condividere i dati esistenti.<ref name="DataExplode">{{Cita news |autore=Frederick Lane |titolo=IDC: World Created 161 Billion Gigs of Data in 2006 |anno=2006 |url=http://www.toptechnews.com/story.xhtml?story_id=01300000E3D0&full_skip=1 IDC:|accesso=5 Worlddicembre Created2016 161|dataarchivio=24 Billionfebbraio Gigs2012 of|urlarchivio=https://web.archive.org/web/20120224044826/http://www.toptechnews.com/story.xhtml?story_id=01300000E3D0&full_skip=1 Data|urlmorto=sì in 2006}}</ref>
Questa materia è diventata il centro di un ampio lavoro tecnico, e numerosi problemi aperti restano irrisolti.
 
Riga 50 ⟶ 49:
I database rimaneggiati supportano vincoli di omogeneità in cui l'integrità referenziale può essere forzata tra database. Inoltre questi database rimodellati forniscono vie di accesso ai dati progettati con omogeneità di valori tra database.
 
== Teoria dell'integrazione dei dati ==
La teoria dell'integrazione dei dati costituisce un sottoinsieme della teoria delle basi di dati e formalizza i concetti di fondo del problema attraverso la [[logica del primo ordine]].
Applicando le teorie dà indicazione circa la fattibilità e la difficoltà di integrazione. Nonostante le sue teorie possano apparire astratte, esse godono di sufficiente generalità per adattarsi a tutti i sistemi di integrazione,<ref>{{Cita web|url=https://link.springer.com/chapter/10.1007/3-540-46093-4_14 |titolo=A Model Theory for Generic Schema Management}}</ref> compresi quelli che includono relazionale nidificato o [[Database XML|basi di dati XML]]<ref>{{Cita web|url=http://www.vldb.org/conf/2006/p67-fuxman.pdf |titolo=Nested Mappings: Schema Mapping Reloaded }}</ref> e quelli che trattano i database come programmi<ref>{{Cita web|url=http://homepages.inf.ed.ac.uk/dts/pub/psi.pdf |titolo=The Common Framework Initiative for algebraic specification and development of software}}</ref>.
Le connessioni a particolari [[DBMS]] quali [[Oracle Database|Oracle]] o [[IBM DB2|DB2]] sono fornite dalle tecnologie a livello di implementazione, come [[JDBC]], e non sono studiate a livello teorico.
 
=== Definizioni ===
I sistemi di ''data integration'' sono formalmente definiti da una [[tripla (matematica)|tripla]] <math>\left \langle G,S,M\right \rangle</math> dove <math>G</math> è lo schema globale, <math>S</math> è l'insieme eterogeneo degli schemi sorgente, e <math>M</math> è la mappatura che associa ''query'' tra le sorgenti e lo schema globale. Entrambi <math>G</math> e <math>S</math> sono espresse in [[Linguaggio formale|linguaggio]] su alfabeti composti da simboli per ognuna delle rispettive [[Database relazionale|relazioni]]. La [[Predicato funzionale|mappatura]] <math>M</math> consiste di asserzioni tra ''query'' su <math>G</math> e ''query'' su <math>S</math>. Quando gli utenti pongono un'interrogazione sul sistema di ''data integration'', essi pongono interrogazioni su <math>G</math> e la mappatura sostiene le connessioni tra gli elementi nello schema globale e negli schemi sorgenti.
 
Un database su uno schema è definito come un insieme di insiemi, uno per ogni relazione (in un database relazionale). Il database corrispondente allo schema di origine <math>S</math> dovrebbe comprendere l'insieme di insiemi di tuple per ogni sorgente eterogenea ed è chiamato ''database sorgente''. Si noti che questo singolo database di origine potrebbe in realtà rappresentare una collezione di database disconnessi. Il database corrispondente allo schema virtuale intermedio <math>G</math> è chiamato ''database globale''. Il database locale deve soddisfare la mappatura <math>M</math> rispetto al database sorgente. La legittimità di questa mappatura dipende dalla natura della corrispondenza tra <math>G</math> e <math>S</math>. Esistono due modelli popolari per modellare questa corrispondenza: ''Vista Globale'' o GAV e ''Vista Locale'' o LAV.
Riga 70 ⟶ 69:
Consideriamo ancora che una delle fonti serva un sito web meteorologico: il progettista dovrebbe aggiungere allo schema globale elementi corrispondenti al meteo solo se non esistessero già. Poi i programmatori scriverebbero un [[Adapter pattern|adapter]] o un [[wrapper]] per il sito e aggiungerebbero una descrizione dello schema dei risultati del sito agli schemi sorgenti. La complessità di aggiungere nuove sorgenti si sposta dal progettista all'elaboratore di ''query''.
 
=== Elaborazione di ''query'' ===
La teoria dell'elaborazione di ''query'' in un sistema di ''data integration'' systems è comunemente espressa utilizzando interrogazioni congiuntive [[Linguaggio di interrogazione|interrogazioni]] e [[Datalog]], un linguaggio di [[programmazione logica]] puramente dichiarativo.<ref name="reffive">{{Cita conferenza|autore=[[Jeffrey D. Ullman]] |articolo=Information Integration Using Logical Views |titolo=ICDT 1997 |anno=1997 |pp=19–4019-40 |url=http://www-db.stanford.edu/pub/papers/integration-using-views.ps}}</ref> Si può liberamente pensare ad una query come una funzione logica applicata alle relazioni del database come "<math>f(A,B)</math> dove <math>A < B</math>". Se una tupla o insieme di tuple è sostituito nella regoleregola e la soddisfa (cioè la rende vera), allora consideriamo quella tupla parte dell'insieme di risposte alla ''query''. Mentre il linguaggi formali in stile [[Datalog]] esprimono queste ''query'' sinteticamente e senza ambiguità, anche le ''query'' [[SQL]] comuni contano come ''query'' congiuntive.
 
In termini di integrazione dei dati, il "contenimento delle ''query''" rappresenta un'importante proprietà delle ''query'' congiuntive. Una ''query'' <math>A</math> contiene un'altra ''query'' <math>B</math> (in simboli <math>A \supset B</math>) se i risultati di <math>B</math> sono un sottoinsieme dei risultati di <math>A</math> per ogni database. Le due ''query'' sono dette equivalenti se gli insiemi risultanti sono uguali per ogni database. Questo è importante perché in entrambi i sistemi GAV e LAV, un utente pone ''query'' congiuntive su uno schema virtuale rappresentato da un insieme di [[Vista (basi di dati)|viste]], o ''query'' congiuntive [[Vista materializzata |materializzate]]. L'integrazione si propone di riscrivere le ''query'' rappresentate dalle viste al fine di rendere i loro risultati equivalenti o al massimo contenuti nella richiesta del nostro utente. Ciò corrisponde al problema di rispondere a interrogazioni usando le viste.<ref name="refsix">{{Cita conferenza|autore=[[Alon Y. Halevy]] |articolo=Answering queries using views: A survey |titolo=The VLDB Journal |anno=2001 |pp=270–294270-294 |url=https://www.cs.uwaterloo.ca/~david/cs740/answering-queries-using-views.pdf}}</ref>
 
Nei sistemi GAV, un progettista scrive il codice del mediatore per definire la riscrittura delle ''query''. Ogni elemento nella ''query'' dell'utente corrisponde a una regola di sostituzione proprio come ogni elemento nello schema globale corrisponde a una ''query'' sulla sorgente. L'elaborazione delle ''query'' espande semplicemente i sotto-obiettivi della ''query'' dell'utente secondo le regole specificate nel mediatore, perciò la ''query'' risultante è probabile che sia equivalente. Mentre il progettista fa la maggior parte del lavoro in anticipo, alcuni sistemi GAV come [http://www-db.stanford.edu/tsimmis/ Tsimmis] comportano la semplificazione del processo di descrizione del mediatore.
Riga 81 ⟶ 80:
In generale, la complessità di riscrittura delle ''query'' è [[NP-completo]].<ref name="refsix" /> Se lo spazio delle riscritture è relativamente piccolo questo non rappresenta un problema — anche per sistemi di integrazione con centinaia di sorgenti.
 
== Strumenti per ''data integration'' ==
* Alteryx
* Analytics Canvas
Riga 102 ⟶ 101:
* [[SQL Server Integration Services|SQL Server Integration Services (SSIS)]]
* TMMData<ref>{{cita web|http://www.tmmdata.com|TMMData|lingua=en}}</ref>
* Data Ladder<ref>{{cita web|http://www.dataladder.com|Data Ladder|lingua=en}}</ref>
* WinPure<ref>{{cita web|https://www.winpure.com|WinPure|lingua=en}}</ref>
 
== ''Data integration'' nella vita scientifica ==
Interrogativi scientifici su larga scala, come il riscaldamento globale, la diffusione di specie infestanti e l'esaurimento delle risorse richiedono sempre più la raccolta di dati eterogenei per la meta-analisi. Questo tipo di integrazione è particolarmente impegnativa per i dati ambientali ed ecologici, perché gli standard sui metadati non concordati e ci sono molti tipi diversi di dati prodotti in questi campi. Le iniziative della [[National Science Foundation]] come Datanet hanno lo scopo di facilitare agli scienziati l'integrazione dei dati, fornendo infrastrutture informatiche e impostazioni standard.
Le cinque iniziative Datanet finanziate sono:
Riga 116 ⟶ 114:
Il progetto OpenPHACTS, finanziato attraverso l'Iniziativa su Medicinali Innovativi dell'[[Unione europea]], ha costruito una piattaforma di scoperta di nuovi farmaci collegando dataset da parte di fornitori come l'[[Istituto europeo di bioinformatica]], la [[Royal Society of Chemistry]], la [[UniProt]], WikiPathways e la [[DrugBank]].
 
== Note ==
<references/>
 
==Voci correlateBibliografia ==
* {{Cita conferenza|autore=[[Maurizio Lenzerini]] |articolo=Data Integration: A Theoretical Perspective |titolo=Proceedings of the twenty-first ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems|conferenza=PODS 2002 |anno=2002 |pp=233–246233-246|città=Madison, Wisconsin, USA|url=http://www.dis.uniroma1.it/~lenzerin/homepagine/talks/TutorialPODS02.pdf|doi=10.1145/543613.543644|cid=Lenzerini, 2002}}</ref>
 
== Voci correlate ==
* [[Base di dati]]
* [[Dato]]