1 / 35

UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di laurea in Ingegneria I

Relatore Chiar.mo Prof. Sonia Bergamaschi. Tesi di Laurea di Mauro Verardi. UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di laurea in Ingegneria Informatica. Progetto MOMIS : I wrapper DB2/ODLi3 e Oracle/ODLi3. MOMIS:.

bethan
Download Presentation

UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di laurea in Ingegneria I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Relatore Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di Mauro Verardi UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di laurea in Ingegneria Informatica Progetto MOMIS : I wrapper DB2/ODLi3 e Oracle/ODLi3

  2. MOMIS: Mediator envirOnment for Multiple Information Sources Obiettivo: Realizzazione di uno strumento semi-automatico per l’integrazione di sorgenti eterogenee e distribuite Approccio adottato:semantico e virtuale Architettura di riferimento I3 (ARPA) Intelligent Integration of Information

  3. SERVIZI DI WRAPPING (I3) • Comunicazione • Trasformazione interfaccia delle chiamate • Gestione del traffico di eventi • Trasformazione di chiamate di metodi e funzioni • Ristrutturazione dei dati • Traslazione tra differenti formati di dati • Trasformazione di metadati • Trasformazione del Comportamento • Modifica della semantica • Modifica dei protocolli • Traslazione tra differenti linguaggi di manipolazione dati

  4. SERVIZI DI WRAPPING (I3) • Comunicazione • Trasformazione interfaccia delle chiamate • Gestione del traffico di eventi • Trasformazione di chiamate di metodi e funzioni • Ristrutturazione dei dati • Traslazione tra differenti formati di dati • Trasformazione di metadati • Trasformazione del Comportamento • Modifica della semantica • Modifica dei protocolli • Traslazione tra differenti linguaggi di manipolazione dati

  5. MOMIS: Mediator envirOnment for Multiple Information Sources

  6. MOMIS: Mediator envirOnment for Multiple Information Sources

  7. MOMIS: Mediator envirOnment for Multiple Information Sources

  8. MOMIS: Mediator envirOnment for Multiple Information Sources

  9. I WRAPPER NEL SISTEMA MOMIS: Interfaccia Wrapper • Implementato in JAVA • Oggetto CORBA • Dichiara le funzioni • String getDescription() • String getDescriptionXml() • String getSourceName() • WrapperRS runQuery() • String getType() Wrapper già disponibili in MOMIS: Wrapper XML Wrapper JDBC-ODBC-MS_Access Wrapper JDBC generico Wrapper Microsoft SQL Server

  10. LA TECNOLOGIA JDBC: Java DataBase Connectivity • Stabilire una connessione • Inviare query • Elaborare i risultati ottenuti Interfaccia DatabaseMetadata • Nomi delle tabelle • Nomi e tipi dei campi delle tabelle • Chiavi primarie • Foreign key API JAVA implementate dai Driver

  11. I DRIVER ORACLE/JDBC • JDBC OCI Client Side driver • JDBC Thin Client-Side driver • JDBC Thin Server-Side driver • JDBC Server-Side Internal driver

  12. I DRIVER ORACLE/JDBC • JDBC OCI Client Side driver • JDBC Thin Client-Side driver • JDBC Thin Server-Side driver • JDBC Server-Side Internal driver I DRIVER DB2/JDBC • DB2 Universal JDBC Driver • JDBC/SQLJ 2.0 Driver per OS/390 • DB2 JDBC Type 2 Driver for Linux,UNIX e Windows

  13. IL WRAPPER JDBC GENERICO MetodoSchema getSchema() • Nomi delle tabelle • Nomi e tipi dei campi delle tabelle MetodoType getAttributeType( int t ) per le traduzione da tipo JDBC a tipo ODLI3

  14. IL WRAPPER JDBC GENERICO MetodoSchema getSchema() • Nomi delle tabelle • Nomi e tipi dei campi delle tabelle CREATE TABLE TBL_AMBITI_CDS_SPECIFICI ( IDCds numeric(18, 0) NOT NULL, IDAttivita numeric(18, 0) NOT NULL, IDAmbitoSpecifico numeric(18, 0) NOT NULL, Denominazione varchar (100), CFU varchar (10)) ; ALTER TABLE TBL_AMBITI_CDS_SPECIFICI ADD CONSTRAINT PK_TBL_AMBITI_SPEC PRIMARY KEY (IDCds,IDAttivita,IDAmbitoSpecifico); ALTER TABLE TBL_AMBITI_CDS_SPECIFICI ADD CONSTRAINT FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS FOREIGN KEY (IDAttivita,IDCds) REFERENCES TBL_AMBITI_CDS (IdAttivita,IDCdS); interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI) { attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;}

  15. IL WRAPPER JDBC GENERICO MetodoType getAttributeType( int t ) Mapping tra tipi di dato JDBC e ODLI3

  16. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 MetodoSchema getSchema() • Nomi delle tabelle • Nomi e tipi dei campi delle tabelle • Chiavi primarie • Foreign key • Metodoboolean theTableShouldBeDescribed(String tableName) • per l‘esclusione delle tabelle di sistema • Data dictionary di Oracle • System catalog di DB2 MetodoType getAttributeType( int t ) per le traduzione da tipo JDBC a tipo ODLI3 ereditato dal wrapper JDBC generico

  17. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 MetodoSchema getSchema() CREATE TABLE TBL_AMBITI_CDS_SPECIFICI ( IDCds numeric(18, 0) NOT NULL, IDAttivita numeric(18, 0) NOT NULL, IDAmbitoSpecifico numeric(18, 0) NOT NULL, Denominazione varchar (100), CFU varchar (10)) ; ALTER TABLE TBL_AMBITI_CDS_SPECIFICI ADD CONSTRAINT PK_TBL_AMBITI_SPEC PRIMARY KEY (IDCds,IDAttivita,IDAmbitoSpecifico); ALTER TABLE TBL_AMBITI_CDS_SPECIFICI ADD CONSTRAINT FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS FOREIGN KEY (IDAttivita,IDCds) REFERENCES TBL_AMBITI_CDS (IdAttivita,IDCdS);

  18. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 MetodoSchema getSchema() interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDCDS,IDATTIVITA,IDAMBITOSPECIFICO) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA, IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} DB2/ODLI3 interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAMBITOSPECIFICO,IDATTIVITA, IDCDS) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA,IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} Oracle/ODLI3 interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAmbitoSpecifico, IDAttivita, IDCds) foreign_key FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS (IDAttivita, IDCds) references TBL_AMBITI_CDS (IdAttivita, IDCdS) ){ attribute double IDAmbitoSpecifico; attribute string Denominazione; attribute double IDCds; attribute double IDAttivita; attribute string CFU;} SQL_Server/ODLI3

  19. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 MetodoSchema getSchema() interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDCDS,IDATTIVITA,IDAMBITOSPECIFICO) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA, IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} DB2/ODLI3 interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAMBITOSPECIFICO,IDATTIVITA}, IDCDS) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA,IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} Oracle/ODLI3 interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAmbitoSpecifico, IDAttivita, IDCds) foreign_key FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS (IDAttivita, IDCds) references TBL_AMBITI_CDS (IdAttivita, IDCdS) ){ attribute double IDAmbitoSpecifico; attribute string Denominazione; attribute double IDCds; attribute double IDAttivita; attribute string CFU;} SQL_Server/ODLI3

  20. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 MetodoSchema getSchema() interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDCDS,IDATTIVITA,IDAMBITOSPECIFICO) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA, IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} DB2/ODLI3 interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAMBITOSPECIFICO,IDATTIVITA, IDCDS) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA,IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} Oracle/ODLI3 interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAmbitoSpecifico, IDAttivita, IDCds) foreign_key FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS (IDAttivita, IDCds) references TBL_AMBITI_CDS (IdAttivita, IDCdS) ){ attribute double IDAmbitoSpecifico; attribute string Denominazione; attribute double IDCds; attribute double IDAttivita; attribute string CFU;} SQL_Server/ODLI3

  21. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 MetodoSchema getSchema() interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDCDS,IDATTIVITA,IDAMBITOSPECIFICO) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA, IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} DB2/ODLI3 interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAMBITOSPECIFICO,IDATTIVITA, IDCDS) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA,IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} Oracle/ODLI3 interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAmbitoSpecifico, IDAttivita, IDCds) foreign_key FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS (IDAttivita, IDCds) references TBL_AMBITI_CDS (IdAttivita, IDCdS) ){ attribute double IDAmbitoSpecifico; attribute string Denominazione; attribute double IDCds; attribute double IDAttivita; attribute string CFU;} SQL_Server/ODLI3

  22. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 MetodoSchema getSchema() interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDCDS,IDATTIVITA,IDAMBITOSPECIFICO) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA, IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} DB2/ODLI3 interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAMBITOSPECIFICO,IDATTIVITA, IDCDS) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA,IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} Oracle/ODLI3 interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAmbitoSpecifico, IDAttivita, IDCds) foreign_key FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS (IDAttivita, IDCds) references TBL_AMBITI_CDS (IdAttivita, IDCdS) ){ attribute double IDAmbitoSpecifico; attribute string Denominazione; attribute double IDCds; attribute double IDAttivita; attribute string CFU;} SQL_Server/ODLI3

  23. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3

  24. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3

  25. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 Metodoboolean theTableShouldBeDescribed(String tableName) public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) TABLE_CAT String => table catalog (may be null) TABLE_SCHEM String => table schema (may be null) TABLE_NAME String => table name TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM". REMARKS String => explanatory comment on the table TYPE_CAT String => the types catalog (may be null) TYPE_SCHEM String => the types schema (may be null) TYPE_NAME String => type name (may be null) SELF_REFERENCING_COL_NAME String => name of the designated "identifier" column of a typed table (may be null) REF_GENERATION String => specifies how values in SELF_REFERENCING_COL_NAME are created. Values are "SYSTEM", "USER", "DERIVED". (may be null)

  26. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 Metodoboolean theTableShouldBeDescribed(String tableName) public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) TABLE_CAT String => table catalog (may be null) TABLE_SCHEM String => table schema (may be null) TABLE_NAME String => table name TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM". REMARKS String => explanatory comment on the table TYPE_CAT String => the types catalog (may be null) TYPE_SCHEM String => the types schema (may be null) TYPE_NAME String => type name (may be null) SELF_REFERENCING_COL_NAME String => name of the designated "identifier" column of a typed table (may be null) REF_GENERATION String => specifies how values in SELF_REFERENCING_COL_NAME are created. Values are "SYSTEM", "USER", "DERIVED". (may be null)

  27. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 Metodoboolean theTableShouldBeDescribed(String tableName) public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) TABLE_SCHEM String => table schema (may be null) TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM".

  28. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 Metodoboolean theTableShouldBeDescribed(String tableName) public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) TABLE_SCHEM String => table schema (may be null) TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM". getSchema() TABLE_TYPE = "TABLE"

  29. I WRAPPER SQL_SERVER/ODLI3, DB2/ODLI3, ORACLE/ODLI3 Metodoboolean theTableShouldBeDescribed(String tableName) public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) TABLE_SCHEM String => table schema (may be null) TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM". getSchema() TABLE_TYPE = "TABLE" MDSYS OLAPSYS SYS SYSTEM WKSYS XDB Oracle TABLE_SCHEM ≠ SYSIBM SYSTOOLS DB2 TABLE_SCHEM ≠

  30. I WRAPPER GUI

  31. I WRAPPER GUI

  32. I WRAPPER GUI Metodo getAllDatabase() • DB2 Universal Database per z/OS Database DSNDB06 Tabella SYSIBM.SYSDATABASE • DB2 Universal Database per Linux, Unix, Windows Comando “LIST DATABASE DIRECTORY” File <home_dir>/sqldbdir • Oracle Databasesu sistemi UNIX File /etc/oratab (/var/opt/oracle se sistemi Solaris ) • Oracle Databasesu sistemi Windows Registri di sistema HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOME_NAME\ORACLE_SID

  33. CONCLUSIONI WrapperJdbcCore_DB2Server WrapperJdbcCore_oracle DB2ServerWrapperGUI Metodo getAllDatabase() OracleServerWrapperGUI Metodo getAllDatabase()

  34. CONCLUSIONI WrapperJdbcCore_DB2Server WrapperJdbcCore_oracle DB2ServerWrapperGUI Metodo getAllDatabase() OracleServerWrapperGUI Metodo getAllDatabase() Oracle DBA Forum DUGI Listserv

  35. PROGETTO MOMIS: I WRAPPER DB2/ODLI3E ORACLE/ODLI3 Grazie per l’attenzione Mauro Verardi

More Related