Seminararbeit im Modul
Seminar II Wirtschaftsinformatik
WS 2004/ 05
Prof. Dr. Klaus Kruczynski
Autor:
Sebastian Willand
Matrikel-Nr.: 030240
Abstract
Nachdem
im
ersten
vorgenommen
wird,
Aufgabenbereich
einer
Kapitel
wird
im
eine
Abgrenzung
zweiten
Anfragsprache
Kapitel
wie
MDX
der
Thematik
dieser
in
Arbeit
den
MDX
der
logischen
After an delimitation of the MDX-topic in the first chapter, the specific task
of MDX as an query language in the context of data-warehouses is
described in chapter 2.
Then, in the chapters 3 and 4, the multidimensional query language MDX
is explicit introduced. First, the differences between the relational query
language SQL and MDX are figured. After that, there is an introduction in
the syntax and the query structure of MDX. Furthermore, the potential of
MDX is emphasized by giving some examples of MDX-Queries.
Finally, there is a short summary at MDX at the end of this paper, where
the impact of MDX for OLAP is emphasized one more time.
Inhaltsverzeichnis
Abstract.......................................................................................... I
Inhaltsverzeichnis ........................................................................... II
Abbildungsverzeichnis..................................................................... III
Formelverzeichnis .......................................................................... IV
Vorwort ......................................................................................... V
1
2.2
2.2.1.
2.2.2.
2.2.3.
2.3
2.3.1.
Navigationsoperatoren...................................................8
2.3.2.
Anfragesprachen fr OLAP..............................................9
3.2
4.2
4.3
4.4
Beispiel-Anfragen ........................................................................ 21
4.4.1.
4.4.2.
4.4.3.
Zusammenfassung.................................................................... 26
Literaturverzeichnis ........................................................................ VI
II
Abbildungsverzeichnis
Abbildung 1: Multidimensionale Datenstruktur, dargestellt in Form eines
Cube, eigene Darstellung ..................................................................6
Abbildung 2: Die Zeit-Dimension mit ihren verschiedenen Ebenen, eigene
Darstellung .....................................................................................7
Abbildung 3: relationales Star-Schema, in Anlehnung an Leser, Ulf (2004),
Folie 23 ........................................................................................ 13
Abbildung 4: MDX vom Datenwrfel zur Tabelle, eigene Darstellung ... 16
Abbildung 5: Wichtige MDX-Navigationsfunktionen, in Anlehnung an
Whitehorn, Mark, et al. (2004), S. 97 ............................................... 23
III
Formelverzeichnis
Gleichung 1: SQL-Statement, in Anlehnung an Leser, Ulf (2004), Folie 27
................................................................................................... 14
Gleichung 2: SQL-Statement, in Anlehnung an Leser, Ulf (2004), Folie 26
................................................................................................... 14
Gleichung 3: MDX-Statement [1], nach Lehner, Wolfgang (2003), S. 76 15
Gleichung 4: Bestandteile einer MDX-Anfrage, aus: Bhm, Klemens
(2004), Folie 15 ............................................................................. 19
Gleichung 5: MDX-Statement [2], eigene Darstellung.......................... 19
Gleichung 6: MDX-Statement [3], eigene Darstellung.......................... 22
Gleichung 7: MDX-Statement [4], eigene Darstellung.......................... 22
Gleichung 8: MDX-Statement [5], eigene Darstellung.......................... 23
Gleichung 9: MDX-Statement [6], eigene Darstellung.......................... 23
Gleichung 10: MDX-Statement [7], eigene Darstellung ........................ 23
Gleichung 11: MDX-Statement [8], eigene Darstellung ........................ 24
Gleichung 12: MDX-Statement [9], eigene Darstellung ........................ 25
Gleichung 13: MDX-Statement [10], eigene Darstellung ...................... 25
IV
Vorwort
Diese
Arbeit
entstand
Wirtschaftsinformatik
II
im
an
Rahmen
der
des
Fachhochschule
Moduls
Seminar
Liechtenstein
im
Wintersemester 2004/05.
Whrend in der Vorlesung die grundlegenden Kenntnisse zur Thematik
Data-Warehouse vermittelt wurden, ist die Seminararbeit dazu gedacht,
dass die teilnehmenden Studenten einen speziellen Themenbereich aus
dem Umfeld Data-Warehouse selbststndig nher untersuchen.
dabei
etwas
ber
die
datenbank-
und
anfragetechnischen
Sachverhalte in Erfahrung bringen mchten, die im Rahmen des DataWarehousing zu bercksichtigen sind.
Dagegen hat die Arbeit nicht zum Ziel, ein umfassendes Kompendium zu
MDX oder hnliches darzustellen. Dieses wrde zum einen den gesteckten
Rahmen dieser Seminararbeit bei weitem bersteigen und zum anderen
auch nicht der Absicht des Autors entsprechen.
Vielmehr soll im Rahmen dieser Arbeit geklrt werden, weshalb eine
Anfragesprache wie MDX in Data-Warehouse-Systemen, insbesondere,
wenn diese auf relationalen Datenbanken aufbauen, mehr als ntzlich ist
und
weshalb
sich
Anfragesprache
SQL
die
in
seit
Jahren
diesem
etablierte
Kontext
und
standardisierte
ohne
entsprechende
diesem
Hintergrund
will
diese
Arbeit
einen
Einblick
in
die
2 Anfragesprachen im Data-Warehouse-Kontext
2.1 Das Konzept des Data-Warehouse
Das Konzept des Data-Warehouse spiegelt den aktuellen Stand der
Entwicklungen auf dem Gebiet der Integrationsbemhungen im Rahmen
unternehmensweiter Managementinformationssysteme wider.1
Dabei ist zu beachten, dass bisher noch keine einheitliche oder gar
normierte Begriffsdefinition zu Data-Warehouse existiert. Die UrDefinition des gedanklichen Vaters des Data-Warehouse, William Inmon,
lautet:
A data warehouse is a subject-oriented, integrated, time-variant, nonvolatile collection
of data in support of managements decision-making process.2
Generell wird mit dem Begriff Data-Warehouse ein von den operativen
DV-Systemen strikt getrenntes Datenbanksystem verstanden, welches die
unternehmensweite Datenintegration sicherstellen und durch Kopieren
und Aufbereiten von (operativen) Daten aus unterschiedlichsten Quellen
entsteht.3 Ziel des Data-Warehouse-Konzeptes ist die Vereinheitlichung
der
Unternehmensdaten.
Ein
Data-Warehouse
ist
demnach
eine
unterscheiden
anderen,
Geschft
Versucht
im
operativen
man
nun,
herauszuarbeiten,
verschiedenen
so
die
stellt
sich
eingesetzten
wesentlichen
man
Betrachtungswinkeln
stets
signifikant
von
Datenbanksystemen.
Unterscheidungsmerkmale
fest,
dass
man
dies
tun
kann:
zum
einen
aus
aus
zwei
der
Inmon, W. H./ Hackethorn, R. D. (1994) Using the Data Warehouse, John Wiley & Sons,
New York
3
Perspektive
der
Anwender
und
zum
anderen
aus
der
Sicht
der
Datenhaltung.
fr
diese
Art
von
Datenbanksystemen
sind
aus
fr
operative
Datenbanksysteme
ist
schlielich
der
Anfragetypus: so ist dieser zumeist von einfacher Gestalt, d.h. Lese- oder
Schreibzugriffe beziehen jeweils nur eine geringe Anzahl von Tabellen4 mit
ein.
Im Falle eines Data-Warehouse-Systems stellen sich die Anfragen an die
Datenbank dagegen in der Regel weitaus komplexer dar. So ist es an der
Tagesordnung, dass bei Anfragen eine Vielzahl von Tabellen ber sog.
Joins miteinander verknpft werden und der Anwender darber hinaus
Anmerkung des Autors: der Begriff Tabelle wird hier synonym mit dem Begriff
Relation gebraucht
ganz
wesentliches
Unterscheidungsmerkmal
zwischen
den
zweidimensionale
Datenstruktur
auf
Basis
des
relationalen
gestalten
sich
Datenmanipulationen
(Einfgen,
ndern,
damit
gewissermaen
das
Front-End
eines
Data-Warehouse-
Systems, mit der das Management arbeitet und versucht, aus den Daten,
die im Data-Warehouse abgelegt sind, Informationen zur Fhrung des
Unternehmens zu gewinnen.
Die
Thematik
OLAP
verlangt
nun
geradezu
multidimensionale
darstellen.
Basiskennzahlen
Umsatz)
(z.B.
Dabei
und
lassen
abgeleitete
sich
grundstzlich
Kennzahlen
(z.B.
bleiben.8
Auerdem
versucht
das
Management
Anders
ausgedrckt:
betriebswirtschaftliche
Daten
fr
die
Dabei ist jedoch zu beachten, dass die Wrfelform allein deshalb gewhlt
wird, weil sich in einer Graphik nicht mehr als drei Dimensionen vernnftig
darstellen lassen eine multidimensionale Datenbankstruktur umfasst in
der Praxis jedoch eine weitaus grere Anzahl an Dimensionen.
Im
Data
Warehouse
wird
nun
der
qualifizierende
Anteil
eines
und
gemeinsamen
im
Anschluss
Obergriff,
eben
kategorisiert,
einer
d.h.
Dimension,
unter
einem
zusammengefasst
werden.10
Die
gewhlten
Dimensionen
sind
dabei
abhngig
vom
erstreckt.
Man
spricht
hier
auch
von
einer
Dimensionshierarchie. Als Beispiel sei die Dimension Zeit genannt, bei der
die
einzelnen
Dimensionsebenen
in
einem
direkten
hierarchischen
wiederum
abgeleitete
Kennzahlen
generiert
werden
knnen.
10
11
12
2.3.1. Navigationsoperatoren
Datenbanktechnisch existieren fr OLAP eine Reihe von Mechanismen
bzw. Operatoren, ber die eine Navigation durch multidimensionale
Datenstrukturen
ermglicht
Navigationsoperatoren
werden
nutzen
dabei
kann
Diese
die
sog.
vordefinierten
Drill Down
Hier wird quasi die Auflsung des Datenwrfels verndert, d.h. es
wird hier entlang eines Konsolidierungspfades nach unten gegangen,
um,
ausgehend
von
Ergebnissen
hherer
Granularitt,
zu
Drill Up
Drill Up ist die gegenteilige Operation zu Drill Down; es erfolgt eine
Konsolidierung von einer Detailstufe hin zu einer Stufe hherer
Granularitt15
13
14
15
Dicing
Mittels Dicing lassen sich nur die interessierenden Attribute einer
Dimension betrachten, whrend alle anderen ausgeblendet werden.
So erfolgt ein Dicing, wenn sich z.B. ein Manager nur die Sollwerte,
nicht aber die Istwerte zu den Absatzzahlen eines Produktes
innerhalb einer Region anzeigen lsst. Beim Dicing wird demnach
ein kleinerer Wrfel als ursprnglich erzeugt16
Slicing
Beim Slicing werden einzelne Scheiben aus dem multidimensionalen
Datenwrfel geschnitten.17 Auf diese Weise lassen sich punktuelle
Betrachtungen auf einer bestimmten Ebene durchfhren, z.B. die
Verkaufszahlen eines Produktes an einem bestimmten Tag (z.B.
dem letzten Samstag vor Weihnachten)
OLAP-Anfragen
aus.
Die
Generierung
komplexer
17
multidimensionale
Datenbankschema
des
dementsprechend
auch
Data
der
Datenmodell
Warehouse
Zugriff
auf
das
abgebildet
auf
die
wird
interne
und
wie
multidimensionalen
an
das
zugrunde
liegende
relationale
Datenbankmanagementsystem bertragen.
Werden
die
Daten
hingegen
analog
zum
Datenmodell
in
18
10
SQL
Kreuztabellen,
Super-Aggregate
und
Roll-Up-Berichte
generiert
werden knnen.19
Im Bereich der multidimensionalen Anfragesprachen ist neben diversen
objektorientierten Anstzen insbesondere der Ansatz des Unternehmens
Microsoft zu nennen. So hat Microsoft im Zuge seines Produktes Microsoft
SQL Server eine komplett eigene Anfragesprache entwickelt, die sich in
ihrer
Syntax
zwar
stark
an
SQL
orientiert,
dennoch
aber
eine
19
20
11
kommt und dies nicht nur wie oben ebenfalls angesprochen in Form
von spezifischen Erweiterungen. Allerdings sind dem Einsatz von SQL fr
OLAP Grenzen gesetzt.
Die Datenbanksprache SQL wurde primr fr klassische relationale
Datenbanken entworfen also fr Datenbanken, die im operationalen
Betrieb (OLTP) eingesetzt werden. In diesem Kontext werden die
anfallenden
Daten
Tabellenstrukturen
einerseits
abgelegt
typischerweise
und
andererseits
in
zweidimensionalen
finden
nur
einfache
relationales
Datenbanksystem
abbilden
zu
knnen,
d.h.
in
12
Ebene
der
Dimensionstabellen
die
Fakten
enthalten
beschreibenden
ihrerseits
die
Dimensionen.
deskriptiven
Daten
Die
der
22
23
13
aus den Daten ermittelt haben, so kann dies mittels folgendem SQLStatement geschehen:24
SELECT Z.Tag_ID, sum(Menge*Preis) FROM Verkufe V, Produkt P, Zeit Z,
Vertrieb Vb
GROUP BY Z.Tag_ID
Gleichung 1: SQL-Statement, in Anlehnung an Leser, Ulf (2004), Folie 27
Gleichung 1 ist an sich ein Beispiel dafr, dass OLAP-Anfragen via SQL
durchaus mglich und akzeptabel sind. Erweitert man allerdings das
Beispiel aus Gleichung 1, indem man z.B. den Verkaufsumsatz des
Produktes XY in einer bestimmten Filiale, aufgeschlsselt nicht nur nach
Tagen, sondern auch nach Monaten und Jahren anfragt, so stt man
bereits an die Grenzen des sinnvollen Einsatzes von SQL fr OLAP. Denn
nach dem reinen SQL-Standard ist eine solche Anfrage nicht in einem
Query, also innerhalb eines Anfrage-Statements, in SQL formulierbar.
SELECT Z.Jahr_ID, Z.Monat_ID, Z.Tag_ID, sum(Menge*Preis) FROM Verkufe V,
Produkt P, Zeit Z, Vertrieb Vb
24
14
auf
unterschiedliche
Arten
von
Datenbanksystemen
(relational,
Entsprechend
stehen
mit
MDX
eine
ganze
Reihe
von
FROM [SalesCube]
WHERE ([Measures].[Verkufe], [Zeit].[2002], [Produkte].[Alle Produkte]);
Gleichung 3: MDX-Statement [1], nach Lehner, Wolfgang (2003), S. 76
25
15
Dennoch
bestehen,
neben
der
Syntax,
noch
einige
weitere
in
einer
Weise
anzufragen,
in
der
es
SQL
erlaubt,
bei
MDX
werden
die
Anfrageergebnisse
dabei
in
Form
von
Schlielich wird die Schnittstelle OLE DB for OLAP, auf der MDX aufsetzt,
bereits von ber 40 namhaften Herstellern von Datenbanksystemen
untersttzt. Es sieht demnach gegenwrtig ganz danach aus, dass MDX in
einigen Jahren die Quasi-Standardanfragesprache fr OLAP-Systeme sein
wird hnlich wie es SQL schon seit lngerer Zeit fr relationale
Datenbanksysteme ist.
26
16
4 Anfragen in MDX
4.1 MDX Definitionen und Terminologien
An
dieser
Stelle
seien
kurz
die
grundlegenden
Definitionen
und
oben
bereits
dargestellt
wurde,
werden
multidimensionale
und
reprsentieren
z.B.
Preise,
Kosten,
und
hnliches.
27
28
17
Dies geschieht mittel sog. tuples. Ein tuple ist also quasi eine Art Zeiger,
der einzelne Zellen referenziert. Eine ausfhrliche Definition zu tuple
liefern Whitehorn et al.:29
A tuple is defined as an intersection of exactly a single member from each dimension
(hierarchy) in the cube. [] A tuple always identifies [] a single cell in the multidimensional matrix. That could be an aggregate or a leaf level cell, but nevertheless one
cell and only one cell is ever implied by a tuple.
Mehrere tuple wiederum bilden ein sog. set, d.h. ein set ist eine
Ansammlung mehrer tuples derselben Dimensionalitt.30
sich
die
beiden
Sprachen,
was
den
Aufbau
von
Anfrage-
bentigten
Spalten
einer
oder
mehrer
Tabellen
29
30
31
18
wird (ON COLUMNS, ON ROWS). Weiterhin werden innerhalb der SELECTKlausel normalerweise eine Menge von Klassifikationsknoten (members)
ausgewhlt, wobei diese aus unterschiedlichen Klassifikationsebenen
(levels) stammen knnen. Die FROM-Klausel gibt in MDX die Menge der
Datenwrfel an, aus denen der Ergebniswrfel generiert werden soll. Wird
mehr als ein Datenwrfel herangezogen, ist zu beachten, dass die
Datenwrfel jeweils mindestens eine gemeinsame Dimension aufweisen
mssen, damit eine Verbundkompatibiltt gewhrleistet ist. Die WHEREAnweisung wird in MDX schlielich dazu benutzt, um den Ergebnisraum
des zu Grunde liegenden Datenwrfels einzugrenzen. Dabei knnen in der
WHERE-Klausel nicht nur measures benannt werden, sondern auch
dimensions bzw. deren members. Durch die Definition einer WHEREKlausel findet in MDX damit ein echtes Slicing statt.32
Zusammenfassend
lsst
sich
festhalten,
dass
eine
MDX-Anfrage
FROM [VerkaufsCube]
WHERE ([Measures].[Umsatz], [Zeitraum].[Jahr].[2004]);
32
19
zum anderen die members Q1, Q2, Q3 und Q4 des levels Quartal
der dimension Zeitraum. Die FROM-Klausel referenziert den Datenwrfel
VerkaufsCube an, aus dem die Daten bezogen werden. Die WHEREAnweisung schrnkt schlielich den Ergebnisraum auf den Verkaufsumsatz
(Kennzahl Umsatz) ein, der im Jahre 2004 erwirtschaftet wurde.
Geschweifte Klammern {}
Runde Klammern ()
Eckige Klammern []
der
gleichen
Dimensionalitt,
als
solche
zu
kennzeichnen.
33
20
von
MDX
zu
geben.
Es
wird
insbesondere
auf
die
35
21
FROM [VerkaufsCube]
WHERE ...
Gleichung 6: MDX-Statement [3], eigene Darstellung
FROM [VerkaufsCube]
WHERE ...
Gleichung 7: MDX-Statement [4], eigene Darstellung
angegebenen
levels
identifizieren.
Sollen
dagegen
einfach
die
Navigationsfunktion Members:
[Zeit].[2004].[Quartal].Members = Q1,Q2,Q3,Q4
22
Navigationsfunktion LastChild:
[Zeit].[2004].LastChild = Q4
Gleichung 9: MDX-Statement [6], eigene Darstellung
23
notwendig,
Ergebnisprsentation
fr
da
nur
den
so
eine
Anwender
adquate,
gegeben
druckfhige
ist.
Die
MDX-
FROM [VerkaufsCube]
WHERE ([Measures].[Umsatz])
Q1
Europa
Q2
Q3
Q4
Pkw1
Pkw2
Pkw3
Transporter1
Transporter2
37
24
im
Ergebnisraum
zu
verhindern,
stellt
MDX
eine
einfache
FROM [VerkaufsCube]
Gleichung 12: MDX-Statement [9], eigene Darstellung
Schlielich beinhaltet der Sprachschatz von MDX unter anderem auch eine
Reihe
von
Filter-
und
Sortierfunktionen,
die
ebenfalls
die
FROM [VerkaufsCube]
Gleichung 13: MDX-Statement [10], eigene Darstellung
39
40
25
5 Zusammenfassung
Die multidimensionale Anfragesprache MDX stellt zweifelsohne eine
mchtiges Werkzeug zur Generierung auch komplexer OLAP-Anfragen an
eine Data-Warehouse-Datenbasis dar. Der Einsatz von MDX verspricht
dabei flexiblere und komplexere Anfragen als der reine Einsatz von
systemtechnisch eingebundenen Navigationsoperatoren.
Da
MDX
besonders
gut
mit
relationalen
Datenbanksystemen
dass
MDX
sich
zu
einem
Quasi-Standard
unter
den
26
Literaturverzeichnis
Bauer, Andreas/
Data
Warehouse
Systeme,
Mining
Karlsruhe,
1.
Auflage,
(WS2004/05),
Universitt
http://www.ipd.uni-
URL:
karlsruhe.de/~ipd/institut/dwm/dwm-kap94auf1.pdf
Brosius, Gerhard (2001) Data Warehouse und OLAP mit Microsoft, 1.
Auflage, Galileo Press GmbH, Bonn
Hernandez, Michael J./
John L. Viescas
Datenbanksysteme,
Andr (2004)
Kruczynski, Klaus
(2004)
Mining
(WS
Liechtenstein,
5.
Auflage,
2004/05),
Seminar
Oldenbourg
Fachhochschule
II
Masterstudiengang
fr
Data-Warehouse-
Wirtschaftsinformatik
Lehner, Wolfgang
Datenbanktechnologie
(2003)
Systeme,
1.
Auflage,
dpunkt.verlag
GmbH,
Heidelberg
Leser, Ulf (2004)
Data
Warehousing,
Vorlesung
im
Bereich
http://www.informatik.hu-
berlin.de/wbi/teaching/sose04/dwh/06_zugriff_
mddm.pdf
Microsoft
URL:
http://msdn.microsoft.com/library/en-
Internetprsenz [1]
us/olapdmad/agmdxbasics_3md4.asp
Microsoft
URL:
Internetprsenz [2]
us/olapdmad/agmdxbasics_1bzs.asp
http://msdn.microsoft.com/library/en-
VI
Wolfgang (2000)
Datenmodelle
Anwendungen,
4.
Auflage,
Anfragesprachen
fr
On-Line
Analytical
http://wwwdvs.informatik.uni-
kl.de/courses/seminar/SS2003/folien3.pdf
Totok, Andreas (1997):
Data
Warehouse
und
OLAP
als
Basis
fr
fr
Wirtschaftswissenschaften
der
Datenmodelle,
(2000)
Datenbankmanagementsysteme,
Oldenbourg
Datenbanksprachen
4.
Wissenschaftsverlag
und
Auflage,
GmbH,
Mnchen
Whitehorn, Mark/ Zare,
Robert/ Pasumansky,
Mosha (2004)
VII