Mapping Overview
A dataset is a complex entity. In relational terms, it is not convenient to represent a dataset as a two-dimensional table. Instead, it is represented as a set of multiple tables. There is a total of n+1 tables, where n is the number of axes in the dataset.
Consider an MDX statement of the form:
SELECT
<axis specification> ON COLUMNS,
<axis specification> ON ROWS
FROM <cube specification>
WHERE <slicer specification>
This statement is mapped to a set of SQL statements, which results in the following three tables:
-
The COLUMNS axis table. This table has one row for each tuple in the COLUMNS axis. This table is used as the basis of an axis rowset. (It can be appropriately joined with the MEMBERS table and the LEVELS table to get an axis rowset.)
-
The ROWS axis table. This table has one row for each tuple in the ROWS axis.
-
The VALUES table. This table contains the values at the intersection points of the COLUMNS and ROWS tables. Each axis table has a RANK column that specifies the tuple coordinate on the axis. The VALUES table has two columns: RANK and VALUE. The RANK column contains the cell ordinal and the VALUE column contains the data value.