Leçon 9 : Définition d'une entité de recherche

Certaines entités peuvent contenir un seul attribut susceptible d'intéresser les personnes désireuses de créer des rapports. Par exemple, dans l'entité Product SubCategory, l'attribut Name est sans doute le seul attribut digne d'intérêt pour les utilisateurs du Générateur de rapports. Au lieu de demander aux utilisateurs des modèles d'accéder à l'entité contenant l'attribut en question chaque fois qu'ils souhaitent ajouter cet attribut à leur rapport, vous pouvez transformer le rôle en entité de recherche. Lorsque vous transformez un rôle en entité de recherche, l'attribut d'identification apparaît en tant que champ dans l'entité parente. Par exemple, si vous transformez l'entité Product SubCategory en entité de recherche, l'attribut Product SubCategory Name apparaît en tant que champ de l'entité Product pour les utilisateurs du Générateur de rapports et non en tant que rôle.

En règle générale, le changement de rôle en entité de recherche est utile si vos informations sont organisées de manière hiérarchique. Par exemple, si vous disposez d'entités séparées pour les éléments City et State/Province et si State/Province est un rôle de l'entité City, vous pouvez transformer le rôle State/Province en entité de recherche pour le faire apparaître sous la forme d'un champ au sein de l'entité City. Qui plus est, si l'entité Country est un rôle de l'entité State/Province, vous pouvez à votre guise marquer le rôle Country en tant qu'entité de recherche, puis le promouvoir afin qu'il soit traité en tant que tel et apparaisse également en qualité de champ dans l'entité City pour les utilisateurs du Générateur de rapports. L'expression « dénormaliser une hiérarchie » est un terme de modélisation courant qui définit cette action.

Les entités que vous cherchez à utiliser en tant qu'entités de recherche ne peuvent contenir qu'un seul attribut dans la propriété IdentifyingAttribute. Un attribut d'identification est un attribut qui identifie l'entité de manière unique. Par exemple, l'attribut Product Category Name identifie de façon unique chaque catégorie de produit. L'attribut spécifié en tant qu'attribut d'identification correspond à l'attribut qui apparaît dans l'entité parente lorsque vous transformez l'entité en entité de recherche.

Pour transformer une entité en entité de recherche, redéfinissez la propriété IsLookup à True. Pour transformer une chaîne hiérarchique d'entités en entités de recherche, vous devez également définir la propriété PromoteLookup à True. Par exemple, imaginons que le rôle Country est une entité de recherche au sein de l'entité State/Province et que vous souhaitez à présent qu'il apparaisse en tant que champ dans l'entité City : vous devez également attribuer la valeur True à la propriété PromoteLookup dans le rôle Country de l'entité State. Dans cette leçon, vous allez transformer le rôle Product Subcategory en entité de recherche destinée à l'entité Product, transformer le rôle Product Category en entité de recherche pour l'entité Product Subcategory, puis enfin promouvoir le rôle pour le faire apparaître en tant que champ dans l'entité Product également.

Pour spécifier une entité de recherche

  1. Revenez au modèle AdventureWorks2008R2 dans la fenêtre SQL Server Business Intelligence Development Studio.

  2. Dans l'arborescence, développez le dossier Product Details.

  3. Sélectionnez l'entité Product Subcategory.

    L'entité Product Subcategory possède un seul élément IdentifyingAttribute : le champ Name. Une entité de recherche peut comporter un seul élément IdentifyingAttribute.

  4. Dans la fenêtre Propriétés, recherchez la propriété IsLookup, puis sélectionnez True.

    Lors du déploiement du modèle de rapport, l'entité Product Subcategory apparaît en tant que champ dans l'entité Product.

Pour promouvoir une entité en entité de recherche

  1. Dans l'arborescence, sélectionnez l'entité Product Category.

  2. Dans la fenêtre Propriétés, recherchez la propriété IsLookup, puis sélectionnez True.

  3. Dans l'arborescence, sélectionnez l'entité Product Subcategory.

  4. Dans l'arborescence, sélectionnez le rôle Product Category.

  5. Dans la fenêtre Propriétés, recherchez la propriété PromoteLookup, puis sélectionnez True.

    Le choix de cette propriété permet de promouvoir l'entité de recherche Product Category pour qu'elle apparaisse également en tant qu'attribut dans l'entité Product.

Pour réorganiser les attributs au sein d'une entité

  1. Dans l'arborescence, sélectionnez l'entité Product.

  2. Dans la liste, cliquez avez le bouton droit sur l'entité Product Subcategory, puis sélectionnez Monter.

  3. Cliquez sur Monter jusqu'à ce que l'entité Product Subcategory apparaisse sous l'attribut Name.

  4. Dans le menu Fichier, cliquez sur Enregistrer tout.

Étapes suivantes

Désormais, les utilisateurs n'ont pas besoin d'accéder à l'entité Product Category ou Product Subcategory pour rechercher les noms de catégories ou de sous-catégories. À la place, chaque entité apparaît dans l'entité Product ; l'utilisateur peut l'ajouter à ses rapports comme n'importe quel autre champ.

Dans la leçon suivante, vous allez modifier les propriétés d'une entité afin qu'elle hérite des champs d'une autre entité. Consultez Leçon 10 : Héritage des propriétés d'autres entités.