Занятие 9. Указание уточняющей сущности
Добавления: 5 декабря 2005 г.
Некоторые сущности могут содержать только один необходимый для индивидуального создания отчетов атрибут. Например, атрибут Name, возможно, единственный необходимый для пользователей построителя отчетов в сущности Product SubCategory. Вместо того чтобы заставлять пользователей модели переходить к сущности, которая содержит единственный атрибут, каждый раз при необходимости добавления его к отчету, можно изменить роль на уточняющую сущность. Когда роль изменена на уточняющую сущность, указанный атрибут появляется в виде поля родительской сущности. Например, если сущность Product SubCategory становится уточняющей сущностью, атрибут Product SubCategory Name появляется для пользователей построителя отчетов в виде поля сущности Product вместо роли.
В общем, полезно изменить роль на уточняющую сущность, если данные имеют иерархический формат. Например, если имеются отдельные сущности для города и штата/провинции и сущность State/Province является ролью сущности City, можно сделать роль State/Province уточняющей сущностью, так что она появится в виде поля сущности City. К тому же, если сущность Country является ролью сущности State/Province, можно пометить первую как уточняющая сущность, а затем продвинуть ее, чтобы с ней обращались как с уточняющей сущностью и она появилась в сущности City в качестве поля для пользователей построителя отчетов. Обычный термин моделирования для этого действия — денормализация иерархии.
Сущности, которые можно использовать в качестве уточняющих сущностей, могут иметь только один атрибут, указанный в свойстве IdentifyingAttribute. Идентифицирующий атрибут — этот тот, который полностью определяет сущность, например атрибут Product Category Name полностью определяет категорию продукта. Атрибут, указанный в качестве идентифицирующего, — это атрибут, который появляется в родительской сущности, когда сущность становится уточняющей сущностью.
Чтобы сделать сущность уточняющей сущностью, измените свойство IsLookup на True. Чтобы превратить иерархическую цепочку сущностей в уточняющие сущности, нужно также установить свойство PromoteLookup в значение True. Пусть, например, роль Country — уточняющая сущность внутри сущности State/Province, а теперь нужно, чтобы роль Country появилась в виде поля в сущности City. Для этого нужно задать значение True в свойстве PromoteLookup роли Country. В этом занятии роль Product Subcategory будет изменена так, что она станет уточняющей сущностью для сущности Product, затем роль Product Category будет сделана уточняющей сущностью для сущности Product Subcategory, после чего роль будет продвинута, и она появится в виде поля в сущности Product.
Указание уточняющей сущности
Вернитесь к модели AdventureWorks в окне среды SQL Server Business Intelligence Development Studio.
В представлении «Дерево» раскройте папку Product Details.
Выберите сущность Product Subcategory.
Сущность Product Subcategory имеет единственный атрибут IdentifyingAttribute: поле Name. Атрибут IdentifyingAttribute у уточняющей сущности может быть только один.
В окне «Свойства» найдите свойство IsLookup и выберите значение True.
После развертывания модели отчета сущность Product Subcategory появится в виде поля сущности Product.
Продвижение сущности в уточняющую сущность
В представлении «Дерево» выберите сущность Product Category.
В окне «Свойства» найдите свойство IsLookup и выберите значение True.
В представлении «Дерево» выберите сущность Product Subcategory.
В представлении «Список» выберите роль Product Category.
В окне «Свойства» найдите свойство PromoteLookup и выберите значение True.
Задание этого свойства продвигает уточняющую сущность Product Category, так что она появляется в виде атрибута в сущности Product.
Реорганизация атрибутов в сущности
В представлении «Дерево» выберите сущность Product.
В представлении «Список» щелкните правой кнопкой мыши сущность Product Subcategory и выберите Вверх.
Нажимайте Верх, пока сущность Product Subcategory не появится под атрибутом Name.
В меню Файл выберите команду Сохранить все.
Следующие шаги
Теперь пользователям не нужно перемещаться в сущности Product Category или Product Subcategory, чтобы получить их имена. Вместо этого каждая сущность будет представлена полем в сущности Product, которое можно будет добавить в отчет, как любое другое.
В следующем занятии будут изменены свойства одной из сущностей, так что она унаследует поля другой. См. раздел Занятие 10. Наследование свойств других сущностей.
См. также
Задачи
Учебник. Уточнение модели отчетов в конструкторе моделей
Основные понятия
Учебники по службам Reporting Services
Другие ресурсы
Работа с конструктором моделей