Introduction
In every BI project, we find dimensions and facts. There is an extensive literature about data modeling if you want to look further into this topic; I personally like The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling by Ralph Kimball and Margy Ross; a very complete, yet simple-to-read manual.
We learned in the previous chapter that the metadata components that represent the physical structure of the database are called schema objects. In this type of objects, we find tables, facts, attributes, hierarchies, and others. We can use schema objects to build more complex elements such as metrics or filters, to name a few.
Every time we create or make a change to a schema object we need to notify MicroStrategy so that it can reload the information from the metadata. This process is called schema update (Schema | Update Schema or press Ctrl + U).
In this chapter, we will concentrate on what is generally known as dimension, and—in MicroStrategy vocabulary—is named attribute.
It is actually a little more complex than this: when we speak about time or geography dimensions, we're in fact talking about different levels (year, month, day, or country, state, province) that compose a dimension. In this sense, the MicroStrategy term hierarchy would be more appropriate; anyway, to make things simple, let's speak about attributes when we refer to the strings attached to our numbers, descriptions that add a context to the facts, in other words, the declarative part of a report, what we use to GROUP BY
.
A hierarchy in MicroStrategy is a group of attributes related to each other.
Note
At its very core, MicroStrategy is a powerful SQL statement generator that can produce database-specific and optimized query sentences. It is important to keep this in mind during our journey through the features of this platform. Everything we do with the editors, every setting, and every configuration has the objective of generating a sentence that the RDBMS will execute to return data. It is obvious, but worth reminding, that we are actually talking ANSI SQL to a database via ODBC (Open Database Connectivity). That's why it is important to have previous experience with this syntax in order to understand what happens behind the scenes.
If you're a SQL rock star, and you're typing at 64 SELECT
per second, you may be wondering "Do we need to do all this, just to issue a query to a database?" Well, put it this way: you do not need to, your customers and users do. The main reason behind applications such as this is to relieve the developer from the routine creation of reports by offloading it to end users, so that you can spend your time investigating and creating even more and more beautiful ways to present data.