Implementation Strategies for Providers

Providers have various options for implementing MDX. Which option to implement depends on what is already available from the data store.

Providers with Tabular Storage

If the provider stores OLAP data as a set of tables (for example, a central fact table with associated dimension tables), then it is likely that SQL is the preferred data access language to extract data from the store. Such providers should implement a preprocessor that maps a statement in MDX to an equivalent SQL query. For more information on how this mapping can be done, see Chapter 6, “Mapping MDX to SQL Statements.”

This approach is suited ideally for relational OLAP (ROLAP) servers. Rather than implementing support for a new language, they can leverage their existing SQL language implementation.

Note   Relational OLAP, or ROLAP, is a term used to describe OLAP systems that are based on a relational DBMS. A ROLAP server is usually a full-fledged relational DBMS that stores OLAP data as a set of tables. This is in contrast to multidimensional OLAP, or MOLAP, which refers to OLAP systems that store data in inherently multidimensional structures.

Providers with Nontabular Storage

Providers with nontabular storage are usually multidimensional OLAP (MOLAP) systems. MOLAP servers typically have storage structures that are inherently multidimensional. MDX statements provide a direct expression of the query capabilities of these servers. If a MOLAP server has a query language of its own, MDX can be mapped on top of this language. This is usually possible because MDX represents the fundamental query operations that any OLAP client requires.