Multidimensional Expressions (MDX)

Slides:



Advertisements
Ähnliche Präsentationen
Geometrische Datenstrukturen Haozhe Chen Aaron Richardson.
Advertisements

Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Verwendungszweck: Diese Folien dienen zur Unterstützung von Microsoft Dynamics NAV-Vertriebsmitarbeitern und -Partnern für Produktpräsentationen beim Kunden.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Sortierverfahren Richard Göbel.
SQL als Abfragesprache
Spektralanalyse Spektralanalyse ist derart wichtig in allen Naturwissenschaften, dass man deren Bedeutung nicht überbewerten kann! Mit der Spektralanalyse.
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Der letzte Schliff für Abfragen Übersicht über die Aggregatfunktionen.
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
Quilt: Eine XML Anfragesprache für heterogene Datenquellen
© DVS System Software GmbH & Co. KG
Eine Einführung in OLAP (Online Analytical Processing)
Datenbanken?.
Informationsbasierte Interaktion information II. Struktur 1.Rekurs Daten Mathematical Theory of Communication (MTC) 2.Reichweite der MTC 3.Hauptteil Interaktion.
Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers
Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
3. Datensätze sortieren und filtern1 l Hauptdokument öffnen l Symbol in der Symbolleiste Seriendruck anklicken l Im Dialogfenster Seriendruckempfänger.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
Copyright Oracle Corporation, All rights reserved. 6 Unteranfragen (Subqueries)
Ispirer Systems Präsentation des Unternehmens Copyright (c) Ispirer Systems Ltd. Alle Rechte vorbehalten.
Einführung in Datenbankmodellierung und SQL
Freiwillige Feuerwehr der Stadt Perg
Aggregatsfunktion SQL = Structured Query Language.
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
SQL Server nach MySQL Datenbank-Migration SQLWays – Software für Migration Präsentation Copyright (c) Ispirer Systems Ltd. Alle.
Verdichten von Daten mit Gruppenfunktionen
Structured Query Language
2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT.
Anfragen an multidimensonale Daten
Algorithmen und Datenstrukturen
Datenbanken abfragen mit SQL
Customizing Tools: Genehmigungsverfahren
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
SQLSaturday #555 Munich 2016 Scoped assignments – Fluch oder Segen? Beispiele aus der Praxis...
C# LINQ Funktionen höherer Ordnung. Allgemein ● Language Integrated Query ● Verfahren von Microsoft zum Zugriff auf Daten ● Hauptentwickler Erik Meijer.
Das IT - Informationssystem
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Multidimensionale Datenbanken
Azure Active Directory und Azure Active Directory Domain Services
Algorithmen und Datenstrukturen
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Darstellung der Relationenalgebra als Programmiersprache
Vorlesung #5 SQL (Teil 2).
Wirtschaftsinformatik
IDL / SAP Schnittstellen-Set
Funktionen, GROUP BY, HAVING Views anlegen und verwenden
SQL Query Performance Monitoring und Analyse [DE]
Indexierung Oracle: indexes Indexierung.
Methoden der Datengewinnung
Algorithmen und Datenstrukturen
Von Wietlisbach, Lenzin und Winter
Algorithmen und Datenstrukturen
Nutzung und Modellierung von Datenbanken
2.3 Gruppierte Datensätze
(Structured Query Language)
 Präsentation transkript:

Multidimensional Expressions (MDX) Microsoft® SQL Server™ OLAP Services

Einleitung Was ist MDX? Microsoft® Terminologie im OLAP Bereich MDX – Basisabfragen Beispiele am „FoodMart Sales Cube“ MDX – DDL- und DML-Konstrukte Fazit 27. Januar 2000 Rolf Eichenberger

MultiDimensional EXpressions Ist SQL für OLAP genügend? JA ... aber ... nicht bequem und nicht schnell genug! [Übung: MDX-Beispiele  in SQL umschreiben] NEIN  was gibt es besseres?  Microsoft® entwickelte MDX 27. Januar 2000 Rolf Eichenberger

