Corso di Laurea Specialistica in Ingegneria Informatica Corso
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea...
-
Upload
piera-gambino -
Category
Documents
-
view
218 -
download
1
Transcript of Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea...
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 REALIZZAZIONEDEL PACKAGE MOMISQUERY MANAGER
SU ORACLE EXPRESS
2
SOMMARIO
• Il sistema MOMIS
• Il modulo Query Manager
• Database di supporto
• ORACLE
• Conclusioni
3
MOMIS (Mediator EnvirOment for Multiple Information
Sources) Sistema per l’integrazione intelligente di sorgenti di dati
eterogenee strutturate e semi-strutturate.
Obiettivo: Integrare le informazioni fornendo uno schema concettuale globale che consenta all’utente di sottomettere una query e di ricevere una risposta unificata.
Global Schema(GS)
Mapping
RDB OODB file XML
LocalSchema
LocalSchema
LocalSchema
Query
4
AZIENDA
INDIRIZZO
CATEGORIA
NOME
TELEFONO
COMPANY
ADDRESS
CATEGORY
ABOUTUS
NAME
TEL
COMPANY
ADDRESS
DESCRIPTION
COMPANYNAME
PHONE
DB1 DB2 DB3
GSCOMPANY
ADDRESS
CATEGORY
DESCRIPTION
NAME
PHONE
CLASSILOCALI
CLASSEGLOBALE
MAPPINGTABLES
5
MOMIS – Architettura
Data level
WrapperWrapper
RelationalSource
RelationalSource
WrapperWrapper
XMLSourceXMLSource
WrapperWrapper
ObjectSource
ObjectSource
WrapperWrapper
genericSource
genericSource
legenda
CORBA Object
User
GUI
Software tools
CORBA interactionUser interaction
WordNetWordNet
Service level
ODB-ToolsODB-ToolsGlobal Schema
METADATA REPOSITORYGlobal Schema
METADATA REPOSITORY
Global Schema Builder
QueryManagerQueryManager
• SLIM WordNet interaction• SIM ODB-Tools validation • ARTEMIS Clustering• TUNIM Map. table tuning
• SLIM WordNet interaction• SIM ODB-Tools validation • ARTEMIS Clustering• TUNIM Map. table tuning
SI-Designer
MOMIS mediator
creates
UserUser
Application
IntegrationDesigner
IntegrationDesigner
USER level
6
QUERY MANAGER
1. Riceve in input una query dall’utente (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 all’utente la risposta
E’ il modulo di gestione delle interrogazioni
Cos’è?
Come funziona?
7
QM - Architettura
8
ESECUZIONE QUERY (1)
COMPANY
ADDRESS
CATEGORY
DESCRIPTION
NAME
PHONE
AZIENDA
INDIRIZZO
CATEGORIA
NOME
TELEFONO
COMPANY
ADDRESS
CATEGORY
ABOUTUS
NAME
TEL
SELECT NAME, ADDRESS, DESCRIPTIONFROM COMPANYWHERE DESCRIPTION LIKE ‘IMPORT’
SELECT NAME, ADDRESS, ABOUTUSFROM COMPANYWHERE ABOUTUS LIKE ‘IMPORT’
SELECT COMPANYNAME, ADDRESS, DESCRIPTIONFROM COMPANYWHERE DESCRIPTION LIKE ‘IMPORT’
COMPANY
ADDRESS
DESCRIPTION
COMPANYNAME
PHONE
DB1DB2
DB3
GS
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 un’operazione di FULL OUTER JOIN, eseguendo la mapping query
include tutti i record da entrambe le tabelle coinvolteunendo quelli che hanno lo stesso join attribute
COMPANY_DB2_COMPANY
ADDRESS CATEGORY ABOUTUS NOME TEL
Bologna 586 Import CASTORAMA 0516113011
London 101 Import RAMOTEX 880-5-801466
COMPANY_DB3_COMPANY
ADDRESS DESCRIPTION COMPANYNAME PHONE
Milano Import RAMOTEX 0828015393
null Import Koramsa Corp +502 4396868
RESULT SET dopo il FULL OUTER JOIN
NOME_1 NOME_2 ADDRESS_1 ADDRESS_2 DESCRIPTION_1 DESCRIPTION_2
CASTORAMA null Bologna null Import null
RAMOTEX RAMOTEX London Milano Import Import
null Koramsa Corp null null null Import
10
ESECUZIONE QUERY (3)
Il Result Set viene raffinato per poi essere inserito nella tabella globale temporanea e visualizzato all’utente tramite la final query RESULT SET dopo il FULL OUTER JOIN
NOME_1 NOME_2 ADDRESS_1 ADDRESS_2 DESCRIPTION_1 DESCRIPTION_2
CASTORAMA null Bologna null Import null
RAMOTEX RAMOTEX London Milano Import Import
null Koramsa Corp null null null Import
COMPANY
ADDRESS CATEGORY DESCRIPTION NAME PHONE
Bologna null Import CASTORAMA null
London null Import RAMOTEX null
null null Import Koramsa Corp null
L’integrazione effettuata da MOMIS è VIRTUALE:
i dati rimangono sempre nelle sorgenti, gli unici che vengono copiati sono quelli necessari alla risoluzione della query globale
NAME ADDRESS DESCRIPTION
CASTORAMA Bologna Import
RAMOTEX London Import
Koramsa Corp null Import
FINAL QUERY
Resolution Function
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
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 l’80% del market share
ORACLE e MOMIS ??
13
MODULARITA’
• Codice di MOMIS scritto per un particolare database di supporto
Obiettivo: consentire all’utente la scelta del database per il QM
• L’implementazione 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 metodiDBMS
SQLServer Oracle
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
DIFFERENZE IMPLEMENTATIVE
• Oracle non supporta identificativi con più di 30 caratteri
DBMS
SQLServer Oracle
public String AccorciaNome(String nome) { return nome;}
public String AccorciaNome(String nome) { if (nome.length()>30)
nome = nome.substring(0,26); return nome;}
• L’uso 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 ancheTableName, 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 numericiSELECT……..FROM table1 T………….
SELECT……FROM table1 as T………..
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