Multidimensional Expressions

Multidimensional Expressions

Le MDX (de l'anglais Multidimensional Expressions, « expressions multidimensionnelles ») est un langage de requête pour les bases de données OLAP, analogue au rôle de SQL pour les Bases de données relationnelles. C'est aussi un langage de calcul avec une syntaxe similaire à celle des tableurs.

Le langage des expressions multidimensionnelles propose une syntaxe spécialisées pour interroger et manipuler les données multidimensionnelles mémorisées dans un cube OLAP[1]. Bien qu'il soit possible de traduire certaines expressions dans le langage SQL traditionnel, cela nécessite une syntaxe SQL souvent maladroite même pour des expressions MDX très simples. MDX a été adopté par une large majorité de fournisseur de la technologie OLAP et est devenu un standard de facto pour les systèmes OLAP.

Sommaire

Historique

Inventé par Mosha Pasumansky au sein de Microsoft, MDX fut présenté pour la première fois en 1997 comme un volet de la spécification OLE DB for OLAP (ODBO). La spécification fut rapidement suivie en 1998 par une version commerciale de Microsoft OLAP Services 7.0 puis par Microsoft Analysis Services. La dernière version de la spécification ODBO a été émise par Microsoft en 1999.

Bien que ce ne soit pas un standard ouvert, mais plutôt une spécification propriétaire faite par Microsoft, elle a été adoptée par un large éventail d'éditeurs OLAP. Parmi eux on retrouve aussi bien des éditeurs de produits serveurs tel que ALG Software (acquis par Business Objects), Applix, Descisys, icCube, INEA/Cartesis (acquis par Business Objects), Microstrategy, Panoratio, SAS, SAP, Whitelight, NCR, que de produits côté client comme Panorama Software, Proclarity, AppSource, Cognos, Business Objects, Brio Technology, Crystal Reports, Microsoft Excel, Microsoft Reporting Services.

Depuis l'invention de XML for Analysis qui normalise MDX en tant que langage de requête, de plus en plus d'entreprises, à l'image d'Hyperion Solutions, ont commencé à promouvoir MDX.

La spécification XMLA se réfère à la spécification ODBO pour les détails du langage MDX. Avec Analysis Services 2005, Microsoft a introduit des extensions au langage comme les sous-requêtes. Excel 2007, entre autres, commence à utiliser ces extensions MDX.

En 2001 le XMLA Council a publié la norme XML for Analysis qui inclut le langage de requête mdXML. Dans la spécification actuelle XMLA, le mdXML consiste pour l'essentiel en du MDX encapsulé dans des balises XML <expression>.

Types de données MDX

MDX possède six types de données primaires, qui sont le scalaire, la dimension et la hiérarchie, le niveau, le tuple, le membre, et l'ensemble.

Types primaires

Le scalaire est soit un nombre, soit une chaine de caractères. Il peut être explicitement défini, comme par exemple le nombre 5 ou la chaîne de caractères "OLAP". Il peut aussi être retourné par une fonction MDX comme par exemples Aggregate qui retourne un nombre, UniqueName retourne une chaîne de caractères, .Value renvoie un nombre ou chaîne , etc.

La dimension est une dimension d'un cube. Les dimensions organisent les informations dans un cube, ce sont les axes d'analyse des indicateurs. MDX considère que les dimensions sont mutuellement indépendantes. Une dimension peut contenir quelques membres (voir ci-dessous) organisés en hiérarchies. La hiérarchie d'un cube olap peut être spécifiée par son nom unique tel que [Time].[Fiscal] ou retourné par une fonction MDX comme .Hierarchy. Les hiérarchies sont contenues dans des dimensions, les spécifications MDX dans OLEDB for OLAP ne font pas la distinction entre les types de données dimension et hiérarchie. Quelques implémentations, telle que Microsoft Analysis Services les traitent différemment.

Le niveau dans une hiérarchie de dimensions peut être défini par son nom unique, par exemple [Time].[Fiscal].[Month] ou retourné par une fonction MDX : .Level.

Un membre est un membre d'une hiérarchie de dimensions. Il peut être défini par son nom unique (exemple : [Time].[Fiscal].[Month].[August 2006]), par un nom dérivé (exemple : [Temps].[Fiscal].[2006].[Q2].[August]) , ou être retourné par une fonction MDX : .PrevMember, .Parent, .FirstChild.

Un tuple est une collection ordonnée d'un ou plusieurs membre de différentes hiérarchies. Les tuples peuvent être définis explicitement comme une liste de membres, par exemple ([Time].[Fiscal].[Month].[August 2006], [Customer].[By Geography].[All Customers].[USA], [Measures].[Sales]) ou être retournés par une fonction MDX : .Item.

Un ensemble (set) est une collection ordonnée de tuples partageant les mêmes hiérarchies (dimensions). Il peut être défini explicitement comme une liste de tuples, par exemple {([Measures].[Sales], [Time].[Fiscal].[2006]), ([Measures].[Sales], [Time].[Fiscal].[2007])}, ou retourné par une fonction MDX : Crossjoin, Filter, Order, Descendants.

Autres types de données

Dans certaines limites, MDX autorise aussi d'autres types de données. Le type tableau par exemple peut être utilisé à l'intérieur de la fonction SetToArray pour spécifier des tableaux non traités par MDX mais passés à une fonction utilisateur dans une bibliothèque ActiveX . Les dimensions peuvent être utilisées dans les fonctions Leaves. Les objets d'autres types de données sont représentés à l'aide de chaînes scalaires indiquant leurs noms, comme les noms de groupe de mesures dans la fonction MeasureGroupMeasures, ou les noms de KPI dans les fonctions KPIValue ou KPIGoal.

Exemple de requête

L'exemple suivant, adapté de la documentation en ligne de SQL Server 2000, présente une requête MDX basique utilisant l'instruction SELECT. Cette requête renvoie un jeu de résultats comprenant les montants des ventes pour 2003 et 2002 de magasins dans l'État de Californie.

SELECT
   { [Measures].[Store Sales] } ON COLUMNS,
   { [Date].[2002], [Date].[2003] } ON ROWS
FROM Sales
WHERE ( [Store].[USA].[CA] )

Dans cet exemple, la requête renvoie les résultats suivants :

La clause SELECT définit les axes de la requête. Ce sont le montant des ventes en magasin (Store Sales Amount) ainsi que les dates 2002 et 2003. La clause FROM indique que la requête utilise le cube "Sales" comme source de données. La clause WHERE définit le membre "California" de la dimension "Store" en tant qu'axe de transition[Note 1].

Notes et références

Notes

  1. On peut spécifier jusqu'à 128 axes pour une même requête MDX.

Références

  1. (en)Carl Nolan, « Manipulate and Query OLAP Data Using ADOMD and Multidimensional Expressions ». Consulté le 24 juin 2011

Annexes

Articles connexes

Liens externes

Bibliographie

  • (en) George Spofford, Sivakumar Harinath, Chris Webb, Dylan Hai Huang, Francesco Civardi: MDX-Solutions: With Microsoft SQL Server Analysis Services 2005 and Hyperion Essbase. Wiley, 2006, ISBN 0-471-74808-0
  • (en) Mosha Pasumansky, Mark Whitehorn, Rob Zare : Fast Track to MDX. ISBN 1-84628-174-1




Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Multidimensional Expressions de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • MultiDimensional eXpressions — (MDX) is a query language for OLAP databases, much like SQL is a query language for relational databases. It is also a calculation language, with syntax similar to spreadsheet formulas. Contents 1 Background 2 History 2.1 mdXML …   Wikipedia

  • Multidimensional Expressions — (MDX) is a query language for OLAP databases, much like SQL is a query language for relational databases. It is also a calculation language, with syntax similar to spreadsheet formulas. BackgroundThe MultiDimensional eXpressions (MDX) language… …   Wikipedia

  • Multidimensional Expressions — (MDX) ist eine Datenbanksprache für OLAP Datenbanken. Sie wurde von Microsoft vorangetrieben und etabliert sich als Industriestandard. MDX wurde wesentlich von Mosha Pasumansky entwickelt. MDX ist insgesamt sehr komplex und mächtig. Von… …   Deutsch Wikipedia

  • multidimensional language — noun a programming language whose expressions are assembled in more than one dimension • Ant: ↑one dimensional language • Hypernyms: ↑programming language, ↑programing language • Hyponyms: ↑decision table, ↑ …   Useful english dictionary

  • MDX — Multidimensional Expressions (MDX) ist eine Datenbanksprache für OLAP Datenbanken. Sie wurde von Microsoft vorangetrieben und etabliert sich als Industriestandard. MDX wurde wesentlich von Mosha Pasumansky entwickelt. MDX ist insgesamt sehr… …   Deutsch Wikipedia

  • Online analytical processing — In computing, online analytical processing, or OLAP (  /ˈoʊlæ …   Wikipedia

  • OLAP cube — An OLAP cube (for online analytical processing) is a data structure that allows fast analysis of data.[1] It can also be defined as the capability of manipulating and analyzing data from multiple perspectives. The arrangement of data into cubes… …   Wikipedia

  • Cubo OLAP — Saltar a navegación, búsqueda Cubo OLAP de tres dimensiones (Ciudades, Productos y Tiempo) Un cubo OLAP, OnLine Analytical Processing o procesamiento Analítico En Línea, término acuñado por Edgar F. Codd, de EF Codd Associates, encargado por… …   Wikipedia Español

  • Database — A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality (for example, the availability of rooms in hotels), in a way that supports… …   Wikipedia

  • Data transformation — Data transformation/Source transformation Concepts metadata · data mapping data transformation · model transf …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”