Поделиться через


Занятие 9. Указание уточняющей сущности

Некоторые сущности могут содержать только один необходимый для индивидуального создания отчетов атрибут. Например, атрибут «Название» может быть единственным атрибутом сущности «Подкатегория продукта», необходимым для пользователей построителя отчетов. Вместо того чтобы заставлять пользователей модели переходить к сущности, которая содержит единственный атрибут, всякий раз при добавлении его к отчету можно изменить роль атрибута на уточняющую сущность. При изменении роли на уточняющую сущность указанный атрибут появляется в виде поля родительской сущности. Например, если сущность «Подкатегория продукта» становится уточняющей сущностью, атрибут «Название подкатегории продукта» появляется для пользователей построителя отчетов в виде поля сущности «Продукт», а не в виде роли.

Обычно изменить роль на уточняющую сущность полезно в случае, если данные имеют иерархический формат. Например, если имеются отдельные сущности для города и штата/провинции и сущность «Штат/провинция» является ролью сущности «Город», можно сделать роль «Штат/провинция» уточняющей сущностью, в результате чего она появится в виде поля сущности «Город». К тому же, если сущность «Страна» является ролью сущности «Штат/провинция», можно пометить первую как уточняющую сущность, а затем продвинуть ее, чтобы с ней обращались как с уточняющей сущностью и она появилась в сущности «Город» в качестве поля для пользователей построителя отчетов. В терминах моделирования это действие называется денормализацией иерархии.

Сущности, которые можно использовать в качестве уточняющих сущностей, могут иметь только один атрибут, указанный в свойстве IdentifyingAttribute. Идентифицирующий атрибут — это атрибут, который полностью определяет сущность, например атрибут «Название категории продукта» полностью определяет категорию продукта. Атрибут, указанный в качестве идентифицирующего, — это атрибут, который появляется в родительской сущности, когда сущность становится уточняющей сущностью.

Чтобы сделать сущность уточняющей сущностью, измените ее свойство IsLookup на True. Чтобы превратить иерархическую цепочку сущностей в уточняющие сущности, нужно также установить свойство PromoteLookup в значение True. Пусть, например, роль «Страна» — уточняющая сущность для сущности «Штата/провинции», и нужно, чтобы роль «Страна» появилась в виде поля в сущности «Город». Для этого нужно задать значение True в свойстве PromoteLookup роли «Страна». На этом занятии роль «Подкатегория продукта» будет изменена так, что она станет уточняющей сущностью для сущности «Продукт», затем роль «Категория продукта» будет сделана уточняющей сущностью для сущности «Подкатегории продукта», после чего роль будет продвинута и появится в виде поля в сущности «Продукт».

Указание уточняющей сущности

  1. Перейдите к модели AdventureWorks в окне среды SQL ServerBusiness Intelligence Development Studio.

  2. В представлении дерева раскройте папку Сведения о продукте.

  3. Выберите сущность Подкатегория продукта.

    Сущность Подкатегория продукта имеет единственный атрибут IdentifyingAttribute: поле Имя. Уточняющая сущность может иметь только один атрибут IdentifyingAttribute.

  4. В окне «Свойства» найдите свойство IsLookup и выберите значение True.

    После развертывания модели отчета сущность «Подкатегория продукта» появится в виде поля сущности «Продукт».

Продвижение сущности до уточняющей сущности

  1. В представлении дерева выберите сущность Категория продукта.

  2. В окне «Свойства» найдите свойство IsLookup и выберите значение True.

  3. В представлении дерева выберите сущность Подкатегория продукта.

  4. В представлении списка выберите роль Категория продукта.

  5. В окне «Свойства» найдите свойство PromoteLookup и выберите значение True.

    Задание этого свойства продвигает уточняющую сущность «Категория продукта», так что она появляется в виде атрибута в сущности «Продукт».

Реорганизация атрибутов в сущности

  1. В представлении дерева выберите сущность Продукт.

  2. В представлении списка щелкните правой кнопкой мыши сущность Подкатегория продукта и выберите Вверх.

  3. Нажимайте Вверх, пока сущность Подкатегория продукта не окажется под атрибутом Имя.

  4. В меню Файл выберите команду Сохранить все.

Следующие шаги

Теперь нет необходимости перемещаться к сущностям «Категория продукта» или «Подкатегория продукта», чтобы получить их имена. Вместо этого каждая сущность будет представлена полем в сущности «Продукт», которое можно будет добавить в отчет, как любое другое.

На следующем занятии будут изменены свойства одной из сущностей, в результате чего она унаследует поля другой сущности. См. раздел Занятие 10. Наследование свойств других сущностей.