Relations entre les tables dans un modèle de données

Remarque :  Nous faisons de notre mieux pour vous fournir le contenu d’aide le plus récent aussi rapidement que possible dans votre langue. Cette page a été traduite automatiquement et peut donc contenir des erreurs grammaticales ou des imprécisions. Notre objectif est de faire en sorte que ce contenu vous soit utile. Pouvez-vous nous indiquer en bas de page si ces informations vous ont aidé ? Voici l’article en anglais à des fins de référence aisée.

Votre navigateur ne prend pas en charge la vidéo. Installez Microsoft Silverlight, Adobe Flash Player ou Internet Explorer 9.
Vidéo : Relations dans Power View et PowerPivot

Vidéo : Relations dans Power View et PowerPivot

Vidéo : Relations dans Power View et PowerPivot

Vidéo : Relations dans Power View et PowerPivot

Ajouter de la puissance à votre analyse des données en créant des relations amogn différentes tables. Une relation est une connexion entre deux tables qui contiennent des données : une colonne dans chaque table constitue la base de la relation. Pour voir pourquoi les relations sont utiles, supposons que vous suivez des données pour les commandes des clients dans votre entreprise. Vous pouvez effectuer le suivi de toutes les données dans une seule table ayant une structure à ceci :

CustomerID

Name

EMail

DiscountRate

OrderID

OrderDate

Product

Quantity

1

Ashton

chris.ashton@contoso.com

0,05

256

2010-01-07

Compact Digital

11

1

Ashton

chris.ashton@contoso.com

0,05

255

2010-01-03

SLR Camera

15

2

Jaworski

michal.jaworski@contoso.com

0,10

254

2010-01-03

Budget Movie-Maker

27

Cette approche peut fonctionner, mais elle implique le stockage de nombreuses données redondantes, telles que l’adresse de courrier du client pour chaque commande. Le stockage est bon marché, mais si l’adresse de courrier change, vous devez vous assurer de mettre à jour chaque ligne pour ce client. Une solution à ce problème consiste à fractionner les données en plusieurs tables et à définir des relations entre ces tables. Il s’agit de l’approche utilisée dans les bases de données relationnelles comme SQL Server. Par exemple, une base de données que vous importez peut représenter des données de commandes en utilisant trois tables associées :

Customers

[CustomerID]

Name

Email

1

Ashton

chris.ashton@contoso.com

2

Jaworski

michal.jaworski@contoso.com

CustomerDiscounts

[CustomerID]

DiscountRate

1

0,05

2

0,10

Orders

[CustomerID]

OrderID

OrderDate

Product

Quantity

1

256

2010-01-07

Compact Digital

11

1

255

2010-01-03

SLR Camera

15

2

254

2010-01-03

Budget Movie-Maker

27

Relations existent au sein d’un modèle de données — une que vous créez explicitement, ou qui Excel automatiquement crée à votre place lorsque vous importez simultanément plusieurs tables. Vous pouvez également utiliser le complément Power Pivot pour créer ou gérer le modèle. Pour plus d’informations, voir créer un modèle de données dans Excel .

Si vous utilisez le complément Power Pivot pour importer des tables à partir de la même base de données, Power Pivot peut détecter les relations entre les tables en fonction des colonnes qui sont entre [crochets] et reproduire ces relations dans un modèle de données qu’il génère en arrière-plan. Pour plus d’informations, consultez Détection automatique et inférence des relations dans cet article. Si vous importez des tables de plusieurs sources, vous pouvez créer manuellement des relations, comme décrit dans Créer une relation entre deux tables.

Relations sont basées sur des colonnes dans chaque table qui contiennent les mêmes données. Par exemple, vous pouvez être liée une table clients avec une table de commandes si chaque contient une colonne qui stocke un ID client. Dans l’exemple, les noms de colonne sont identiques, mais elle n’est pas requise. Une pourrait être CustomerID et un autre NuméroClient, à condition que toutes les lignes dans la table commandes contiennent un numéro d’identification est également stockée dans la table Customers.

Dans une base de données relationnel, il existe plusieurs types de clés. Une clé est généralement colonne avec des propriétés spéciales. Comprendre l’objectif de chaque clé peut vous aider à gérer un modèle de données de plusieurs tables qui fournit des données à un rapport de tableau croisé dynamique, graphique croisé dynamique ou Power View.

Bien qu’il existe de nombreux types de clés, voici les plus importantes pour notre objectif ici :

  • Clé primaire : identifie de façon unique une ligne dans une table, telle que CustomerID dans la table Customers .

  • Clé secondaire (ou clé candidate) : une colonne différente de la clé primaire est unique. Par exemple, une table employés peut-être stocker un ID d’employé et un numéro de sécurité sociale, qui sont tous deux uniques.

  • Clé étrangère : une colonne qui fait référence à une colonne unique dans une autre table, telle que CustomerID dans la table Orders , laquelle fait référence à CustomerID dans la table Customers.

Dans un modèle de données, la clé primaire ou une autre clé est appelée la colonne associée. Si une table comporte à la fois une clé primaire et de remplacement, vous pouvez utiliser l’une comme base d’une relation entre tables. La clé étrangère correspond à la colonne source ou la colonne seulement. Dans notre exemple, une relation est définie entre CustomerID dans la table Orders (colonne) et CustomerID dans la table Customers (la colonne de recherche). Si vous importez des données à partir d’une base de données relationnel, par défaut Excel choisit la clé étrangère d’une table et la clé primaire correspondante dans l’autre table. Toutefois, vous pouvez utiliser n’importe quelle colonne qui comporte des valeurs uniques pour la colonne de recherche.

La relation entre un client et une commande est une relation un-à-plusieurs. Chaque client peut avoir plusieurs commandes, mais une commande ne peut pas contenir plusieurs clients. Une autre relation importants de la table s’agit d’une. Dans notre exemple, la table CustomerDiscounts , qui définit un taux d’actualisation unique pour chaque client, a une relation avec la table Customers.

Ce tableau indique les relations entre les trois tables (clients, CustomerDiscountset commandes) :

Relation

Type

Colonne de recherche

Colonne

Customers-CustomerDiscounts

un-à-un

Customers.CustomerID

CustomerDiscounts.CustomerID

Customers-Orders

un-à-plusieurs

Customers.CustomerID

Orders.CustomerID

Remarque :  Les relations plusieurs-à-plusieurs ne sont pas prises en charge dans un modèle de données. Un exemple de relation plusieurs à plusieurs est une relation directe entre Products et Customers, dans laquelle un client peut acheter plusieurs produits et un même produit peut être acheté par plusieurs clients.

Une fois que toutes les relations a été créée, Excel doit généralement recalculer les formules qui utilisent des colonnes de tables dans la relation nouvellement créée. Traitement peut prendre un certain temps, en fonction de la quantité de données et la complexité des relations. Pour plus d’informations, voir Recalculer des formules.

Un modèle de données peut avoir plusieurs relations entre deux tables. Pour créer des calculs précis, Excel a besoin d’un seul chemin d’une table à une autre. Par conséquent, qu’une relation entre deux tables est active à la fois. Bien que les autres colonnes sont inactifs, vous pouvez spécifier une relation inactive dans les formules et les requêtes.

Dans la vue de diagramme, la relation active est un trait plein et ceux inactifs sont des lignes en pointillés. Par exemple, dans AdventureWorksDW2012, la table DimDate contient une colonne, Clédate, qui est lié à trois colonnes du tableau FactInternetSales: OrderDate DueDateet ShipDate. Si la relation active est comprise entre Clédate et OrderDate, c’est la relation par défaut dans les formules sauf indication contraire.

Une relation peut être créée lorsque les conditions suivantes sont remplies :

Critère

Description

Identificateur unique pour chaque table

Chaque table doit avoir une colonne unique qui identifie de façon unique chaque ligne dans cette table. Cette colonne est communément appelée clé primaire.

Colonnes de recherche uniques

Les valeurs des données dans la colonne de recherche doivent être uniques. En d’autres termes, la colonne ne doit pas contenir de doublons. Dans un modèle de données, les valeurs Null et les chaînes vides sont équivalentes à un espace, qui est une valeur de donnée distincte. Cela signifie que vous ne pouvez pas avoir plusieurs valeurs Null dans la colonne de recherche.

Types de données compatibles

Les types de données dans la colonne source et une colonne de recherche doivent être compatibles. Pour plus d’informations sur les types de données, voir types de données pris en charge dans les modèles de données.

Dans un modèle de données, vous ne pouvez pas créer de relations entre les tables si la clé est une clé composite. Des limitations existent également en ce qui concerne les relations un-à-un et un-à-plusieurs. Les autres types de relations ne sont pas pris en charge.

Clés composites et colonnes de recherche

Une clé composite se compose de plusieurs colonnes. Modèles de données ne peut pas utiliser des clés composites : une table doit toujours avoir exactement une colonne qui identifie de façon unique chaque ligne du tableau. Si vous importez des tables ayant une relation existante basée sur une clé composite, l’Assistant Importation de Table dans Power Pivot ignore cette relation, car il ne peut pas être créé dans le modèle.

Pour créer une relation entre deux tables ayant plusieurs colonnes définissant les clés primaire et étrangères, combiner tout d’abord les valeurs pour créer une seule colonne clée avant de créer la relation. Vous pouvez faire ceci avant d’importer les données, ou en créant une colonne calculée dans le modèle de données à l’aide de Power Pivot complément.

Relations plusieurs-à-plusieurs

Un modèle de données ne peut pas contenir plusieurs-à-plusieurs relations. Vous ne pouvez pas simplement ajouter tables de jonction dans le modèle. Toutefois, vous pouvez utiliser les fonctions DAX pour modéliser des relations plusieurs-à-plusieurs.

