No Slide Title - AServInt, Inc.

Download Report

Transcript No Slide Title - AServInt, Inc.

MetaQuest ODBC
™
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
May 7, 2007
Confidential
1
MetaQuest ODBC
™
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.
May 7, 2007
Confidential
2
MetaQuest ODBC
™
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.
May 7, 2007
Confidential
3
MetaQuest ODBC
™
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
May 7, 2007
Confidential
4
MetaQuest ODBC
™
What is ODBC?
Rochade Server/Database
User can use any ODBC compliant tool…
To access any ODBC data source…
MS Access
MS Excel
UDB Server/Database
Other tools…
Via an ODBC Driver
ODBC Interface
Oracle Server/Database
Oracle ODBC
Driver
UDB ODBC
Driver
May 7, 2007
MQ ODBC
Driver
Confidential
5
MetaQuest ODBC
™
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.
May 7, 2007
Confidential
6
MetaQuest ODBC
™
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…
May 7, 2007
Confidential
7
MetaQuest ODBC
™
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.
May 7, 2007
Confidential
8
MetaQuest ODBC
™
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.
May 7, 2007
Confidential
9
MetaQuest ODBC
™
How do we Expose Rochade as Relational
 Qualified Name – Exposed as “<Item-QName>” column.
 Last Update Date and Time – Exposed as “<Item-LastUpdate-TS>”.
 Last Update User – Exposed as “<Item-Last-UpdateUser>”.
 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.
May 7, 2007
Confidential
10
MetaQuest ODBC
™
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
May 7, 2007
Confidential
11
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
 ORA_DATABASE
ORA_DATABASE
 DEFINITION (text)
 DESCRIPTION (text)
 ORA_HAS-SCHEMA (namespace)
ORA_USER
ORA_TABLE
ORA_INDEX
ORA_COLUMN
Legend
Link
Namespace
May 7, 2007
Confidential
12
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
 ORA_USER




ORA_DATABASE
DEFINITION (text)
DESCRIPTION (text)
ORA_HAS-TABLE (namespace)
ORA_HAS-INDEX (namespace)
ORA_USER
ORA_TABLE
ORA_INDEX
ORA_COLUMN
Legend
Link
Namespace
May 7, 2007
Confidential
13
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
 ORA_TABLE




ORA_DATABASE
DEFINITION (text)
COMMENT (text)
ORA_INDEX (link)
ORA_HAS-COLUMN (namespace)
ORA_USER
ORA_TABLE
ORA_INDEX
ORA_COLUMN
Legend
Link
Namespace
May 7, 2007
Confidential
14
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
 ORA_INDEX




ORA_DATABASE
DEFINITION (text)
COMMENT (text)
ORA_UNIQUE (text)
ORA_USES-COLUMN (link)
ORA_USER
ORA_TABLE
ORA_INDEX
ORA_COLUMN
Legend
Link
Namespace
May 7, 2007
Confidential
15
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
 ORA_COLUMN




ORA_DATABASE
DEFINITION (text)
DESCRIPTION (text)
ORA_DATATYPE (text)
ORA_NULLS-ALLOWED (text)
ORA_USER
ORA_TABLE
ORA_INDEX
ORA_COLUMN
Legend
Link
Namespace
May 7, 2007
Confidential
16
MetaQuest ODBC
™
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
Standard derived column
names
May 7, 2007
DESCRIPTION ORA_DATATYPE ORA_NULLS-ALLOWED
derived column name to
support namespace
Confidential
17
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
ORA_DATABASE
Create table with same name.
ORA_DATABASE
ORA_USER
ORA_TABLE
ORA_INDEX
ORA_COLUMN
Legend
Legend
1 to Many
Link
1 to 1
Namespace
May 7, 2007
Confidential
18
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
ORA_DATABASE
ORA_USER
ORA_DATABASE
Create table with same name and also add
<PARENT~ORA_DATABASE> column.
ORA_USER
ORA_TABLE
ORA_INDEX
ORA_COLUMN
Legend
Legend
1 to Many
Link
1 to 1
Namespace
May 7, 2007
Confidential
19
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
ORA_DATABASE
ORA_DATABASE
ORA_USER
ORA_USER
ORA_TABLE
Create table with same name and also add
<JOIN~ORA_TABLE
<PARENT~ORA_USER> column.
~ORA_INDEX
~ORA_INDEX>
ORA_TABLE
ORA_INDEX
ORA_COLUMN
Legend
Legend
1 to Many
Link
1 to 1
Namespace
May 7, 2007
Confidential
20
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
ORA_DATABASE
ORA_DATABASE
ORA_USER
ORA_USER
ORA_TABLE
<JOIN~ORA_TABLE
~ORA_INDEX
~ORA_INDEX>
Since there’s a link
attribute, create
intersection table.
ORA_TABLE
ORA_INDEX
ORA_COLUMN
Legend
Legend
1 to Many
Link
1 to 1
Namespace
May 7, 2007
Confidential
21
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
ORA_DATABASE
ORA_DATABASE
ORA_USER
ORA_USER
ORA_TABLE
<JOIN~ORA_TABLE
~ORA_INDEX
~ORA_INDEX>
ORA_INDEX
Create table with same
name and also add
ORA_TABLE
<PARENT~ORA_USER
> column.
ORA_INDEX
ORA_COLUMN
Legend
<JOIN~ORA_INDEX
~ORA_USES-COLUMN
~ORA_COLUMN>
Legend
1 to Many
Link
1 to 1
Namespace
May 7, 2007
Confidential
22
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
ORA_DATABASE
ORA_DATABASE
ORA_USER
ORA_USER
ORA_TABLE
<JOIN~ORA_TABLE
~ORA_INDEX
~ORA_INDEX>
ORA_INDEX
ORA_TABLE
ORA_INDEX
ORA_COLUMN
Legend
<JOIN~ORA_INDEX
~ORA_USES-COLUMN
~ORA_COLUMN>
Since there’s a link attribute, create
intersection table.
Legend
1 to Many
Link
1 to 1
Namespace
May 7, 2007
Confidential
23
MetaQuest ODBC
™
Transformation of Oracle RIM to Relational
ORA_DATABASE
ORA_DATABASE
ORA_USER
ORA_USER
ORA_TABLE
<JOIN~ORA_TABLE
~ORA_INDEX
~ORA_INDEX>
ORA_INDEX
ORA_TABLE
ORA_INDEX
ORA_COLUMN
ORA_COLUMN
Legend
Create table with same name and also add
<JOIN~ORA_INDEX
<PARENT~ORA_TABLE> column.
~ORA_USES-COLUMN
~ORA_COLUMN>
Legend
1 to Many
Link
1 to 1
Namespace
May 7, 2007
Confidential
24
MetaQuest ODBC
™
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.
May 7, 2007
Confidential
25