Multi-dimensional Expressions (MDX) is the most widely supported query language to date for reporting from multi-dimensional data stores. It is defined within the OLE DB for OLAP (ODBO) standard by Microsoft. In today’s Business Intelligence (BI) marketplace, most OLAP servers and almost all BI clients talk MDX.
mdXML is based on the MDX language. Whereas MDX is language specific to the ODBO specification, mdXML is language independent and takes better advantage of XML for Analysis (XMLA). mdXML is the linguistic interface that will be specified in version 2.0 of the XMLA specification.
With MDX / mdXML, a robust set of functions makes accessing multi-dimensional data easier and more intuitive. Users can retrieve multi-dimensional data structures with nearly any number of dimensions using MDX / mdXML.
MDX / mdXML has the power to help you efficiently answer complex real world business questions like, which regions sold the most product, and in those regions, which product lines sold the best? MDX / mdXML’s power to process multi-dimensional data – and its flexibility – positions it to become the choice for practical, results-based business intelligence.
Some say that MDX / mdXML is to multi-dimensional databases, what SQL is to relational databases. This is a good analogy, except that MDX / mdXML does not have the data definition capabilities (DDL) that SQL has. However, MDX / mdXML does support data manipulation capabilities (DML) and there is discussion of adding DDL capabilities. Whereas the returned result with SQL is a table, the returned result with MDX) / mdXML is a data cube.
MDX / mdXML unleashes the power of complex OLAP databases because it was designed with analytics in mind.
Many vendors have added MDX support to their OLAP products using Simba Technologies’ SimbaProvider SDK. SimbaProvider allows a multi-dimensional product to expose its data through a standard API, such as XMLA or ODBO, using the MDX language.