10. Motivazioni Non essere obbligati a una spesa consistente per l’utilizzo di un software proprietario. Agevolare utenti inesperti nella realizzazione dello scambio. Le applicazioni in grado di risolvere il problema sono, in parte, ancora in fase di sviluppo.
11. Data Exchange: Strutture note Corrispondenza: coppia attributo sorgente – attributo destinazione Path primari: identificano univocamente una tabella dello schema relazionale. NRI: consentono di risolvere i vincoli che intercorrono tra gli attributi di tabelle appartenenti allo stesso schema. Relazioni logiche: effettuano un raggruppamento in blocchi (Tableau) delle tabelle che sono in relazione tra loro secondo regole ben precise, sfruttano le NRI. Scheletri: sono coppie del tipo <Relazione Logica Sorgente, Relazione Logica Destinazione>; di fatto sono alla base del meccanismo di Data Exchange.
16. Risoluzione delle corrispondenze - 1 Scheletri: Consentono l’associazione tra gli elementi dei due schemi. Contengono le informazioni necessarie per la generazione delle query. Uno scheletro minore candidato per la ricopertura di una corrispondenza contiene al suo interno i due attributi specificati nella corrispondenza. Lo scheletro finale, scelto dall’algoritmo, sarà quello che ricopre più corrispondenze possibili. Una corrispondenza non coperta è errata.
17. Risoluzione delle corrispondenze – 2 Scheletri generati: 1. <<S1>,<T1>> 2. <<S1>,<T1,T2>> 3. <<S1,S2>,<T1>> 4. <<S1,S2>,<T1,T2>> 5. <<S1,S2,S4>,<T1>> 6. <<S1,S2,S4>,<T1,T2>> 7. <<S1,S3>,<T1>> 8. <<S1,S3>,<T1,T2>> Corrispondenze immesse: 1. S1 -> T1 Scheletro Candidato Minore: 1 2. S4 -> T1 Scheletro Candidato Minore: 5 3. S3 -> T2 Scheletro Candidato Minore: 8 Soluzione proposta dall’algoritmo: Le corrispondenze 1 e 2 sono entrambe ricoperte dallo scheletro 5 La corrispondenza 3 è ricoperta dallo scheletro 8
19. Join inverso - 2 Problema complesso: inserimento di attributi all’interno di diverse tabelle destinazione appartenenti allo stesso blocco. Necessaria un’operazione di Join Inverso Problematiche: SQL non supporta un comando che realizza un’operazione di join inverso. L’implementazione del codice varia a seconda della casistica analizzata.