Partager via


Définition d'une relation plusieurs-à-plusieurs

Lorsque vous définissez une dimension, chaque fait est joint généralement à un et un seul membre de dimension, tandis qu'un même membre de dimension peut être associé à plusieurs faits différents. Par exemple, chaque client peut avoir plusieurs commandes mais chaque commande se rapporte à un seul client. Dans la terminologie des bases de données relationnelles, on parle de relation un-à-plusieurs. Cependant, un seul fait peut parfois être joint à plusieurs membres de dimension. Dans la terminologie des bases de données relationnelles, on parle de relation plusieurs-à-plusieurs. Par exemple, l'achat d'un client peut être motivé par plusieurs raisons et un même motif d'achat peut être associé à plusieurs achats. Une table de jointure sert à définir les motifs de vente relatifs à chaque achat. Une dimension Sales Reason créée à partir de relations de ce type aura par conséquent plusieurs membres associés à une seule transaction de vente. Les dimensions plusieurs-à-plusieurs étendent le modèle dimensionnel au-delà du schéma en étoile classique et prend en charge les analyses complexes lorsque les dimensions ne sont pas reliées directement à une table de faits.

Dans Microsoft SQL Server 2005 Analysis Services (SSAS), les relations plusieurs-à-plusieurs entre une dimension et un groupe de mesures se définissent en spécifiant une table de faits intermédiaire qui est jointe à la table de dimension. 0Une table de faits intermédiaire est jointe, à son tour, à une table de dimension intermédiaire à laquelle la table de faits est jointe. Les relations plusieurs-à-plusieurs entre la table de faits intermédaire et la table de dimension dans la relation et la dimension intermédiaire créent les relations plusieurs-à-plusieurs entre les membres de la dimension principale et les mesures du groupe de mesures qui sont spécifiées par la relation. Afin de définir une relation plusieurs-à-plusieurs entre une dimension et un groupe de mesures par le biais d'un groupe de mesures intermédiaire, ce groupe doit partager une ou plusieurs dimensions avec le groupe de mesures d'origine.

Dans une dimension plusieurs à plusieurs, les valeurs sont des sommes distinctes, ce qui signifie qu'elles ne s'agrègent pas plus d'une fois au membre Tous.

ms170463.note(fr-fr,SQL.90).gifRemarque :
Afin de prendre en charge une relation de dimensions plusieurs-à-plusieurs, il est nécessaire de définir une relation clé primaire-clé étrangère dans la vue de source de données entre toutes les tables impliquées. Si vous ne procédez pas ainsi, vous ne pourrez pas sélectionner le groupe de mesures intermédiaire correct pour établir la relation dans l'onglet Utilisation de la dimension du Concepteur de cube.

Pour plus d'informations, consultez Relations de dimension et Définition d'une relation plusieurs à plusieurs et des propriétés d'une relation plusieurs à plusieurs.

Au cours des tâches de cette rubrique, vous allez définir la dimension Sales Reasons et le groupe de mesures Sales Reasons et définir ensuite une relation plusieurs-à-plusieurs entre la dimension Sales Reasons et le groupe de mesures Internet Sales par le biais du groupe de mesures Sales Reasons.

Ajout des tables requises dans la vue de source de données

Pour ajouter les tables requises dans la vue de source de données

  1. Ouvrez le Concepteur de vues de source de données pour la vue de source de données de l'entrepôt Adventure Works.

  2. Cliquez avec le bouton droit dans le volet Bibliothèque de diagrammes, choisissez Nouveau diagramme, puis spécifiez Internet Sales Order Reasons comme nom du nouveau diagramme. Pour plus d'informations, consultez Utilisation des diagrammes dans une vue de source de données (Analysis Services).

    Un nouveau diagramme est créé sans table et apparaît dans le volet Diagramme.

  3. Faites glisser la table InternetSales (dbo.FactInternetSales) vers le volet Diagramme à partir du volet Tables.

  4. Cliquez avec le bouton droit dans le volet Diagramme et choisissez Ajouter/Supprimer des tables.

  5. Dans la boîte de dialogue Ajouter/supprimer des tables, ajoutez la table DimSalesReason et la table FactInternetSalesReason à la liste Objets inclus, puis cliquez sur OK.

    Notez que les relations clé primaire-clé étrangère entre les tables impliquées sont établies automatiquement, car ces relations sont définies dans la base de données relationnelles sous-jacente. Si ces relations n'étaient pas définies dans la base de données relationnelles, il vous faudrait les définir dans la vue de source de données.

  6. Dans le menu Format, pointez sur Disposition automatique, puis cliquez sur Diagramme.

  7. Dans la fenêtre des propriétés, remplacez la propriété FriendlyName de la table DimSalesReason par SalesReason, puis remplacez la propriété FriendlyName de la table FactInternetSalesReason par InternetSalesReason.

  8. Dans le volet Tables, développez InternetSalesReason (dbo.FactInternetSalesReason), sélectionnez SalesOrderNumber, puis vérifiez la propriété DataType pour cette colonne de données dans la fenêtre des propriétés.

    Notez que le type de données de la colonne SalesOrderNumber est un type de données chaîne.

  9. Vérifiez les types de données des autres colonnes de la table FactInternetSalesReason.

    Notez que les types de données des deux autres colonnes dans cette table sont des types de données numériques.

  10. Dans le volet Tables, cliquez avec le bouton droit sur InternetSalesReason (dbo.FactInternetSalesReason) et choisissez Explorer les données.

    Notez que, pour chaque numéro de ligne de chaque commande, une valeur clé identifie la raison de la vente pour l'achat correspondant à ce poste, comme montré dans l'illustration suivante.

    Valeur clé pour identifier un motif de vente pour les achats

