OLE DB Programmer's Reference

Introduction to OLE DB for OLAP

OLE DB for OLAP is designed as an extension of OLE DB that allows you to access both relational and multidimensional data stores. A relational data store stores data that is logically related and exposes it as a set of two-dimensional tables; a multidimensional data store stores the data in inherently multidimensional structures.

The following illustration shows this extension of the OLE DB architecture. The consumer can use the OLE DB resources in the COM or COM+ environment to connect to an OLAP-specific provider, following the typical OLE DB architectural model.

OLE DB for OLAP leverages the OLE DB object model and defines specific interfaces that enable representation, expression, transportation, and efficient navigation of multidimensional data within COM. These interfaces, IMDDataset, IMDFind, and IMDRangeRowset, can interconnect so that the same interfaces are applicable among data providers and various levels of service component implementation. As a result, the number of OLE DB for OLAP–specific objects and interfaces is minimized.

The OLE DB for OLAP interfaces cover common consumer (or client application) requirements for processing multidimensional data, but these interfaces are implemented so that existing multidimensional data providers (MDPs) can expose OLE DB for OLAP without making changes at the server level.

By supporting existing mechanisms for updating OLE DB rowsets, OLE DB for OLAP providers can define new interfaces, as well as language clauses for updating results. Vendors can define proprietary language extensions for data definition language (DDL) functionality.

As a means to access and manipulate data, OLE DB for OLAP uses MDX. MDX is a customized query syntax for multidimensional expressions that is explained in detail in Chapter 25: Multidimensional Expressions.

OLE DB for OLAP is designed to enforce symmetry across all dimensions. For example, interfaces expose measurements, such as percent growth over time, as a dimension with functionality equivalent to all other dimensions. Therefore, it is possible to use any of the OLE DB for OLAP–defined functions on any type of dimension to obtain desired results.

OLE DB for OLAP is optimized for both of the following configurations:

Conceptually, multidimensional data is represented as a cube. The cube—or more appropriately, the hypercube—is also the central metadata object recognized by OLE DB for OLAP and is the representation of multidimensional data in rowset form. It is expressed through the dataset object, which is specific to OLE DB for OLAP. Consumers can expose the data as rowsets by connecting to a tabular data provider (TDP) or a multidimensional data provider (MDP), as shown in the following illustration.

The Programming and Object Models

OLE DB for OLAP follows the basic programming model set forth in OLE DB:

OLE DB Extensions for OLAP

OLE DB for OLAP defines expressions, interfaces and methods that enable providers to expose the multidimensional schemas of a multidimensional data store. It expresses those schemas as a set of cubes, which in turn enables the consumer to manipulate these cubes as schema rowsets.

Using the following extensions, you can build OLAP applications that leverage the OLE DB architecture: