Comprendre le sens, le nombre et la multiplicité des relations dans un modèle de données

Publié le 30 novembre 2015
par Sophie Marchand M.Sc., CPA, CGA, MVP
Relations Modèle de données

Comprendre le sens, le nombre et la multiplicité des relations dans un modèle de données

Dans les versions récentes de Power Pivot et de Power BI Desktop, il est désormais possible de choisir le nombre, le sens et la multiplicité des relations entre les différentes tables de vos modèles de données. Cet article vise à expliquer en quoi consiste le nombre, le sens et la multiplicité des relations entre les tables d’un modèle de données et à comprendre leur impact sur les visualisations de données résultantes.

 

Multiplicité des relations

Many to One (*:1)

Ce type de relation est le plus commun. Il s’agit d’une relation entre une table où chaque élément de la clé commune entre les deux tables n’est présent qu’une seule fois dans la table (c’est le côté représenté par le One) et une table où chaque élément de la clé commune peut être présent plus d’une fois (c’est le côté représenté par le Many). Dans l’exemple ci-bas, la clé commune entre les deux tables est le code de produit (A, B, C). Les codes de produits apparaissent plusieurs fois dans la première table, soit la table de transactions de ventes et chaque code de produit n’apparaît qu’une seule fois dans la table de dimension de produits. Nous pourrions donc créer une relation Many to One entre ces deux tables.

Many to one

One to One (1:1)
Ce type de relation est moins commun. Il suppose que chaque élément d’une clé commune entre deux tables n’est présent qu’une seule fois dans chaque table. Dans l’exemple ci-bas, la clé commune est le no.employé et chaque employé n’apparaît qu’une seule fois dans la première table, soit la table de dimension Employés et il n’apparaît qu’une seule fois également dans la deuxième table, soit la table de faits concernant les augmentations de salaires.

One to One
 
 

Vous avez des sources de données volumineuses à rassembler et analyser dans Excel ? Apprenez à automatiser tout le processus d’importation, de transformation et de modélisation  des données avec nos formations sur Power Query et Power Pivot dans Excel.

 

Sens des relations

Single (simple)
Les filtres sur les tables connectées fonctionnent sur la table qui est aggrégée. Il s’agit de la seule option de sens de relations disponible dans les versions Power Pivot 2013 et 2010. Une relation single ou simple est représentée par une flèche unidirectionnelle, comme c’est le cas dans l’image ci-dessous entre la table de transactions de ventes et la table de dimension de produits.Relations Modèle de données

 

Vous remarquez qu’il existe également une relation single ou simple entre la table de transactions de ventes et la table de dimension de magasins et une relation single ou simple entre la table de dimension magasins et la table de dimension catégories. Ce faisant, la table de transactions de ventes est liée à la table de dimension catégories, par une relation single ou simple. Ceci permet de présenter les ventes par catégorie, tel qu’illustré ci-dessous. À noter qu’il serait également possible de présenter cette information si la relation était both (bidirectionnelle). Notez toutefois qu’il est impossible de présenter le nombre de produits par ville ou le nombre de produits par code postal. Le compte demeure toujours à 114 et les champs de produits ne se filtrent donc pas correctement.

Relation both et single

 

Both (bidirectionnelle)
Les relations bidirectionnelles fonctionnent bien dans des modèles de données qui suivent un schéma en étoile, avec une seule table de faits. Par exemple, une table de transactions de ventes, avec une table de dimension de dates et une table de dimension de magasins. Dans l’exemple ci-dessous, nous avons créé une relation bidirectionnelle entre la table de transactions de ventes et la table de dimension de produits.
Relations Modèle de données

 

Dans ce cas-ci, notez qu’on peut toujours présenter les ventes par catégorie mais qu’on peut également présenter le nombre de produits par ville et par code postal. Cela est possible parce que la relation bidirectionnelle entre la table de transactions de ventes et de dimension de produits agit comme une seule table unifiée dans le modèle de données.

Relations Modèle de données

 

Vous pourriez être tenté de créer une relation bidirectionnelle entre la table de transactions de ventes et la table de dimensions de magasins, mais cette action serait impossible. Voici pourquoi. D’abord, pour changer le sens d’une relation, vous devez cliquer sur l’option Manage Relationships (gérer les relations) dans le menu Home (Accueil).

Relations Modèle de données

 

Vous avez ainsi accès à la liste des relations entre les tables de votre modèle de données. Vous pouvez sélectionner la relation entre la table de transactions de ventes et la table de dimension de magasins et cliquer sur Edit (Modifier).

Manage relationships

 

En choisissant une relation bidirectionnelle, vous obtiendrez un message d’erreur. En effet, vous ne pouvez pas créer de relation bidirectionnelle lorsque vous avez 2 tables de faits reliées à la même table de dimension, à moins que l’une des relations soit inactivée (voir point suivant).

Relation Both non disponible

 

Nombre de relations

Pour désactiver une relation entre deux tables, vous pouvez simplement décocher la case de la colonne Active. Dans notre exemple, pour permettre une relation bidirectionnelle entre la table de transactions de ventes et la table de dimension de magasins, il faudrait désactiver la relation entre la table de ventes budgétées et la table de dimension de magasins.

Relation active

 

Deux tables peuvent donc être liées entre elles par le biais de plusieurs relations. Dans ce cas, il faut définir une relation par défaut (relation active) et les autres relations deviendront des relations secondaires (vous les verrez apparaître en pointillé dans votre modèle de données). Un exemple classique de relations multiples entre deux tables est celui d’une table de commandes avec des dates de commande, des dates de livraison prévues et des dates de livraison finales qui est liée 3 fois à une table de dimension de dates. Dans ce cas, par défaut, on présentera les dates de commande (si cette relation est la relation active) mais il sera possible de présenter des visualisations basées sur les dates de livraison prévues et finales, par le biais du langage DAX.


 

Fichier d’accompagnement

Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.
 

Formation complémentaire

Pour une introduction à la modélisation de données avec Power Pivot, un complément BI d’Excel, qui permet d’importer, de croiser et de bonifier diverses sources de données externes pour finalement les analyser à l’aide de tableaux croisés dynamiques, suivez la formation Excel – Excel – Introduction à Power Pivot et aux modèles de données.
 

Voici quelques commentaires d’apprenants ayant suivi cette formation :

Commentaires - Excel – Introduction à Power Pivot et à la modélisation de données
CFO-Masque_Formations-en-ligne_FBLa mission du CFO masqué est de développer les compétences techniques des analystes et des contrôleurs de gestion en informatique décisionnelle avec Excel et Power BI et favoriser l’atteinte de leur plein potentiel, en stimulant leur autonomie, leur curiosité, leur raisonnement logique, leur esprit critique et leur créativité.

2 réflexions sur “Comprendre le sens, le nombre et la multiplicité des relations dans un modèle de données”

  1. Intéressant.
    1 question cependant :
    – DimDate est relié à 2 tables de faits,
    Cela ne pose pas de problème de faire ainsi ?

    ne vaudrait il mieux pas avoir 2 dimDate ? 1 pour Sales et 1 pour BudgetSales ?

    Merci de votre retour

    1. Le fait qu’une table de dimensions soit liée à deux tables de faits ne pose pas de problème en soit, pour autant qu’on utilise les champs de la table de dimensions comme axe d’analyse et que la table de dimensions comprennent toutes les données clés des deux tables de faits.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top