Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoPiera Gambino Modificato 11 anni fa
1
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa Sonia Bergamaschi Correlatore: Ing. Alberto Corni Candidato: Luca Sculco Anno Accademico 2007/2008 PROGETTO E REALIZZAZIONE DEL PACKAGE MOMIS QUERY MANAGER SU ORACLE EXPRESS
2
2 SOMMARIO Il sistema MOMIS Il modulo Query Manager Database di supporto ORACLE Conclusioni
3
3 MOMIS (Mediator EnvirOment for Multiple Information Sources) Sistema per lintegrazione intelligente di sorgenti di dati eterogenee strutturate e semi-strutturate. Obiettivo: Integrare le informazioni fornendo uno schema concettuale globale che consenta allutente di sottomettere una query e di ricevere una risposta unificata. Global Schema (GS) Mapping RDBOODBfile XML Local Schema Query
4
4 AZIENDA INDIRIZZO CATEGORIA NOME TELEFONO COMPANY ADDRESS CATEGORY ABOUTUS NAME TEL COMPANY ADDRESS DESCRIPTION COMPANYNAME PHONE DB1DB2DB3 GS COMPANY ADDRESS CATEGORY DESCRIPTION NAME PHONE CLASSI LOCALI CLASSE GLOBALE MAPPING TABLES
5
5 MOMIS – Architettura Data level Wrapper Relational Source Relational Source Wrapper XML Source XML Source Wrapper Object Source Object Source Wrapper generic Source generic Source legenda CORBAObject User GUI Software tools CORBA interaction User interaction WordNet Service level ODB-Tools ODB-Tools Global Schema METADATA REPOSITORY Global Schema METADATA REPOSITORY Global Schema Builder QueryManager SLIMWordNet interaction SIMODB-Tools validation ARTEMISClustering TUNIMMap. table tuning SLIMWordNet interaction SIMODB-Tools validation ARTEMISClustering TUNIMMap. table tuning SI-Designer MOMISmediator creates User Application Integration Designer Integration Designer USERlevel
6
6 QUERY MANAGER 1.Riceve in input una query dallutente (query globale) 2.Grazie ad ODB-Tools ed alle mapping tables scompone la query globale in sotto-query (query locali) che interrogano le sorgenti 3.Memorizza i risultati delle query locali in un database di supporto 4.Unisce i risultati parziali e fornisce allutente la risposta E il modulo di gestione delle interrogazioni Cosè? Come funziona?
7
7 QM - Architettura
8
8 ESECUZIONE QUERY (1) COMPANY ADDRESS CATEGORY DESCRIPTION NAME PHONE AZIENDA INDIRIZZO CATEGORIA NOME TELEFONO COMPANY ADDRESS CATEGORY ABOUTUS NAME TEL SELECT NAME, ADDRESS, DESCRIPTION FROM COMPANY WHERE DESCRIPTION LIKE IMPORT SELECT NAME, ADDRESS, ABOUTUS FROM COMPANY WHERE ABOUTUS LIKE IMPORT SELECT COMPANYNAME, ADDRESS, DESCRIPTION FROM COMPANY WHERE DESCRIPTION LIKE IMPORT COMPANY ADDRESS DESCRIPTION COMPANYNAME PHONE DB1 DB2 DB3 GS
9
ESECUZIONE QUERY (2) Appena il QM inizia la sua esecuzione crea sul database di supporto delle tabelle che rispecchiano tutte le classi globali e locali I risultati ottenuti dalle query locali sono inseriti nelle rispettive tabelle locali temporanee Sulle tabelle in cui sono stati inseriti i dati, si effettua unoperazione di FULL OUTER JOIN, eseguendo la mapping query include tutti i record da entrambe le tabelle coinvolte unendo quelli che hanno lo stesso join attribute COMPANY_DB2_COMPANY ADDRESSCATEGORYABOUTUSNOMETEL Bologna586ImportCASTORAMA0516113011 London101ImportRAMOTEX880-5-801466 COMPANY_DB3_COMPANY ADDRESSDESCRIPTIONCOMPANYNAMEPHONE MilanoImportRAMOTEX0828015393 nullImportKoramsa Corp+502 4396868 RESULT SET dopo il FULL OUTER JOIN NOME_1NOME_2ADDRESS_1ADDRESS_2DESCRIPTION_1DESCRIPTION_2 CASTORAMAnullBolognanullImportnull RAMOTEX LondonMilanoImport nullKoramsa Corpnull Import
10
10 ESECUZIONE QUERY (3) Il Result Set viene raffinato per poi essere inserito nella tabella globale temporanea e visualizzato allutente tramite la final query RESULT SET dopo il FULL OUTER JOIN NOME_1NOME_2ADDRESS_1ADDRESS_2DESCRIPTION_1DESCRIPTION_2 CASTORAMAnullBolognanullImportnull RAMOTEX LondonMilanoImport nullKoramsa Corpnull Import COMPANY ADDRESSCATEGORYDESCRIPTIONNAMEPHONE BolognanullImportCASTORAMAnull LondonnullImportRAMOTEXnull ImportKoramsa Corpnull Lintegrazione effettuata da MOMIS è VIRTUALE: i dati rimangono sempre nelle sorgenti, gli unici che vengono copiati sono quelli necessari alla risoluzione della query globale NAMEADDRESSDESCRIPTION CASTORAMABolognaImport RAMOTEXLondonImport Koramsa CorpnullImport FINAL QUERY Resolution Function
11
11 DATABASE DEL QM Il DBMS di supporto scelto dai progettisti di MOMIS è stato Microsoft SQLServer VINCOLI: DBMS COMMERCIALE PIATTAFORMA WINDOWS Obiettivo di sviluppo : rendere MOMIS un software opensource e aumentarne la portabilità! PostgreSQL : DBMS opensource il FULL OUTER JOIN funziona solo se i 2 flussi di dati da unire sono ordinati Oracle : DBMS commerciale, senza vincoli di piattaforma
12
12 ORACLE EXPRESS XE è la versione free del più diffuso RDBMS commerciale ORACLE Edition con alcuni limiti, ma per il resto analoga e perfettamente compatibile con le altre versioni Piattaforme supportate da Oracle: –Linux –Windows –Solaris –HP –IBM –Mac E il numero 1 su Linux con oltre l80% del market share ORACLE e MOMIS ??
13
13 MODULARITA Codice di MOMIS scritto per un particolare database di supporto Obiettivo : consentire allutente la scelta del database per il QM Limplementazione degli statement SQL non sempre è perfettamente aderente allo standard e soprattutto DBMS differenti possono presentare dialetti differenti Aggiunta nel codice di una gerarchia di classi, con la classe padre astratta e le classi figlie, che rappresentano i gestori dei DBMS, che specializzano i metodi DBMS SQLServerOracle Quando si deciderà di effettuare un ulteriore porting, sarà sufficiente inserire tra i figli della gerarchia DBMS, il modulo del nuovo DBMS contenente i metodi correttamente specializzati Nuovo DBMS
14
14 DIFFERENZE IMPLEMENTATIVE Oracle non supporta identificativi con più di 30 caratteri DBMS SQLServerOracle public String AccorciaNome(String nome) { return nome; } public String AccorciaNome(String nome) { if (nome.length()>30) nome = nome.substring(0,26); return nome; } Luso delle virgolette negli identificativi Tipi di dato per i valori numerici Alias di tabella nella clausola FROM Se chiamiamo una tabella TableName il suo identificativo può essere TableName o anche TableName, rispettando il case Se chiamiamo una tabella TableName il suo unico identificativo è TableName Per definire i valori numerici si usano: INT, FLOAT e DECIMAL Usa il tipo di dato NUMBER per definire tutti i valori numerici SELECT…….. FROM table1 T …………. SELECT…… FROM table1 as T ………..
15
15 CONCLUSIONI Creazione della gerarchia DBMS Aggiunta del modulo ORACLE Revisione del codice del Query Manager Sviluppi futuri: Perfezionamento del modulo ORACLE Aggiunta di ulteriori DBMS di supporto, in particolare open source
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.