MetaMatrix Concepts

Virtual Databases



What is a VDB?

A virtual database is a container for components used to integrate data from multiple data sources, so that they can be accessed in a federated manner through a single, uniform API.

A VDB contains models, which define the structural characteristics of data sources, views, and Web services.


VDB Internals Figure

How is a VDB Defined?

If you are using MetaMatrix Query, you define a VDB using the MMShell command line tool. This tool allows you to define the data sources to be integrated, import metadata and statistics from the sources, and test SQL queries against your VDB before deploying it to your application

If you are using MetaMatrix Dimension or MetaMatrix Enterprise, you define a VDB using the MetaMatrix Designer graphical user interface. This Eclipse-based tool lets you not only define source models and import metadata and statistics from them, but also allows you to define relational and XML views on top of those sources. This allows you to abstract the structure of the information you expose to and use in your applications from the underlying physical data structures.


VDB Validation

VDBs can contain one or more models representing the information to be integrated and exposed to consuming applications. Models must be in a valid state in order for the VDB to be used for data access. Validation of a single model means that it must be in a self-consistent and complete state, meaning that there are no "missing pieces" and no references to non-existent entities. Validation of multiple models checks that all inter-model dependencies are present and resolvable.

A VDB must always be in a complete state, meaning that all information is contained within the VDB itself -- there are no external dependencies.


Deploying a VDB for Data Access

After a VDB is defined, it must be deployed to the MetaMatrix query engine to be accessed.


Query Engine with VDB Figure

The deployment mechanism varies by product.


  • In MetaMatrix Query, the VDB is automatically deployed to the query engine when using the MMShell tool. When MetaMatrix Query is deployed to your application, the VDB will be accessible via JDBC and SQL

  • In MetaMatrix Dimension, a VDB is also automatically deployed to the query engine inside the MetaMatrix WAR file when you have finished designing your Web services. Once this WAR is deployed to a Web server, your Web service it will be accessible via SOAP

  • In MetaMatrix Enterprise, a VDB is deployed to the MetaMatrix Server using the MetaMatrix Console. Once this is done, the VDB is accessible via JDBC, ODBC, and SOAP.

Accessing Multiple Sources Through a VDB

You access a VDB through the MetaMatrix query engine, which is used in all MetaMatrix's data services products: Query, Dimension (Web services engine), and Enterprise Server.

Once deployed, your VDB can be accessed through:

  • JDBC-SQL for MetaMatrix Query
  • SOAP (Web Services) for MetaMatrix Dimension
  • JDBC/ODBC/SOAP-SQL/XQuery or SOAP (Web Services) for Enterprise Server

VDBs and Connector Bindings

VDBs contain two primary varieties of model types - source and view. Source models represent the structure and characteristics of physical data sources, whereas view models represent the structure and characteristics of abstract structures you want to expose to your applications.

Source models must be associated with a single connector binding. It is possible that multiple models may use the same binding, but each model must have a binding. The connector binding provides the connectivity to the source for the query engine when it is executing federated queries against multiple sources.

You can define connector bindings in the MetaMatrix Designer if you are using MetaMatrix Dimension or MetaMatrix Enterprise. Alternatively, if you are using MetaMatrix Query, bindings are automatically created "under the hood" when you add a source of a specific supported data source.

Any passwords required by bindings for connecting to sources are stored in encrypted form.

Once defined, connector bindings are stored with a VDB, so that when a VDB is exchanged, the existing bindings can be used.


VDB Execution in MetaMatrix Designer

VDBs can be tested in MetaMatrix Designer by issuing SQL queries in the VDB Execution perspective. In this way, you can iterate between defining your integration models and testing them out to see if they are yielding the expected results.

Your VDB must have connector bindings associated with all source models in order to be executable. You can define the bindings for each source model in the Designer.


VDB File Formats

VDBs are stored in an archive file format, similar to a standard Java JAR format.

VDB archive files can be exchanged. A VDB created in MetaMatrix Query can be opened in the MetaMatrix Dimension or MetaMatrix Enterprise Designer. Similarly, a VDB defined in MetaMatrix Dimension or Enterprise can be used in any other MetaMatrix product.

If you are using MetaMatrix Enterprise, VDBs can be exported from the MetaMatrix Enterprise Console and subsequently re-imported into another Console, or opened in Designer.

PASSWORDS
Because passwords are encrypted in MetaMatrix, and different installations will typically have different encryption keystores, opening a VDB from a different MetaMatrix product or installation will usually require re-entry of connector binding connection passwords.