Dynamic attributes

Dynamic attributes are a way to store dimension element attributes that may depend on the context of a cell. The value of an attribute therefore depends on some elements of other dimensions in the cube. Dynamic attributes can be used in scenarios where attribute values change depending on the selected elements in other dimensions.

For example, a product dimension with a responsible product manager assigned to each product or product group. This information changes over time. Using the time dimension as a driver dimension, it is possible to store the responsible product managers for every point a time. In this case, it is necessary to store the attributes on aggregated cells as well.

This table describes the basic terminology for dynamic attributes:

Term Description
Dimension attributes The known attributes defined on an OLAP dimension. They can be filled for all elements of a dimension.
Dynamic attributes These are the attributes that may depend on the context of a cell.
Dimension with dynamic attributes Dynamic attributes are defined in the context of a dimension with dynamic attributes.
Driver dimensions Elements in these dimensions drive the context in which a dynamic attribute is resolved.
Data cube The cube which holds the actual fact data. Dynamic attributes are used in the context of the cube.
Dynamic attribute cubes A dynamic attribute cube stores the dynamic attributes for a dimension with dynamic attributes.
Attribute dimension The attribute dimension holds the list of attributes.

You can use more than one driver dimension in a cube supporting dynamic attributes. But not all driver dimensions affect each dynamic attribute. Therefore, the information must be stored on which driver dimension an attribute depends.

For the calculation of the dimension properties inside an MDX statement it is important to know if the dimension is a dimension with dynamic attributes. In that case the driver dimensions must be identified as well. This identification of the driver dimensions is stored with the cube in the extended cube properties.

The dynamic attribute data is stored in a dynamic attribute cube. Each dimension with dynamic attributes stores its dynamic attributes in a dedicated cube. The name of the cube is stored in the extended properties of the data cube. The dynamic attribute cube has these dimensions:

  • The driver dimensions.
  • The dimension with the dynamic attributes.
  • The attribute dimension.

The attribute dimension is the measure dimension in the cube.

The attribute dimension contains a list of all dynamic attributes of the attribute dimension with dynamic attributes. Additionally, it contains these dimension attributes:

  • For each of the driver dimensions there is a Boolean attribute that defines if this dynamic attribute depends on the driver dimension. True means, it depends on the driver dimension. The name of the attribute is defined in the extended properties of the dynamic attribute cube.
  • A Format_Type attribute holds format information of the attribute.

Depending on the type of data to be stored, the elements in the attribute dimension is either of type N (numeric) or S (string).

Dynamic attributes can be updated by writing to the attribute cube directly. An update into the cells of that cube has the same effect on the time stamps as an update to the dimension properties. It is not be possible to update the dynamic attributes using attribute write requests in the data cube.