The previous example demonstrates how even a simple UDM can greatly simplify the basic exploration of data. However, there are other challenges to consider when providing users access to data. For example:
-
A UDM that supports many different types of queries from different users might grow to considerable size. How can we ensure that a user who is working on a particular task is not overwhelmed with irrelevant information?
-
How do we support the requirements of global users, who want to see reports in their native languages?
-
How do we make it easy to ask all the common questions about time? For example, a user might want to show sales compared with the same period of the previous year.
This section examines some of these questions to show how the UDM supports extending the basic model to enable more advanced data exploration.
Hierarchies
Although the consolidation of all the attributes of an entity into a dimension greatly simplifies the model for the user, there are additional relationships between the attributes that a simple list cannot express. In the previous case, Category, SubCategory and SKU define one of the hierarchies in which products can be organized. The UDM lets you define such hierarchies, because users frequently want to perform analysis based on such hierarchies. For example, after viewing the totals by Category, the user might drill down to SubCategory, and then drill down to the lowest SKU level,. Each hierarchy is a sequence of attributes that can be used in queries to ease such drill-down/drill-up scenarios.
The following diagram is an example of how hierarchies might appear in an interface shown to the end user. The model contains several different hierarchies by which products can be organized. The query that is shown here answers this question: “show sales and quotas grouped by product category, and then broken down into subcategory.” The query was defined by dragging the “Products By Category” hierarchy into the grid. To view the detailed data, the user double-clicks the “Bike” category to expand the subcategories.
The UDM handles the details of how to move between levels of a hierarchy. The UDM also handles such details as the fact that Quotas are not available at the SubCategory level, but only at the Category level.
One special kind of hierarchy is a parent-child hierarchy, covering entities that have an involuted relationship to themselves. In the next illustration, the Employee dimension has a hierarchy named “Employees By Organization Structure”. Use of this hierarchy makes it easy to navigate the parent-child relationship and analyze the rolled up values at each level of the organization. For example, the sales quota for the VP of Sales, Charles Marshall, includes the sum of the sales quotas of all his staff, plus any sales quotas associated directly with him.
Categorization
Users naturally apply categorizations to their data. For example, a user might say “these attributes are all about an employees personal details" or "this attribute is an e-mail address.” The UDM provides two mechanisms specifically aimed at providing additional value based on such categorizations:
-
Dimensions, attributes, and other objects can be put into semantically meaningful categories, enabling the object to be used more intelligently by a client tool. For example, an attribute can be marked as being a URL. The report that contains this attribute could then enable navigation based on the values of the URL. Another attribute might be marked as being an e-mail address. In this case, a reporting client might automatically open a new e-mail upon some user action.
-
Measures, hierarchies, and other objects can be grouped into folders that are meaningful to the user. This grouping lets the reporting tool display large numbers of attributes in a more manageable way. For example, there might be a group of attributes labeled as ‘Customer Demographics’.
Time
Time information is generally recorded in the underlying data source by using either DateTime or Date data types. Although users who are proficient in SQL or XPath can extract the date information that is required to total data by year, even they might find it difficult to compose a query for questions based on other aspects of time, such as “Show sales by day of week” or “Show a breakdown by fiscal year, starting on July 1.”
However, the UDM has a built in knowledge of time, which includes the following calendars:
-
Natural
-
Fiscal
-
Reporting (‘445’ etc.)
-
Manufacturing (13 periods)
-
ISO8601
Therefore, the model can include a time dimension that provides a rich set of attributes defining details of each day. The following illustration shows the results when the user elected to see the sales amount and quotas for fiscal year 2001. To do this, the user simply dragged the relevant item from the tree onto the filter area. The UDM knows how to translate that user action into a range of dates, and additionally understands the business rule that says that orders shipped on those dates must be included in the query, not the orders due or ordered on those dates. The correct join is implicitly made by the UDM.
Moreover, the UDM provides specific support for answering common questions related to time, including period-to-period comparisons such as “compare this month with the same month last year.”
Translations
In the previous examples, both the model contents and the data are displayed in a single language.. However, international users frequently have a need to view metadata in their local language.
To address this, the UDM allows translations of metadata to be provided in any language. A client application that connects using a particular locale would receive all metadata in the appropriate language.
The model can also provide translations of data. An attribute can map to different elements in the data source, and provide the translations for those elements in different languages. For example, if the user connects by using the same tool that we have been using for the previous examples, but from a client computer that has a French locale, both the UDM and the query results would be displayed in French, as shown in the illustration.
Perspectives
Although the example model used here is of very modest size, real-world models might have a much wider scope, including tens of measures and dimensions, with each dimension including tens or hundreds of attributes. Users engaged on a particular task generally do not have to see the complete model. To avoid overwhelming users with the sheer size of the model, we need the ability to define a view that shows a subset of the model.
The UDM provides such views, called perspectives. A UDM can have many perspectives, each one presenting only a specific subset of the model (measures, dimensions, attributes, and so on) that is relevant to a particular group of users. Each perspective can then be associated with the user security roles that define the users who are permitted to see that perspective.
For example, a perspective named Seattle Inventory could be defined that includes only measures from the Inventory measure group, hides the “Warehouse By Location” hierarchy, and makes the default City be “Seattle”.
Attribute Semantics
A UDM provides additional semantics for attributes. These semantics are aimed at making the information more easily consumable. The following are some examples of semantics that can be applied to attributes:
-
Names vs. Keys: Looking at the relational database, it might not be apparent that EmployeeID is a meaningless, unique, system-generated key. The UDM resolves this issue by letting the Employee attribute have both a key (the unique EmployeeID), and a name (for example, a concatenation of FirstName and LastName). A query such as “show the employees” will correctly distinguish employees who have the same name, by using their unique IDs, but will display the meaningful name to the user.
-
Ordering: The values of attributes frequently must be displayed in some fixed order that is not a simple alphabetical or numeric order. The UDM lets you define a default ordering to manage this requirement. For example:
-
The days of the week appear as Sunday, Monday, Tuesday, and so on.
-
Priorities are displayed in the order High, Medium, and Low.
-
Discretization: For numeric attributes, sometimes it is not useful to display each distinct value of an attribute. For example, seeing the sales for all the different prices for a product ($9.97, $10.05, $10.10,…) is much less useful than seeing the sales per price range ( <$10, $10 - $15,…). The UDM lets you discretize attributes into such ranges by using various criteria.
Key Performance Indicators (KPIs)
Businesses frequently define Key Performance Indicators (KPIs), which are important metrics used to measure the health of the business. The UDM allows such KPIs to be created, so that businesses can group and present data in a way that is easier to understand. A KPI can also use a graphic to display the status and trend, such as a traffic light to indicate good, average, or bad.
Each KPI in the UDM defines up to four expressions for each performance metric:
-
Actual value
-
Goal value
-
Status A normalized value between -1 and 1 that represents the ratio of actual vs. goal (-1 is ‘very bad’, 1 is ‘very good’)
-
Trend A normalized value between -1 and 1 that represents the trend over time (-1 is ‘getting much worse’, 1 is ‘getting much better’)
The use of KPIs lets client tools present related measures in a way that is much more immediately understood by the user. The following figure shows an example of how three KPIs, organized into display folders, might be displayed by a client tool.