MDX-Tutorial #2: Eine kleine Einführunng in den Beispielcube „AdventureWorks“

Zweiter Teil der MDX-Einführung. Besprochene Themen: Aufbau von AdventureWorks, welche Dimensionen wir verwenden, deutsche Übersetzungen.

Willkommen zum zweiten Teil der MDX-Einführung

Im vorherigen Teil des MDX-Tutorials sind wir mit einigen grundlegenden Begriffen gestartet und haben das Unternehmen Fahrrad.9000 kennen gelernt. Bevor wir uns im nächsten Teil an die erste MDX-Abfrage wagen, möchte ich noch kurz den AdventureWorks Cube von Microsoft vorstellen.

Wozu ein Beispiel-Cube?

Jeder Cube sieht anders aus. Während der Entwicklungsphase entwerfen die Architekten des Cubes die Dimensionen und Kennzahlen eben so, dass diese genau zum eigenen Unternehmen passen. Die Dimensionen werden nach den wichtigsten Geschäftsinteressen modelliert mit denen das Unternehmen zu tun hat. Das sind für Fahrrad.9000 unter anderem die Kunden, Produkte, Vertriebspartner und die Zeit. Für ein Krankenhaus hingegen kommen völlig andere Dimensionen in Frage, möglicherweise die Patienten, die Befunde und die Stationen.

Damit jeder die Quellcodes der MDX-Einführung auch selbst ausprobieren kann, verwende ich den AdventureWorks Cube. Microsoft stellt diesen Test-Cube kostenlos zur Verfügung. Falls AdventureWorks noch nicht bei dir installiert ist oder du auf nicht darauf zugreifen kannst, ist dein freundlicher Systemadministrator sicher bereit, den Cube als Spielplatz einzurichten und freizugeben.

Erstkontakt

Nach dem Verbindungsaufbau zum AdventureWorks Cube werden die Dimensionen und Kennzahlen aufgelistet. Im SQL Server Management Studio sieht das so aus:

Deutsche Übersetzung einiger Dimensionen, die wir in der MDX Einführung verwenden.

Die Dimensionen sind mit dem Symbol  Dieses Symbol steht für eine Cube-Dimension  gekennzeichnet. Schauen wir sie uns etwas genauer an. Das Unternehmen, das diesen Cube verwendet, hat sich dazu entschieden, ihre Kunden als eine eigene Dimension umzusetzen. Darüber hinaus gibt es Produkte und Vertriebspartner. Offensichtlich handelt es sich um eine Firma, die etwas herstellt.

In der Dimension „Produkt“ verbergen sich die folgenden Attribute:

mdx-einfuehrung-2-attribute-auf-deutsch

Dieser Cube gibt uns also die Möglichkeit, Produkte beispielsweise nach ihrer Kategorie auszuswählen, nach ihrer Farbe, oder nach ihrem Namen. Wie schon im letzten Teil angesprochen, können all diese Attribute bei MDX-Abfragen verwendet werden, um den Untersuchungsgegenstand festzulegen.

In dieser Ansicht lassen sich die Dimensionen bis hin zu den Elementen ihrer Attribute durchsehen. Das Attribt „Kategorie“ besitzt zum Beispiel die Ausprägungen „Fahrräder“, „Kleidung“, „Ausstattung“ und „Zubehör“:

Elemente des Attributs Kategorie auf Deutsch: Fahrräder, Kleidung, Ausstattung und Zubehör

So ein Zufall. Das scheint auch ein Fahrradhersteller zu sein. Warum nennen wir ihn nicht einfach Fahrrad.9000?

Die Hierarchie „Kategorien“

Wie wir schon gesehen haben, sortiert Fahrrad.9000 seine Produkte nicht nur in Kategorien, sondern außerdem in Unterkategorien. Da eine Unterkategorie immer einer bestimmten Kategorie zugeordnet ist, lassen sich diese Attribute in einer Hierarchie anordnen:

Beispiel für eine Hierarchie: Ein Produkt gehört in eine Unterkategorie, die wiederum in eine Kategorie gehört.

Die Symbole vor den Hierarchieebenen geben Aufschluss über die Tiefe der jeweiligen Ebene. Mit dem Symbolmdx-einfuehrung-2-symbol-hierarchieebene ist die oberste Hierarchieebene gekennzeichnet. Das ist die gröbste Einteilung, in der es die wenigsten Ausprägungen gibt, im Beispiel die Hauptkategorie mit nur vier Elementen. Die nächsten Hierarchieebenen werden dann immer feiner und enthalten immer mehr Elemente, in diesem Fall bis hin zu den einelnen Produkten.

