After a month of editing, I finally released my paper titled "The many-to-many revolution".
I copied in this post the introduction of the 84-page paper that is published (for free!) on a dedicated dimensional modeling page of SQLBI.EU web site.
I would like to receive feedbacks about the paper. You can use mail, comments or the support forum on SQLBI.EU.
The many-to-many revolution - Introduction
Analysis Services 2005 (SSAS 2005) introduced the capability to handle many-to-many relationships between dimensions. At a first glance, you may tend to underscore the importance of this feature: after all, Analysis Services 2000 and many other OLAP engines do not offer many-to-many relationships. Yet, its lack did not limit their adoption and, apparently, only a few businesses really require it. However, as this paper shows, the UDM (Unified Dimensional Model) can leverage many-to-many relationships helping you to present data from different perspectives that are not feasible with a traditional star schema. This opens a brand new world of opportunities that transcends the limits of traditional OLAP.
We will explore many different uses of many-to-many relationships that give us more choices to model effectively business needs, including:
- Classical many-to-many
- Cascading many-to-many
- Distinct Count
- Multiple Groups
- Transition Matrix
- Multiple Hierarchies
Although you do not have to do so, I recommend you to read the models in the order presented above, because often each one builds upon the previous models.
Each model has a brief introduction, followed by a business scenario that may benefit of its use and an explanation of its implementation. Each model uses only the minimal set of dimensions that are necessary to explain the concept behind it and a small dataset that demonstrates the underlying behavior.
Only the Distinct Count scenario contains a section discussing the impact on performance. Since the considerations presented there may be applied to other many-to-many relationship uses, I recommend you read this scenario if you are interested in performance evaluations.
An important warning has to be made if you are going to use VisualTotals MDX function (directly or through an OLAP browser): visual totals apply only to one level at a time with many-to-many dimensions. In the Links section, you will find a link to a document written by Richard Tkachuk that explains this limitation.
Download the complete paper and demo here.