MultiDimensional EXpressions DDL und DML für multidimensionale Daten [ Definieren, Ändern und Abfragen] Standard im OLAP Bereich? OLAP Systeme mit integrierter „OLE DB for OLAP“ Schnittstelle sind in der Lage „MDX“ zu verarbeiten. „OLE DB for OLAP“ und „MDX“ nicht-proprietäre Systemkonzepte Hersteller, die bereits heute diesem Konzept folgen: BAAN, Business Objects, Cognos, MIS AG, SAS Institute, ... [ http://www.microsoft.com/data/oledb/olap/indsupp.htm] 27. Januar 2000 Rolf Eichenberger

Konzepte - Microsoft® Terminologie „Cubes“ Grundkonzept in OLAP multidimensionale Strukturen [maximal 64 Dimensionen] „Dimensions“ Beschreibung der Kategorien in (multiplen) Hierarchiestufen „private“ oder „shared“ „Measures“ ist eine spezielle „Dimension“ Werte für die Analyse 27. Januar 2000 Rolf Eichenberger

MDX – Basisabfragen Achsen_Spezifizierung = Selektieren der „Members“ für die entsprechende Achse ON COLUMNS ¦ ROWS ¦ PAGES ¦ CHAPTERS ¦ SECTIONS ON AXIS(0) ... AXIS(63) 27. Januar 2000 Rolf Eichenberger

„FoodMart Sales Cube“ – „Dimensions“ VERGLEICHE PAPIER! 27. Januar 2000 Rolf Eichenberger

„FoodMart Sales Cube“ – „Measures“ VERGLEICHE PAPIER! 27. Januar 2000 Rolf Eichenberger

Beispiel [alle Messwerte der Städte in „CA“ und „WA“] „MEMBERS“ = alle Elemente der „Dimension“ „CHILDREN“ ... mit der entsprechenden Bedeutung [Store].[Store State].[WA] ist kein „fully qualified name“ (nicht alle Stufen der Hierarchie)  „unique name“ WHERE Slicer-Spezifizierung weggelassen = Filterung bezüglich des Standardelements 27. Januar 2000 Rolf Eichenberger

Beispiel [alle Messwerte der Geschäfte in „CA“] „DESCENDANTS“: DESCENDANTS (member, level[, flag]) „drill down“ zu einer tieferen Stufe in der Hierarchie flag ::= [SELF] ¦ BEFORE ¦ AFTER ¦ BEFORE_AND_AFTER 27. Januar 2000 Rolf Eichenberger

Beispiel - Spezifizierung der Messwerte [„Sales Average“ für alle Geschäftstypen in allen Staaten] Slicer_Spezifizierung = Selektieren des entsprechenden „Slice“ des „Cube“ ... weiteres Beispiel: WHERE (Measures.[Sales Average], [Time].[Year].[1997]) (entspricht einer AND-Verknüpfung) 27. Januar 2000 Rolf Eichenberger

MDX – DDL- und DML-Konstrukte  „eine mächtige Abfragesprache“ „Calculated Members“ und „Named Sets“ Hierarchisches Navigieren Zeitserien „Tuples“ und „CROSSJOIN“ Filtern und Sortieren „Top“ und „Bottom“ Analysen Numerische und bedingte Abfragen 27. Januar 2000 Rolf Eichenberger

„Calculated Members“ und „Named Sets“ „Calculated Members“ = mit MDX berechnete Elemente WITH MEMBER parent.name AS 'expression' WITH MEMBER Measures.ProfitPercent AS '(Measures.[Store Sales] – Measures.[Store Cost]) / (Measures.[Store Cost])', FORMAT_STRING = '#.00%' SELECT ... FORMAT_STRING = Anzeigeformat „Named Sets“ = mit MDX berechnete Sammlungen WITH SET set.name AS 'expression' 27. Januar 2000 Rolf Eichenberger

Hierarchisches Navigieren PREVMEMBER | CURRENTMEMBER | NEXTMEMBER | PARENT | FIRSTCHILD | LASTCHILD WITH MEMBER Measures.PercentSale AS '([Product].CURRENTMEMBER, Measures.[Unit Sales]) / ([Product].CURRENTMEMBER.PARENT, Measures.[Unit Sales])', FORMAT_STRING = '#.00%' SELECT ... LEAD(-1) | LEAD(0) | LEAD(1) | ... LAG(1) | LAG(0) | LAG(-1) | ... MEMBER.LEAD(number) 27. Januar 2000 Rolf Eichenberger

Zeitserien PARALLELPERIOD = Element an gleicher Stelle in vorheriger Periode (bspw. gleiches Quartal im vorherigen Jahr) OPENINGPERIOD = Element an erster Stelle in der Periode (bspw. erstes Quartal im Jahr) CLOSINGPERIOD = Element an letzter Stelle in der Periode (bspw. letztes Quartal im Jahr) PERIODSTODATE = alle Elemente bis an eine spezifierte Stelle (bspw. alle Quartale bis heute) YTD | QTD | MTD | WTD 27. Januar 2000 Rolf Eichenberger

„Tuples“ und „CROSSJOIN“ „Tuples“ = (in Klammern) kombinierte Elemente verschiedener „Dimensions“  Darstellung in der gleichen Achse (bspw. in einem 2D-Diagramm) (member_of_dim_1, member_of_dim_2, ...) „CROSSJOIN“ = Kreuzprodukt zweier Elementmengen CROSSJOIN([Customers].[City].MEMBERS, [Time].[Quarter].MEMBERS) 27. Januar 2000 Rolf Eichenberger

Filtern und Sortieren Filtern  „Slicing“  Selektieren der Elemente in einer Achse NON EMPTY | FILTER(set, search_condition) FILTER({[Store].[Store City].MEMBERS}, (Measures.[Unit Sales], [Time].[1997])>25000) Sortieren ORDER(set, expression[, ASC | DESC | ...]) 27. Januar 2000 Rolf Eichenberger

„Top“ und „Bottom“ Analysen HEAD = die ersten n Elemente in einem „Set“ TAIL = die letzten n Elemente in einem „Set“ TOPCOUNT | TOPPERCENT | TOPSUM = die n „besten“ Elemente in einem „Set“ BOTTOMCOUNT | BOTTOMPERCENT | BOTTOMSUM = die n „schlechtesten“ Elemente in einem „Set“ 27. Januar 2000 Rolf Eichenberger

Numerische und bedingte Abfragen SUM | COUNT AVG | MEDIAN | MAX | MIN | VAR | STDDEV IIF = Immediate IF ... weitere MDX-Konstrukte sind in der abgegebenen Liste zu finden! 27. Januar 2000 Rolf Eichenberger

Fazit MDX ist für „IT-Entwickler“ ein sehr angenehmes und leistungsfähiges Werkzeug. MDX ist für „IT-Anwender“ hingegen kompliziert und schwierig erlernbar. Absicht dieser Sprache ist die Einbettung in Anwendungen, die dem „Business-Entscheider“ vordefinierte Analysen zur Verfügung stellen! 27. Januar 2000 Rolf Eichenberger

Literaturempfehlungen Brosius, Gerhard. Microsoft OLAP Services: Multidimensionale Datenverwaltung im Microsoft SQL Server 7. Addison-Wesley-Longman, Bonn 1999. Nolan, Carl. Introduction to Multidimensional Expressions (MDX). Microsoft Corporation, 1999. http://msdn.microsoft.com/library/techart/intromdx.htm 27. Januar 2000 Rolf Eichenberger

Besten Dank und viel Vergnügen beim Suchen der Schätze, die in den „Cubes“ verborgen sind! 27. Januar 2000 Rolf Eichenberger