Object Names in Schema Rowsets

First, all object names are strings. That is, the _NAME and _UNIQUE_NAME columns in the schema rowset are strings.

Each SCHEMA rowset deals with a particular object in the multidimensional data model — catalog, schema, cube, dimension, hierarchy, level, members, and properties. Many schema rowsets contain columns of the following types: _NAME, _UNIQUE_NAME, _CAPTION, and DESCRIPTION. These are four related concepts, but not the same. An example will illustrate the differences between these notions. Consider the entry in the MEMBERS rowset for the city of Portland, in Oregon. The MEMBER_NAME column will contain “Portland.” The MEMBER_UNIQUE_NAME column has “USA.Oregon.Portland”: The qualification is necessary because just the name “Portland” is ambiguous. There is another Portland in the state of Maine. (But note that a provider is not required to generate a unique name by the qualification. It is free to generate it in any way. The only requirement is that it must be unique.) The MEMBER_CAPTION column is anything that the DBA considers as a displayable name: It can be “Portland” or “Portland, the city of roses,” etc. The DESCRIPTION column is a string that can quite literally be anything, such as “Portland is the home of the Trailblazers. It nestles in the shadow of the looming Mt. Hood, whose fiery volcanic origin is hidden beneath a beautiful and tranquil exterior.” Consumers typically use the CAPTION column for display. The UNIQUE_NAME column is used for querying and for restricting other schema rowsets.

The concept of UNIQUE_NAME applies to all multidimensional schema objects except for the catalog, schema, and cube names. For these objects, the consumer is required to provide the qualification, if needed.

Note   For providers that generate unique names using qualification, each component of a UNIQUE_NAME should be delimited. For more information, see “Delimited Identifiers” in Chapter 2.

The schema rowset of the schema object (from dimension on down) contains columns for the UNIQUE_NAME values of all its ancestor objects (up to and including the dimension, but not cube, schema, and catalog). It has a column for the NAME of itself and for the display CAPTION.