Définition du groupe de mesures intermédiaire

Pour définir le groupe de mesures intermédiaire

  1. Affichez le Concepteur de cube pour le cube du didacticiel Analysis Services, puis cliquez sur l'onglet Structure de cube.

  2. Cliquez dans le volet Mesures et choisissez Nouveau groupe de mesures. Pour plus d'informations, consultez Définition et configuration d'un groupe de mesures.

  3. Dans la boîte de dialogue Nouveau groupe de mesures, sélectionnez InternetSalesReason dans la liste Sélectionnez une table à partir de la vue de source de données, puis cliquez sur OK.

    Notez que le groupe de mesures Internet Sales Reason apparaît maintenant dans le volet Mesures.

  4. Développez le groupe de mesures Internet Sales Reason

    Notez qu'une seule mesure est définie pour ce nouveau groupe de mesures, la mesure Internet Sales Reason Count.

  5. Sélectionnez Internet Sales Reason Count et vérifiez les propriétés de cette mesure dans la fenêtre des propriétés.

    Notez que la propriété AggregateFunction de cette mesure est définie par Count et non par Sum. Analysis Services a choisi Count car le type de données sous-jacent était le type chaîne. Les deux autres colonnes dans la table de faits sous-jacente n'ont pas été sélectionnées en tant que mesures car Analysis Services a détecté qu'il s'agissait de clés numériques et non de mesures en tant que telles. Pour plus d'informations, consultez Définition du comportement semi-additif.

  6. Dans la fenêtre des propriétés, remplacez la propriété Visible de la mesure Internet Sales Reason Count par False.

    Cette mesure sera utilisée uniquement pour joindre la dimension Sales Reason, que vous allez définir ensuite, au groupe de mesures Internet Sales. Les utilisateurs n'exploreront pas cette mesure directement.

    L'illustration suivante montre les propriétés de la mesure Internet Sales Reason Count.

    Propriétés de la mesure Nombre de motifs de vente

Définition d'une dimension plusieurs-à-plusieurs

Pour définir une dimension plusieurs-à-plusieurs

  1. Dans l'onglet Structure de cube du Concepteur de cube pour le cube du didacticiel Analysis Services, cliquez avec le bouton droit dans le volet Dimensions et choisissez Ajouter une dimension de cube.

  2. Dans la boîte de dialogue Ajouter une dimension de cube, cliquez sur Nouvelle dimension.

    L'Assistant Dimension s'ouvre.

  3. Dans la page Assistant Dimension, cliquez sur Suivant.

  4. Dans la page Sélectionner une vue de source de données, cliquez sur Suivant pour sélectionner les données de la dimension à partir de la vue de source de données de l'entrepôt Adventure Works.

  5. Dans la page Sélectionner le type de la dimension, cliquez sur Suivant pour indiquer que la dimension sera une dimension standard.

  6. Dans la page Sélectionner la table de dimension principale, sélectionnez dbo.DimSalesReason dans la liste Table principale, sélectionnez SalesReasonName dans la liste Colonne contenant le nom de membre (facultatif), puis cliquez sur Suivant.

  7. Dans la page Sélectionner les attributs de la dimension, désactivez la case à cocher correspondant à l'attribut Sales Reason Alternate Key, remplacez le nom de l'attribut Sales Reason Reason Type par Sales Reason Type, puis cliquez sur Terminer.

  8. Dans la page Fin de l'Assistant, cliquez sur Terminer pour créer la dimension Sales Reason, puis cliquez sur OK pour ajouter la dimension de base de données nouvellement créée au cube du didacticiel Analysis Services en tant que dimension de cube.

  9. Ouvrez le Concepteur de dimensions pour la dimension Sales Reason.

  10. Dans le volet Hiérarchies et niveaux, créez une hiérarchie Sales Reasons qui contient les niveaux Sales Reason Type et Sales Reason, en respectant cet ordre.

  11. Dans la fenêtre des propriétés, définissez All Sales Reasons comme valeur de la propriété AllMemberName de la hiérarchie Sales Reasons.

  12. Définissez All Sales Reasons comme valeur de la propriété AttributeAllMemberName de la dimension Sales Reason.

Définition d'une relation plusieurs-à-plusieurs

Pour définir une relation plusieurs-à-plusieurs

  1. Affichez le Concepteur de cube pour le cube du didacticiel Analysis Services, puis cliquez sur l'onglet Utilisation de la dimension.

    Notez que la dimension Sales Reason est liée par une relation régulière au groupe de mesures Internet Sales Reason, mais qu'elle n'est liée par aucune relation aux groupes de mesures Internet Sales ou Reseller Sales. Notez aussi que la dimension Internet Sales Order Details est liée par une relation régulière à la dimension Internet Sales Reason qui de son côté a une Relation de fait avec le groupe de mesures Internet Sales. Si cette dimension n'était pas présente (ou une autre dimension avec une relation dont sont absents les groupes de mesures Internet Sales Reason et Internet Sales), vous ne pourriez pas définir la relation plusieurs-à-plusieurs.

  2. Cliquez sur le bouton de points de suspension () dans la cellule située à l'intersection du groupe de mesures Internet Sales et de la dimension Sales Reason.

  3. Dans la boîte de dialogue Définir une relation, sélectionnez Plusieurs à plusieurs dans la liste Sélectionnez un type de relation.

    Vous devez définir le groupe de mesures intermédiaire qui lie la dimension Sales Reason au groupe de mesures Internet Sales.

  4. Dans la liste Groupe de mesures intermédiaire, sélectionnez Internet Sales Reason.

    L'illustration suivante montre les modifications apportées dans la boîte de dialogue Définir une relation.

    Boîte de dialogue Définir une relation

  5. Cliquez sur OK.

    Notez l'icône plusieurs-à-plusieurs qui représente la relation entre la dimension Sales Reason et le groupe de mesures Internet Sales, comme le montre l'illustration suivante.

    Relation entre une dimension et un groupe de mesures

Exploration du cube et de la dimension plusieurs-à-plusieurs

Exploration du cube et de la dimension plusieurs-à-plusieurs

  1. Dans le menu Générer, cliquez sur Déployer Analysis Services Tutorial.

  2. Une fois le déploiement terminé, affichez l'onglet Navigateur dans le Concepteur de cube pour le cube du didacticiel Analysis Services, puis cliquez sur Reconnexion.

  3. Supprimez chaque niveau de la hiérarchie utilisateur Internet Sales Orders de la zone de lignes du volet Données et remplacez-les par la hiérarchie utilisateur Sales Reasons à partir de la dimension Sales Reason.

  4. Vérifiez si la mesure Internet Sales-Sales Amount apparaît toujours dans la zone de données du volet Données et si le membre Adam Powell de la dimension Customer apparaît dans le volet Filtre. Si ce n'est pas le cas, ajoutez la mesure Internet Sales-Sales Amount à la zone de données et ajoutez le membre Adam Powell de la hiérarchie définie par l'utilisateur Customer Geography à la zone de sous-cubes (Australia-Queensland-Brisbane-4000).

  5. Dans le volet Filtre, le volet supérieur au centre de la zone de dessin, choisissez Queensland comme Expression de filtre. Pour cela, désactivez la case à cocher en regard de Adam Powell et activez la case à cocher en regard de Queensland dans la liste Expression de filtre.

  6. Développez chaque membre du niveau Sales Reason Type pour passer en revue les valeurs en dollars associées aux motifs d'achat indiqués par les clients du Queensland pour un produit Adventure Works acheté sur Internet.

    Notez que la somme des totaux associés à chaque raison de vente est supérieure au total des ventes. Cela s'explique par le fait que certains clients ont cité plusieurs raisons pour leur achat.

    L'illustration suivante montre le volet Filtre et le volet Données du Concepteur de cube.

    Volets Filtre et Données du Concepteur de cube

Tâche suivante de la leçon

Définition de la granularité des dimensions dans un groupe de mesures

Voir aussi

Autres ressources

Relations de dimension
Définition d'une relation plusieurs à plusieurs et des propriétés d'une relation plusieurs à plusieurs

Aide et Informations

Assistance sur SQL Server 2005