Jointures réflexives et boucles

Les jointures réflexives ne sont pas autorisées dans un modèle de données. Une jointure réflexive est une relation récursive entre une table et elle-même. Les jointures réflexives sont souvent utilisées pour définir des hiérarchies de type parent-enfant. Par exemple, vous pouvez joindre une table Employees à elle-même pour produire une hiérarchie qui indique la chaîne de gestion dans une entreprise.

Excel n’autorise pas la création de boucles entre les relations dans un classeur. En d’autres termes, l’ensemble suivant de relations est interdit.

Table 1, colonne a   à   Table 2, colonne f

Table 2, colonne f   à   Table 3, colonne n

Table 3, colonne n   à   Table 1, colonne a

Si vous essayez de créer une relation qui entraînerait la création d’une boucle, une erreur est générée.

L’un des avantages d’importer des données à l’aide du complément Power Pivot est que Power Pivot peut parfois détecter des relations et les créer dans le modèle de données qu’il crée dans Excel.

Lorsque vous importez plusieurs tables, Power Pivot détecte automatiquement toutes les relations existantes entre ces tables. En outre, lorsque vous créez un tableau croisé dynamique, Power Pivot analyse les données dans les tables. Il détecte les relations possibles qui n’ont pas été définies et suggère les colonnes appropriées à inclure dans ces relations.

L’algorithme de détection utilise des données statistiques concernant les valeurs et les métadonnées des colonnes afin de faire des inférences sur la probabilité des relations.

  • Les types de données dans toutes les colonnes associées doivent être compatibles. Pour la détection automatique, seuls les types de nombres entiers et les types de données texte sont pris en charge. Pour plus d’informations sur les types de données, consultez Types de données pris en charge dans les modèles de données.

  • Pour que la relation soit correctement détectée, le nombre de clés uniques dans la colonne de recherche doit être supérieur aux valeurs de la table du côté « plusieurs ». En d’autres termes, la colonne clé du côté « plusieurs » de la relation ne doit pas contenir de valeurs qui ne se trouvent pas dans la colonne clé de la table de recherche. Par exemple, vous disposez d’une table qui répertorie les produits avec leurs ID (table de recherche) et d’une table des ventes qui répertorie les ventes de chaque produit (côté « plusieurs » de la relation). Si vos enregistrements de ventes contiennent l’ID d’un produit qui n’a pas d’ID correspondant dans la table Products, la relation ne peut pas être créée automatiquement, mais vous pouvez éventuellement la créer manuellement. Pour permettre à Excel de détecter la relation, vous devez d’abord mettre à jour la table de recherche Product à l’aide des ID des produits manquants.

  • Vérifiez que le nom de la colonne clé sur le côté « plusieurs » est semblable au nom de la colonne clé dans la table de choix. Les noms n’avez pas besoin être exactement identiques. Par exemple, dans un contexte professionnel, il est souvent nécessaire variantes du nom des colonnes qui contiennent des données identiques pour l’essentiel : ID Emp, EmployeeID, Réf employé, EMP_IDet ainsi de suite. L’algorithme détecte des noms similaires et affecte une plus forte probabilité à ces colonnes qui portent des noms similaires ou exactement identiques. Par conséquent, pour augmenter la probabilité de création d’une relation, vous pouvez essayer de renommer des colonnes dans les données que vous importez dans un écran semblable à des colonnes dans les tables existantes. Si Excel trouve plusieurs relations possibles, il ne crée pas une relation.

Ces informations peuvent vous aider à comprendre pourquoi les relations ne sont pas toutes détectées, ou comment les changements apportés à des métadonnées, telles que le nom d’un champ et les types de données, peuvent améliorer les résultats de la détection automatique des relations. Pour plus d’informations, consultez Résoudre les problèmes liés aux relations.

Détection automatique pour les jeux nommés

Les relations ne sont pas détectées automatiquement entre les jeux nommés et les champs connexes dans un tableau croisé dynamique. Vous pouvez créer ces relations manuellement. Si vous souhaitez utiliser la détection automatique des relations, supprimez chaque jeu nommé et ajoutez directement les champs individuels du jeu nommé dans le tableau croisé dynamique.

Inférence des relations

Dans certains cas, les relations entre les tables sont automatiquement chaînées. Par exemple, si vous créez une relation entre les deux premiers ensembles de tables ci-dessous, il est déduit qu’une relation existe entre les deux autres tables et une relation est établie automatiquement.

Products et Category -- relation créée manuellement

Category et SubCategory -- relation créée manuellement

Products et SubCategory -- relation inférée

Pour que des relations soient chaînées automatiquement, elles doivent avoir une même direction, comme dans l’exemple ci-dessus. Si les relations initiales sont, par exemple, entre les ventes et les produits et entre les ventes et les clients, aucune relation n’est inférée. En effet, la relation entre les produits et les clients est une relation plusieurs à plusieurs.

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×