L’ordine di questa sezione è dubbio, forse andava ad inizio capitolo o forse no.
Si parte come abbiamo detto da una serie di schemi separati in vari db, con modelli diversi. Posso avere anche file csv etc. . . Bisogna quindi raccogliere le varie informazioni e integrarle in un’unico dataset. Si hanno più tecnciche:
Nel capitolo si parla soprattutto di virtual data integration anche se spesso non specificato.
Il data integration è un è un’importante area di ricerca e business che ha lo scopo principale di consentire ad un utente un accesso uniforme a più fonti di dati autonome ed eterogenee, attraverso la presentazione di una visione unificata di questi dati. Trovare questa uniformità tra elementi eterogenei è complesso perché bisogna trovare differenze e somiglianze in ogni schema per potersi conformare. Bisogna quindi riconciliare tutte le eterogeneità di schema e di istanza.
Il vantaggio di architetture d’integrazione rispetto alle architetture federate è la capacità di gestire meglio le eterogeneità, soprattutto se complesse, a livello di schema. Inoltre i sistemi federati non possono gestire eterogeneità a livello di istanze a causa della qualità (accuratezza, incompletezza inconsistenza etc. . .) dei dati. D’altro canto nelle architetture federate si ha un livello di autonomia in poco più basso nel senso che nei modelli integrati si assume che si hanno sorgenti provenienti da chissà dove mentre nei sistemi federati i nodi sono scelti in modo più consapevole.
Si hanno due approcci principali alla data integration:
L’integrazione dei dati è il problema di combinare i dati che risiedono in diverse fonti e fornire all’utente una visione unificata di questi dati può quindi essere letteralmente definita come global virtual schema (GS).
Parto dai vari db coi vari modelli e schemi e creo un GS che ha un certo modello. Si hanno mapping tra i vari schemi e il GS e quindi l’utente può effettuare delle query passando per il GS e a runtime il GS capisce dove sono le informazioni richieste, converte il linguaggio di query in quello necessario per il db dove si trova l’informazione ed effettua la query (che viene eseguita localmente sul db). Sempre on the fly si risolvono i conflitti e viene restituito il risultato della query. Potrei avere anche integrazione pay as you go.
Si hanno quindi tre elementi fondamentali in un’architettura di integration:
Si hanno quindi due componenti fondamentali: