15
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 MOMISQUERY MANAGER SU ORACLE EXPRESS

Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

Embed Size (px)

Citation preview

Page 1: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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

Page 2: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

2

SOMMARIO

• Il sistema MOMIS

• Il modulo Query Manager

• Database di supporto

• ORACLE

• Conclusioni

Page 3: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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

Page 4: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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

Page 5: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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

Page 6: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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?

Page 7: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

7

QM - Architettura

Page 8: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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

Page 9: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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

Page 10: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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

Page 11: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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

Page 12: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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 ??

Page 13: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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

Page 14: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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………..

Page 15: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Relatore: Prof.ssa

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