250 likes | 405 Views
Overview. 2.0.0 Features What is ODBC? Why Create an ODBC Driver for Rochade? How do we Expose Rochade as Relational Transformation of Oracle RIM to Relational. 2.0.0 Features. Client Server architecture.
E N D
Overview • 2.0.0 Features • What is ODBC? • Why Create an ODBC Driver for Rochade? • How do we Expose Rochade as Relational • Transformation of Oracle RIM to Relational
2.0.0 Features • Client Server architecture. • Server runs on Linux, Unix or Windows – the same platforms as the Rochade Server. Push the SQL query workload onto the server where it belongs. • Data sources are defined at the Server level so all ODBC or JDBC clients use the same configuration. • ODBC client runs on Linux, Unix or Windows. • JDBC client runs Linux, Unix or Windows. Now you can easily code Java programs and use JDBC to retrieve your Rochade metadata. Create your entire Rochade Application using SQL if you prefer.
2.0.0 Features • Integration with WebAccess Discovery • Create discovery topic with MQ ODBC topic template. • Customize the result set for your needs. • Administration Console. • Allows the administrator to manage the server remotely via a Windows GUI. • Allows the administrator to remotely configure the server.
What is ODBC? Definition: (pronounced as separate letters) Short for Open DataBase Connectivity, a standard database access method developed by the SQL Access group in 1992. The goal of ODBC is to make it possible to access any data from any application, regardless of which database management system (DBMS) is handling the data. ODBC manages this by inserting a middle layer, called a database driver , between an application and the DBMS. The purpose of this layer is to translate the application's data queries into commands that the DBMS understands. For this to work, both the application and the DBMS must be ODBC-compliant -- that is, the application must be capable of issuing ODBC commands and the DBMS must be capable of responding to them. Since version 2.0, the standard supports SAG SQL. http://www.webopedia.com/TERM/O/ODBC.html
Oracle Server/Database UDB Server/Database Rochade Server/Database What is ODBC? User can use any ODBC compliant tool… To access any ODBC data source… MS Access MS Excel Other tools… Via an ODBC Driver ODBC Interface Oracle ODBC Driver UDB ODBC Driver MQ ODBC Driver
Why Create an ODBC Driver for Rochade? • Rochade Metadata is stored in a Rochade database: • Based on proprietary indexed flat files • Query language is proprietary and difficult to understand • Query language must be invoked via programming interface. • Query language doesn’t allow for join and predicate processing at the same time. • Query language doesn’t allow formatting of the result set.
Why Create an ODBC Driver for Rochade? • Open Rochade Metadata to Many Reporting Tools. • Various BI tools have • MS Access • MS Excel • Crystal Reports • Many more…
Why Create an ODBC Driver for Rochade? • Open Rochade Metadata to SQL. • Join linked or namespaced items together and display item attribute information. • Filter queries based on complex SQL predicates. • Select attributes to display in the result set • Sort based on any column in the result set • All standard SQL is available.
How do we Expose Rochade as Relational • Item Types – Exposed as Tables. • Text Attributes – Exposed as columns. • Value Attributes – Exposed as columns. • Binary Attributes – Don’t have solution yet. • Namespace Attributes – This is a 1 to many connection in Rochade, so it’s exposed as a column in the child table that points at the parent. • Link Attributes – This is a many to many connection in Rochade, so it’s exposed as an intersection table. • Item Name – Exposed as “<item-name>” column.
How do we Expose Rochade as Relational • Qualified Name – Exposed as “<Item-QName>” column. • Last Update Date and Time – Exposed as “<Item-Last-Update-TS>”. • Last Update User – Exposed as “<Item-Last-Update-User>”. • Create Date and Time – Exposed as “<Item-Create-TS>”. • Create User – Exposed as “<Item-Create-User>”. • Link Qualifier – Exposed as “<Link-Qualifier>” in the intersection table.
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Link Namespace Transformation of Oracle RIM to Relational • Start with one portion of the Oracle RIM. • Pick item types that have link and namespace attributes. • Pick some of the attributes.
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Link Namespace Transformation of Oracle RIM to Relational • ORA_DATABASE • DEFINITION (text) • DESCRIPTION (text) • ORA_HAS-SCHEMA (namespace)
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Link Namespace Transformation of Oracle RIM to Relational • ORA_USER • DEFINITION (text) • DESCRIPTION (text) • ORA_HAS-TABLE (namespace) • ORA_HAS-INDEX (namespace)
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Link Namespace Transformation of Oracle RIM to Relational • ORA_TABLE • DEFINITION (text) • COMMENT (text) • ORA_INDEX (link) • ORA_HAS-COLUMN (namespace)
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Link Namespace Transformation of Oracle RIM to Relational • ORA_INDEX • DEFINITION (text) • COMMENT (text) • ORA_UNIQUE (text) • ORA_USES-COLUMN (link)
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Link Namespace Transformation of Oracle RIM to Relational • ORA_COLUMN • DEFINITION (text) • DESCRIPTION (text) • ORA_DATATYPE (text) • ORA_NULLS-ALLOWED (text)
Transformation of Oracle RIM to Relational • ORA_COLUMN • DEFINITION (text) • DESCRIPTION (text) • ORA_DATATYPE (text) • ORA_NULLS-ALLOWED (text) Table Name: ORA_COLUMN <ITEM-NAME> <ITEM-ID> <PARENT~ORA_TABLE> DEFINITION DESCRIPTION ORA_DATATYPE ORA_NULLS-ALLOWED Standard derived column names derived column name to support namespace
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Legend 1 to Many 1 to 1 Link Namespace Transformation of Oracle RIM to Relational Create table with same name. ORA_DATABASE
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Legend 1 to Many 1 to 1 Link Namespace Transformation of Oracle RIM to Relational ORA_DATABASE Create table with same name and also add <PARENT~ORA_DATABASE> column. ORA_USER
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Legend 1 to Many 1 to 1 Link Namespace Transformation of Oracle RIM to Relational ORA_DATABASE ORA_USER Create table with same name and also add <PARENT~ORA_USER> column. ORA_TABLE <JOIN~ORA_TABLE ~ORA_INDEX ~ORA_INDEX>
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Legend 1 to Many 1 to 1 Link Namespace Transformation of Oracle RIM to Relational ORA_DATABASE ORA_USER Since there’s a link attribute, create intersection table. ORA_TABLE <JOIN~ORA_TABLE ~ORA_INDEX ~ORA_INDEX>
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Legend 1 to Many 1 to 1 Link Namespace Transformation of Oracle RIM to Relational ORA_DATABASE ORA_USER Create table with same name and also add <PARENT~ORA_USER> column. ORA_TABLE <JOIN~ORA_TABLE ~ORA_INDEX ~ORA_INDEX> ORA_INDEX <JOIN~ORA_INDEX ~ORA_USES-COLUMN ~ORA_COLUMN>
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Legend 1 to Many 1 to 1 Link Namespace Transformation of Oracle RIM to Relational ORA_DATABASE ORA_USER ORA_TABLE <JOIN~ORA_TABLE ~ORA_INDEX ~ORA_INDEX> ORA_INDEX Since there’s a link attribute, create intersection table. <JOIN~ORA_INDEX ~ORA_USES-COLUMN ~ORA_COLUMN>
ORA_DATABASE ORA_USER ORA_TABLE ORA_INDEX ORA_COLUMN Legend Legend 1 to Many 1 to 1 Link Namespace Transformation of Oracle RIM to Relational ORA_DATABASE ORA_USER ORA_TABLE <JOIN~ORA_TABLE ~ORA_INDEX ~ORA_INDEX> ORA_INDEX Create table with same name and also add <PARENT~ORA_TABLE> column. <JOIN~ORA_INDEX ~ORA_USES-COLUMN ~ORA_COLUMN> ORA_COLUMN
Transformation of Oracle RIM to Relational What’s the structure of the intersection tables from the previous slide? • <JOIN~ORA_TABLE~ORA_INDEX~ORA_INDEX> • <PEER~ORA_TABLE~ORA_INDEX> - Contains the item ID of the ORA_TABLE table row. • <PEER~ORA_INDEX~ORA_INDEX> - Contains the item ID of the ORA_INDEX table row. • <LINK-QUALIFIER> - Contains the link qualifier text for the link. • <JOIN~ORA_INDEX~ORA_USES-COLUMN~ORA_COLUMN> • <PEER~ORA_INDEX~ORA_USES-COLUMN> - Contains the item ID of the ORA_INDEX table row. • <PEER~ORA_COLUMN~ORA_USES-COLUMN> - Contains the item ID of the ORA_COLUMN table row. • <LINK-QUALIFIER> - Contains the link qualifier text for the link.