Zu Begin verwirrt es etwas, dass die Hierarchie-Ebenen doppelt auftauchen, nämlich einmal innerhalb der Hierarchien selbst und zusätzlich als Attribut. Beispielsweise gibt es die Attribute „Kategorie“, „Unterkategorie“ und „Produkt“ sowohl in der Dimension „Produkt“, als auch als Ebenen in der Hierarchie „Produktkategorien“. Beide Varianten zeigen aber auf die gleichen Objekte. Das bedeutet, in den MDX-Abfragen können beide Duplikate synonym verwendet werden. Allerdings gibt es einige fortgeschrittene Funktionen, die nur in Hierarchien verwendet werden können und sich die Beziehungen zwischen den Ebenen zu Nutze machen.

Die Kennzahlen von AdventureWorks

Im SQL Server Management Studio sind die Kennzahlen über den Dimensionen aufgeführt.

Die Kennzahlen des Cubes stehen ganz oben unter Measures (auf deutsch: Kennzahlen)

Fahrrad.9000 setzt auf ungefähr 30 verschiedene Kennzahlen und hat diese für eine bessere Übersicht in Ordner sortiert:

In der MDX Einführung verwenden wir hauptsächlich Internet Sales und Reseller Sales - auf deutsch: Internet Verkäufe und Verkäufe über Vertriebspartner

Im Ordner „Reseller Sales“ (deutsch: Verkäufe über Vertriebspartner) versammeln sich die für den Vertrieb üblichen Verdächtigen „Umsatz“, „Verkaufte Einheiten“, „Rabatte“ und so fort – und zwar eingeschränkt auf Verkäufe durch Wiederverkäufer, also über die Ladentheke:

Die Kennzahl, die uns in der MDX Einführung immer wieder begegnen wird ist der "Reseller Sales Amount" - auf Deutsch: der Umsatz über Vertriebspartner.

Im Gegensatz dazu gibt es die exakt gleichen Kennzahlen noch einmal im Ordner „Internet Sales“, dort aber eben für alle Aufträge, die wir ohne Mittelsmann über das Internet abwickeln.

Hier wurde bei der Konstruktion des Cubes eine interessante Entscheidung getroffen. Denn anstatt diese Online-Offline-Unterteilung durch zwei verschiedene Kennzahlen zu lösen, hätte es auch stattdessen eine zusätzliche Dimension mit dem Attribut „Auftragsherkunft“ geben können. Mit den zwei Elementen „Webshop“ und „Vertriebspartner“ hätte es genügt, jede Kennzahl nur einmal zu definieren und diese mit Hilfe der zusätzlichen Dimension auf die gewünschten Aufträge einzuschränken.

Zwei verschiedene Methoden um den Internetumsatz abzufragen. Links: mit Hilfe zwei verschiedener Kennzahlen, Rechts: nur eine Kennzahl, aber zudem eine Dimension "Auftragsherkunft"

Keine Lösung ist zwingend besser als die andere – die MDX-Abfrage schreibt sich nur unterschiedlich. Vielleicht wusste Fahrrad.9000 schon früh, dass es sehr viele Analysen geben wird, die eine Unterscheidung in On/Offline nötig machen, und hat sich deswegen für eine möglichst anwenderfreundliche Lösung entschieden.

Ende des zweiten Teils

Der AdventureWorks Cube bietet noch eine ganze Menge mehr Möglichkeiten zum Ausprobieren. Für unsere MDX-Einführung sollen die oben vorgestellten Dimensionen und Kennzahlen aber ausreichen. Hinzu kommen nur noch die Dimensionen „Geographie“ und „Datum“:

Zwei weitere Dimensionen, die wir in der MDX Einführung verwenden werden.

Mit Hilfe der Dimension „Geographie“ kann beispielsweise der Umsatz pro Bundesland abgefragt werden. Die Dimension „Datum“ erlaubt unter anderem das Einschränken der Kennzahlen auf ausgewählte Kalenderjahre.

Im nächsten Teil geht es endlich los. Ich fürchte, die erste MDX-Abfrage lauert schon! Bis dahin bedanke ich mich für die Aufmerksamkeit und verabschiede mich bis zur nächsten Woche. Wie immer gilt: Bei Fragen oder Verbesserungsvorschlägen freue ich mich über eine E-Mail oder einen Komentar am Ende der Seite.

Zur MDX-Tutorial-Überrsicht