Business Intelligence : introduction to datawarehouse

16,758 views

Published on

Published in: Business
0 Comments
27 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
16,758
On SlideShare
0
From Embeds
0
Number of Embeds
183
Actions
Shares
0
Downloads
0
Comments
0
Likes
27
Embeds 0
No embeds

No notes for slide

Business Intelligence : introduction to datawarehouse

  1. 1. Alicante SYSTÈME D’INFORMATION ET PERFORMANCE HOSPITALIÈRE Présentation
  2. 2. Informatique décisionnelle
  3. 3. Informatique décisionnelle <ul><li>Problématique </li></ul><ul><li>Rappels de bases de données </li></ul><ul><li>Système de Gestion de Bases de Données </li></ul><ul><li>datawarehouse : l’entrepôt de données </li></ul><ul><li>Architecture technique </li></ul><ul><li>Modélisation du datawarehouse </li></ul><ul><li>OnLine Analytical Processing : OLAP </li></ul><ul><li>En pratique </li></ul><ul><li>MultiDimentionnal eXpression, un langage de requêtage </li></ul>26/05/09
  4. 4. Informatique décisionnelle <ul><li>L' informatique décisionnelle (en anglais : DSS pour Decision Support System ou encore BI pour Business Intelligence ) désigne les moyens, les outils et les méthodes qui permettent de collecter, consolider, modéliser et restituer les données d'une organisation en vue d'offrir une aide à la décision </li></ul>26/05/09
  5. 5. Problématique <ul><li>Les décideurs d'un hôpital, par exemple, doivent pouvoir répondre à un certain nombre de questions pour diriger leur établissement </li></ul><ul><ul><li>Qui sont mes patients ? </li></ul></ul><ul><ul><li>Pourquoi sont ils mes patients ? </li></ul></ul><ul><ul><li>Comment cibler ma clientèle ? </li></ul></ul><ul><ul><li>Quel est l'évolution de telle pathologie ? </li></ul></ul><ul><ul><li>Quel protocole de soins est il le plus efficace/rentable ? </li></ul></ul><ul><ul><li>Quel financement vais-je obtenir si je spécialise mon établissement sur telle problématique ? </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>L'objectif est d'apporter aux décideurs les moyens de répondre à des questions sur le fonctionnement global de leur organisation </li></ul><ul><li>Comment ? </li></ul><ul><ul><li>Par le biais d’indicateurs </li></ul></ul><ul><ul><li>Par le biais du reporting </li></ul></ul>26/05/09
  6. 6. 26/05/09
  7. 7. Rappels de bases de données <ul><li>Conception d’une base de données relationnelle </li></ul><ul><li>Modèle relationnel ou entité-relation </li></ul><ul><li>Les formes normales </li></ul><ul><ul><li>Objectif : éviter les redondances </li></ul></ul><ul><ul><li>1, 2, 3 NF et BCNF </li></ul></ul>26/05/09
  8. 8. Système de Gestion de Bases de Données <ul><li>Modèle entité/relation en 3FN dérivé en modèle physique </li></ul><ul><li>Gestion de transaction </li></ul><ul><ul><li>On Line Transaction Processing (OLTP) </li></ul></ul><ul><ul><li>L'objectif est de pouvoir insérer, modifier et interroger rapidement et en sécurité la base </li></ul></ul><ul><ul><li>Chaque transaction travaille sur de faibles quantités d'informations, et toujours sur les versions les plus récentes des données </li></ul></ul>26/05/09
  9. 9. Système de Gestion de Bases de Données(2) <ul><li>Interrogations via SQL </li></ul><ul><ul><li>Lectures, écritures </li></ul></ul><ul><ul><li>Résultats instantanés </li></ul></ul><ul><ul><li>Requêtes renvoyant des données sur 2 dimensions </li></ul></ul><ul><ul><li>A chaque interrogation, les calculs sont ré-exécutés </li></ul></ul>26/05/09
  10. 10. Système de Gestion de Bases de Données(3) <ul><li>Les données applicatives métiers sont stockées dans plusieurs bases de données relationnelles (ou non relationnelles) </li></ul><ul><li>Ces bases sont conçues pour être efficaces pour les fonctions sur lesquelles elles sont spécialistes </li></ul><ul><li>Elles sont donc peu structurées pour l'analyse, avec souvent comme objectif principal de conserver l'information </li></ul><ul><li>Différents vendeurs de SGBDR sur le marché nous amènent à considérer la globalité des données d’une organisation comme hétérogène </li></ul>26/05/09
  11. 11. Système de Gestion de Bases de Données(4) <ul><li>Système d’information global « multidimensionnel » </li></ul>26/05/09 Recueil des Actes Base Compta Annuaire des médecins … Base Patients
  12. 12. datawarehouse : l’entrepôt de données <ul><li>Constat : les bases de données de productions sont peu adaptées à la vision à long terme et donc à la prise de décision. </li></ul><ul><li>2 concepts dans un mot : </li></ul><ul><ul><li>Fédérer les données issues de bases de données de production </li></ul></ul><ul><ul><li>Agréger ces énormes volumes de données dans le but de les interroger </li></ul></ul><ul><li>But : permettre à l'utilisateur d'y accéder de manière simple et ergonomique (reporting) </li></ul>26/05/09
  13. 13. datawarehouse : l’entrepôt de données(2) <ul><li>Définition de Bill Inmon (1996): « Le datawarehouse est une collection de données orientées sujet, intégrées, non volatiles et historisées, organisées pour le support d'un processus d'aide à la décision. » </li></ul>26/05/09
  14. 14. datawarehouse : l’entrepôt de données(3) <ul><li>« Orientées sujet » : </li></ul><ul><ul><li>Les bases de production sont le plus souvent organisées par processus fonctionnels. </li></ul></ul><ul><ul><li>Le datawarehouse est lui organisé autour des sujets majeurs de l'entreprise. </li></ul></ul><ul><ul><li>Les données sont donc structurées par thèmes, ces thèmes étant souvent transverses par rapport aux structures fonctionnelles et organisationnelles (et donc transverses par rapport aux systèmes de production). </li></ul></ul>26/05/09
  15. 15. datawarehouse : l’entrepôt de données(4) 26/05/09 Recueil des Actes Base séjours Annuaire des médecins Base Patients DW Actes Base diagnostics DW Séjours
  16. 16. datawarehouse : l’entrepôt de données(5) <ul><li>« Données intégrées » : </li></ul><ul><ul><li>Les données proviennent de plusieurs sources différentes. </li></ul></ul><ul><ul><li>Avant d'être intégrées au sein du datawarehouse elles doivent être mise en forme et unifiées </li></ul></ul><ul><ul><li>Cela nécessite une forte normalisation, de bénéficier d'un référentiel unique et cohérent ainsi que de bonnes règles de gestion </li></ul></ul><ul><ul><li>Cette phase est très complexe et représente une charge importante dans la mise en place d'un datawarehouse </li></ul></ul>26/05/09
  17. 17. datawarehouse : l’entrepôt de données(6) <ul><li>« Données historisées » : </li></ul><ul><ul><li>Contrairement au système de production les données ne sont jamais mises à jour (quasiment). </li></ul></ul><ul><ul><li>Chaque nouvelle donnée est insérée. </li></ul></ul><ul><ul><li>Un référentiel de temps doit être mis en place afin de pouvoir identifier chaque donnée dans le temps. </li></ul></ul>26/05/09
  18. 18. datawarehouse : l’entrepôt de données(7) <ul><li>« Données non volatiles » : </li></ul><ul><ul><li>Un datawarehouse veut conserver la traçabilité des informations et des décisions prises. </li></ul></ul><ul><ul><li>Les données ne sont ni modifiées ni supprimées. </li></ul></ul><ul><ul><li>Une requête émise sur les mêmes données à plusieurs mois d'intervalles doit donner le même résultat. </li></ul></ul>26/05/09
  19. 19. datawarehouse : l’entrepôt de données(8) <ul><li>Un datawarehouse définis donc à la fois un ensemble de données et un ensemble d'outils. </li></ul><ul><li>Il s'agit de données destinés aux décideurs, qui sont souvent une copie des données de production avec une valeur ajoutées (orientées objet, agrégées, historisées). </li></ul><ul><li>C'est un ensemble d'outils permettant de regrouper les données des différentes sources, de les nettoyer et de les intégrer, ainsi que d'y accéder de différentes manières (requêtes, rapport, analyse, datamining). </li></ul>26/05/09
  20. 20. Architecture technique 26/05/09 Bases de production Saisie Outil d’alimentation datawarehouse Cube OLAP Outil de restitution Client
  21. 21. Architecture technique (2) <ul><li>Alimentation : phase critique </li></ul><ul><ul><li>L'alimentation des données à partir des bases de production est une phase primordiale d'un datawarehouse. </li></ul></ul><ul><ul><li>Des outils logiciels sont alors nécessaires pour intégrer les données dans le datawarehouse. On parle d'ETL (Extract, Transform, Load). </li></ul></ul>26/05/09
  22. 22. Architecture technique (3) <ul><li>Alimentation : phase critique </li></ul><ul><ul><li>Les phases de l'alimentation d'un datawarehouse sont les suivantes : </li></ul></ul><ul><ul><ul><li>Découverte des données </li></ul></ul></ul><ul><ul><ul><li>Extraction des données </li></ul></ul></ul><ul><ul><ul><li>Transformation des données </li></ul></ul></ul><ul><ul><ul><li>Chargement des données </li></ul></ul></ul>26/05/09
  23. 23. Architecture technique (4) <ul><li>Exemple : </li></ul>26/05/09 M,F 1,0 Homme,femme Eur $ Char(10) Dec(12,2) Numeric(7) Intégration datawarehouse M,F Eur Numeric(7)
  24. 24. Modélisation du datawarehouse <ul><li>On part toujours des besoins du client (que veut-il observer ?) </li></ul><ul><li>On va définir deux concepts : le concept de fait et le concept de dimension </li></ul><ul><li>Un fait représente un sujet d'analyse. Il est constitué de plusieurs mesures relatives au sujet traité. Ces mesures sont numériques et généralement valorisées de façon continue. </li></ul><ul><ul><li>Ex : Je m’intéresse au fait « Vente de produit », les mesures possibles sont le Chiffre d’affaire, la marge, le nombre de vente… </li></ul></ul><ul><ul><li>dede </li></ul></ul>26/05/09
  25. 25. Modélisation du datawarehouse <ul><li>La dimensions est le critère suivant lequel on souhaite évaluer, quantifier, qualifier le fait. </li></ul><ul><ul><li>Ex : Je m’intéresse au fait « Vente de produit », les dimensions possibles sont : le temps, la géographie, les magasins, les catégories de produit… </li></ul></ul><ul><ul><li>On part du principe que les données sont des faits à analyser selon plusieurs dimensions </li></ul></ul>26/05/09
  26. 26. Modélisation du datawarehouse (2) <ul><li>Au niveau logique cela peut se traduire par trois modèles différents : en étoile, en flocon de neige ou en constellation. </li></ul>26/05/09
  27. 27. Modélisation du datawarehouse (3) <ul><li>Modèle en étoile : </li></ul><ul><ul><li>Le centre est la table des faits, et les branches en sont les dimensions </li></ul></ul>26/05/09
  28. 28. Modélisation du datawarehouse (4) <ul><li>Modèle en flocon : </li></ul><ul><ul><li>Le principe est le même que pour le modèle en étoile, mais en plus les dimensions sont décomposées (gain de place mais complexification du modèle) </li></ul></ul>26/05/09
  29. 30. Modélisation du datawarehouse (5) <ul><li>Modèle en constellation : </li></ul><ul><ul><li>On rassemble plusieurs tables des faits qui utilisent les mêmes dimensions </li></ul></ul>26/05/09
  30. 31. OnLine Analytical Processing <ul><li>Le concept OLAP serait apparu pour la première fois en 1993 dans un livre blanc réalisé par E.F. Codd , l'un des concepteurs des bases de données relationnelles </li></ul><ul><li>Objectif : Travaille sur des agrégats par rapport au datawarehouse </li></ul><ul><li>Ce système travaille en lecture seulement. </li></ul><ul><li>Les programmes consultent d'importantes quantités de données pour procéder à des analyses. </li></ul><ul><li>Les objectifs principaux sont regrouper, organiser des informations provenant de sources diverses, les intégrer et les stocker pour donner à l’utilisateur une vue orientée métier, retrouver et analyser l’information facilement et rapidement . </li></ul>26/05/09
  31. 32. OnLine Analytical Processing (2) <ul><li>Concept d'analyse multidimensionnelle : analyser des données qui ont été agrégées suivant plusieurs dimensions. </li></ul><ul><li>On utilise pour cela des hypercubes OLAP (cube suffit). </li></ul><ul><li>Les données sont représentées dans des hypercubes à n dimensions. Les données sont structurées suivant plusieurs axes d'analyses (dimensions) comme le temps, la localisation ... </li></ul><ul><li>Une cellule est l'intersection des différentes dimensions. Le calcul de chaque cellule est réalisé au chargement. Le temps de réponse est ainsi stable quelque soit la requête. </li></ul>26/05/09
  32. 33. 26/05/09
  33. 34. 26/05/09
  34. 35. OnLine Analytical Processing (3) <ul><li>Voici un tableau récapitulatif des différences entre OLTP et OLAP : </li></ul><ul><li>L'objectif des bases OLTP est de pouvoir répondre rapidement à des réponses simples, exemple : les ventes du produit X. </li></ul><ul><li>Les bases OLAP permettent des requêtes plus complexes : les ventes du produit X par vendeur, région et par mois. </li></ul>26/05/09
  35. 36. OnLine Analytical Processing (4) <ul><li>Les requêtes SQL ne pourraient-elles pas prétendre remplacer OLAP ? </li></ul><ul><ul><li>Non ! </li></ul></ul><ul><ul><li>A l'origine, les premiers outils décisionnels ont cherché à exploiter les possibilités de requêtage des bases relationnelles. </li></ul></ul><ul><ul><li>Cependant, cette voie a très vite montré ses limites. En effet, les infocentres traditionnels (OLTP - OnLine Transactional Processing - à 2 dimensions) ne se prêtent guère aux requêtes croisées ou multidimensionnelles. </li></ul></ul><ul><ul><li>C'est pour répondre à cette problématique que E.F. Codd élabore la méthode OLAP </li></ul></ul>26/05/09
  36. 37. OnLine Analytical Processing (5) <ul><li>Avantages d’OLAP : </li></ul><ul><ul><li>Grande souplesse de son mode de requêtage (plusieurs dimensions) </li></ul></ul><ul><ul><li>Quasi immédiateté si bien modélisé </li></ul></ul><ul><li>Inconvénients </li></ul><ul><ul><li>Très lourd si beaucoup de dimensions </li></ul></ul><ul><ul><li>Très lent si beaucoup de dimensions </li></ul></ul>26/05/09
  37. 38. OnLine Analytical Processing (6) <ul><li>Mode de stockage des agrégats </li></ul><ul><ul><li>- MOLAP (pour Multidimensional OLAP) désigne les applicatifs multidimensionnels découlant directement du concept initial. - ROLAP (Relational OLAP) renvoie à une base relationnelle classique structurée pour réagir à la manière d'une base OLAP. Critiquée pour sa faible performance, elle serait néanmoins mieux adaptée à de grandes quantités de données. - HOLAP (Hybride OLAP) repose sur des bases ROLAP, et MOLAP, cette dernière prenant en charge les contenus les plus souvent recherchés. - OOLAP : C'est la technologie la plus récente, Object OLAP. Le modèle multidimensionnel se traduit ainsi :chaque fait correspond à une classe, appelée classe de fait. Chaque dimension correspond à une classe, appelée classe de dimension. Le principal avantage est d'augmenter le niveau d'abstraction. </li></ul></ul><ul><ul><li>- DOLAP (Desktop OLAP) est un module OLAP directement installé sur le poste client. Très rapide, il demeure cependant limité en taille. </li></ul></ul>26/05/09
  38. 39. En pratique 26/05/09
  39. 40. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Opérations « ensembliste » possibles sur un cube : </li></ul><ul><ul><li>Drill-up / down : « dé-zoom et zoom » </li></ul></ul><ul><ul><li>Rotate </li></ul></ul><ul><ul><li>Slicing : sélection d’une tranche </li></ul></ul><ul><ul><li>Scoping : sélection d’un « sous-cube » </li></ul></ul>26/05/09
  40. 41. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Drill-up / down </li></ul>26/05/09
  41. 42. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Rotate </li></ul>26/05/09
  42. 43. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Slicing </li></ul>26/05/09
  43. 44. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Scoping </li></ul>26/05/09
  44. 45. MultiDimentionnal eXpression, un langage de requêtage <ul><li>MDX, l’équivalents de SQL dans le monde OLAP </li></ul><ul><li>Origine : Microsoft </li></ul><ul><li>Langage permettant d’effectuer les opérations décrites précédemment </li></ul>26/05/09
  45. 46. MultiDimentionnal eXpression, un langage de requêtage 26/05/09 EXEMPLE DE REQUETE MDX : select { ([Measures].[Quantite] ) , ([Measures].[Somme des ventes])} on columns , { ([DimensionProduit].[Produit].[Categorie].Members) } on rows from [MONCUBE]
  46. 47. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Notion de tuple : </li></ul><ul><ul><li>Un tuple est une collection de membres, dont chacun est choisi parmi une dimension différente </li></ul></ul><ul><ul><li>Exemple : (Cycles, Vente, 1997) </li></ul></ul><ul><ul><li>Le tuple est l'unité de base pour former un axe . </li></ul></ul><ul><li>Notion d’Axe : </li></ul><ul><ul><li>Un axe est un groupe, une collection, de membres d'une ou plusieurs dimensions, organisée comme tuples </li></ul></ul><ul><ul><ul><li>Ex : {([Time].[1998],[Department].[All Department].[HQ Finance and Accounting])} ON COLUMNS </li></ul></ul></ul><ul><ul><ul><li>Les ‘’{‘’ représentent la notion d’ensemble qui permet de placer plus d’un membre sur un axe. </li></ul></ul></ul>26/05/09
  47. 48. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Notion d’ensemble : </li></ul><ul><ul><li>L'ensemble est un composant important de la syntaxe MDX. Les ensembles sont typiquement joints par &quot; { } &quot; et apparaissent souvent dans la partie SELECT d'une question </li></ul></ul>26/05/09
  48. 49. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Exemples Pratiques </li></ul><ul><ul><li>Nous commencerons par une illustration : Nous sommes invités par un consommateur de l'information à fournir tout l’effectif pendant les années 1997 et 1998 individuellement pour l'organisation entière. </li></ul></ul><ul><li>SELECT{([Time].[1997]), ([Time].[1998])} ON COLUMNS </li></ul><ul><li>FROM HR </li></ul><ul><li>WHERE([Measures].[Count]) </li></ul><ul><li>Le diagramme ci-dessous marque les diverses parties de la question </li></ul>26/05/09
  49. 50. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Exemples Pratiques </li></ul><ul><ul><li>Nous sommes invités par un consommateur de l'information à fournir tout l’effectif pendant les années 1997 et 1998 individuellement pour l'organisation entière croisé par les types de paiements. </li></ul></ul><ul><li>SELECT {([Time].[1997]),([Time].[1998])}ON COLUMNS, </li></ul><ul><li>{[Pay Type].[Pay Type].Members} ON ROWS </li></ul><ul><li>FROM HR </li></ul><ul><li>WHERE ([Measures].[Count]) </li></ul><ul><li>Le diagramme ci-dessous marque les diverses parties de la question </li></ul>26/05/09
  50. 51. MultiDimentionnal eXpression, un langage de requêtage <ul><li>SELECT {[Measures].[Units Shipped]} ON COLUMNS, </li></ul><ul><li>{[Store].[Store State].[CA], [Store].[Store State].[OR], [Store].[Store State].[WA]} ON ROWS </li></ul><ul><li>FROM [Warehouse] </li></ul>26/05/09
  51. 52. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Introduction aux membres et aux fonctions de membre </li></ul><ul><ul><li>Les membres représentent un concept important et dominant dans un arrangement de données MDX. </li></ul></ul><ul><ul><li>Un membre est, simplement, un article dans une dimension ; les membres composent les valeurs d'attributs qui appartiennent à une dimension. </li></ul></ul><ul><ul><li>Maintenez dans votre esprit que les mesures sont elles-mêmes des dimensions , et ainsi elles, aussi, se composent de membres. </li></ul></ul><ul><ul><li>Pour illustrer ce qu’est un membre, prenons l’exemple d’une dimension basée sur la géographie, qui pourrait contenir le pays, l'état et la ville comme niveaux, les Etats-Unis, l'Idaho, et la Nouvelle-Orléans pourrait représenter des membres valides. </li></ul></ul>26/05/09
  52. 53. MultiDimentionnal eXpression, un langage de requêtage <ul><li>L'opérateur Members fournit des moyens d'obtenir un niveau, une hiérarchie ou une dimension donnée. </li></ul><ul><li>SELECT [Measures].Members ON COLUMNS, </li></ul><ul><li>[Department].Members ON ROWS </li></ul><ul><li>FROM [HR]Résultat : </li></ul><ul><li>de </li></ul>26/05/09
  53. 54. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Introduction aux fonctions de membre de &quot;famille«  </li></ul><ul><ul><li>Les fonctions qui composent ce groupe incluent : </li></ul></ul><ul><ul><ul><li>Parent </li></ul></ul></ul><ul><ul><ul><li>Children </li></ul></ul></ul><ul><ul><ul><li>Ancestor() </li></ul></ul></ul><ul><ul><ul><li>FirstChild </li></ul></ul></ul><ul><ul><ul><li>LastChild </li></ul></ul></ul><ul><ul><ul><li>FirstSibling </li></ul></ul></ul><ul><ul><ul><li>LastSibling </li></ul></ul></ul>26/05/09
  54. 55. MultiDimentionnal eXpression, un langage de requêtage 26/05/09 /* Members = accès via les hiérarchies pour aller chercher tous les membres d'un niveaux */ select { ([Measures].[Order Quantity] ) , ([Measures].[Sales Amount])} on columns , { ([Dim Product].[Product].[Category].Members) } on rows from [MONCUBE]
  55. 56. MultiDimentionnal eXpression, un langage de requêtage 26/05/09 /* Children : Accès par les membres */ select { ([Measures].[Order Quantity] ) , ([Measures].[Sales Amount])} on columns , { ([Dim Product].[Product].[Bikes].Children ) } on rows from [MONCUBE]
  56. 57. MultiDimentionnal eXpression, un langage de requêtage 26/05/09 select { CrossJoin ( { ([Order Date].[Time Hier].[Year].[2003]) , ([Order Date].[Time Hier].[Year].[2004]) }, { ( [Measures].[Sales Amount]),([Measures].[Order Quantity] ) } ) } on columns, { CrossJoin ( [Dim Product].[Dim Product Category].[Dim Product Category].Members , [Dim Product].[Dim Product Subcategory].Members) } on rows from [MONCUBE]
  57. 58. MultiDimentionnal eXpression, un langage de requêtage 26/05/09 select { NonEmptyCrossJoin ( { ([Order Date].[Time Hier].[Year].[2003]) , ([Order Date].[Time Hier].[Year].[2004]) }, { ( [Measures].[Sales Amount]),([Measures].[Order Quantity] ) } ) } on columns, { NonEmptyCrossJoin ( [Dim Product].[Dim Product Category].[Dim Product Category].Members , [Dim Product].[Dim Product Subcategory].Members) } on rows From [MONCUBE]
  58. 59. MultiDimentionnal eXpression, un langage de requêtage 26/05/09 select { NonEmptyCrossJoin ( { ([Order Date].[Time Hier].[Year].[2003]) , ([Order Date].[Time Hier].[Year].[2004]) }, { ( [Measures].[Sales Amount]),([Measures].[Order Quantity] ) } ) } on columns, { NonEmptyCrossJoin ( [Dim Product].[Dim Product Category].[Dim Product Category].Members , [Dim Product].[Dim Product Subcategory].Members) } on rows From [MONCUBE]
  59. 60. MultiDimentionnal eXpression, un langage de requêtage <ul><li>Membres Calculés </li></ul><ul><ul><li>Les membres calculés, en bref, nous permettent de définir de nouveaux membres, basés sur les dimensions ou les mesures qui existent dans le cube. </li></ul></ul><ul><ul><li>Ce sont des membres dont les valeurs dépendent d'une expression plutôt que de la valeur d'une cellule dans un cube. </li></ul></ul><ul><ul><li>Syntaxe : WITH MEMBER dimension.name AS 'Expression' </li></ul></ul>26/05/09
  60. 61. MultiDimentionnal eXpression, un langage de requêtage 26/05/09 with Member [Measures].[Sales by Unit] as ( [Measures].[Sales Amount] / [Measures].[Order Quantity] ) select { ([Measures].[Sales Amount] ), ([Measures].[Order Quantity] ) , ([Measures].[Sales by Unit] ) } on columns, { ([Dim Product].[Product].[Category].Members) } on rows from [MONCUBE]
  61. 62. MultiDimentionnal eXpression, un langage de requêtage <ul><li>La Fonction de CurrentMember </li></ul><ul><ul><li>La fonction CurrentMember &quot;retourne le membre courant le long d'une dimension pendant une itération&quot;. L'axe de la requête que nous construisons fournit le contexte dans lequel le &quot;courant&quot; a la signification. </li></ul></ul><ul><ul><li>WITH MEMBER [Measures].[Warehouse Margin] AS '([Time].CurrentMember , [Measures].[Warehouse Sales])-([Time].Currentmember,[Measures].[Warehouse Cost])‘ </li></ul></ul><ul><ul><li>SELECT {[Measures].[Warehouse Sales],[Measures].[Warehouse Cost],[Measures].[Warehouse Margin]} ON COLUMNS, </li></ul></ul><ul><ul><li>{([Warehouse].[Country].[USA])} ON ROWS </li></ul></ul><ul><ul><li>FROM Warehouse </li></ul></ul><ul><ul><li>WHERE ([Time].[1998]) </li></ul></ul>26/05/09
  62. 63. Merci de votre attention. [email_address]

×