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


Определение связи «многие ко многим»

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

В службах Службы Analysis Services связь «многие ко многим» между измерением и группой мер определяется указанием промежуточной таблицы фактов, которая соединяется с таблицей измерения. В свою очередь, промежуточная таблица фактов соединена с промежуточной таблицей измерения, с которой связана эта таблица фактов. Связи «многие ко многим» между промежуточной таблицей фактов, таблицами измерений в этой связи и промежуточным измерением создают связи «многие ко многим» между элементами первичных измерений и мерами группы мер, которая указана данной связью. Чтобы определить связь «многие ко многим» между измерением и группой мер через промежуточную группу мер, промежуточная группа мер должна иметь одно или несколько общих измерений с исходной группой мер.

С измерением «многие ко многим» значения суммируются отдельно, что означает, что они не вычисляются более одного раза для элемента «Все».

ПримечаниеПримечание

Для поддержки связи измерений «многие ко многим» в представлении источника данных должна быть определена связь первичный ключ — внешний ключ между всеми задействованными таблицами. В обратном случае будет невозможно выбрать верную промежуточную группу мер при определении связи на вкладке Использование измерений конструктора кубов.

Дополнительные сведения см. в разделах Связи измерений и Определение связей «многие ко многим» и свойств связей «многие ко многим».

В задачах этого раздела предстоит определить измерение Sales Reasons и группу мер Sales Reasons, а также создать связь «многие ко многим» между измерением Sales Reasons и группой мер Internet Sales через группу мер Sales Reasons.

Добавление необходимых таблиц к представлению источника данных

  1. Откройте конструктор представлений источника данных для представления источника данных Adventure Works DW 2012.

  2. Щелкните правой кнопкой мыши панель Организатор диаграмм, выберите команду Создать диаграмму и укажите Причина заказа через Интернет в качестве имени созданной диаграммы.

  3. Перетащите таблицу InternetSales с панели Таблицы на панель Диаграмма.

  4. Щелкните правой кнопкой мыши панель Диаграмма и выберите команду Добавить или удалить таблицы.

  5. В диалоговом окне Добавление или удаление таблиц добавьте в список Включенные объекты таблицы DimSalesReason и FactInternetSalesReason, а затем нажмите кнопку ОК.

    Обратите внимание, что связь первичный ключ — внешний ключ между задействованными таблицами создается автоматически, так как эти связи определены в базовой реляционной базе данных. Если эти связи не определены в базовой реляционной базе данных, их следует определить в представлении источника данных.

  6. В меню Формат выберите команду Автоматический макет и щелкните значок Диаграмма.

  7. В окне свойств измените свойство FriendlyName таблицы DimSalesReason на SalesReason, затем измените свойство FriendlyName таблицы FactInternetSalesReason на InternetSalesReason.

  8. На панели Таблицы раскройте узел InternetSalesReason (dbo.FactInternetSalesReason), щелкните столбец SalesOrderNumber и просмотрите в окне свойств свойство DataType для этого столбца данных.

    Обратите внимание, что в качестве типа данных для столбца SalesOrderNumber указан тип данных string.

  9. Просмотрите типы данных для других столбцов таблицы FactInternetSalesReason.

    Обратите внимание, что для остальных двух столбцов этой таблицы указаны числовые типы данных.

  10. На панели Таблицы щелкните правой кнопкой мыши таблицу InternetSalesReason (dbo.FactInternetSalesReason) и выберите команду Просмотр данных.

    Обратите внимание, что для каждого номера строки каждого заказа значение ключа указывает причину покупки данной позиции линии, как показано на следующем рисунке.

    Ключевое значение, определяющее причину продажи

Определение промежуточной группы мер

  1. Переключитесь в конструктор кубов на куб Службы Analysis Services Tutorial и откройте вкладку Структура куба.

  2. Щелкните правой кнопкой мыши панель Меры и выберите команду Создать группу мер. Дополнительные сведения см. в разделе Меры и группы мер в многомерных моделях.

  3. В диалоговом окне Создание группы мер в списке Выберите таблицу из представления источника данных выберите таблицу InternetSalesReason и нажмите кнопку ОК.

    Обратите внимание, что на панели Меры теперь отображается группа мер Internet Sales Reason.

  4. Разверните группу мер Internet Sales Reason.

    Обратите внимание, что для этой группы мер определена единственная мера, Internet Sales Reason Count.

  5. Выберите меру Internet Sales Reason Count и просмотрите свойства этой меры в окне свойств.

    Обратите внимание, что свойство AggregateFunction для этой меры определено как Число, а не Сумма. Значение Число выбрано службами Службы Analysis Services, поскольку базовый тип данных — строковый. Другие два столбца в базовой таблице фактов не были выделены как меры, поскольку в службах Службы Analysis Services они определены как числовые ключи, а не фактические меры. Дополнительные сведения см. в разделе Определение полуаддитивного режима.

  6. В окне «Свойства» измените значение свойства Visible меры Internet Sales Reason Count на False.

    Эта мера будет использована только для соединения измерения Sales Reason, которое предстоит определить после группы мер Internet Sales. Пользователи не смогут просматривать эту меру.

    На следующем рисунке демонстрируются свойства меры Internet Sales Reason Count.

    Свойства меры Internet Sales Reason Count

Определение измерения «многие ко многим»

  1. В обозревателе решений щелкните правой кнопкой мыши узел Измерения и выберите команду Создать измерение.

  2. На странице Вас приветствует мастер измерений нажмите кнопку Далее.

  3. На странице Выбор метода создания выберите параметр Использовать существующую таблицу и нажмите кнопку Далее.

  4. На странице Определение исходных сведений убедитесь, что выбрано представление источника данных Adventure Works DW 2012.

  5. В списке Основная таблица выберите таблицу SalesReason.

  6. Убедитесь, что в списке Ключевые столбцы присутствует столбец SalesReasonKey.

  7. В списке Столбец имени выберите SalesReasonName.

  8. Нажмите кнопку Далее.

  9. На странице Выбор атрибутов измерения атрибут Sales Reason Key автоматически выбран, поскольку он является ключевым. Установите флажок рядом с атрибутом Sales Reason Reason Type, измените его имя на Sales Reason Type и нажмите кнопку Далее.

  10. На странице Завершение работы мастера нажмите кнопку Готово, чтобы создать измерение Sales Reason.

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

  12. На панели Атрибуты конструктора измерений для измерения Sales Reason выберите Sales Reason Key и в окне свойств задайте для свойства Name значение Sales Reason.

  13. На панели Иерархии конструктора измерений создайте пользовательскую иерархию Sales Reasons, которая будет содержать уровни Sales Reason Type и Sales Reason (в указанном порядке).

  14. В окне свойств задайте значение Все причины покупки для свойства AllMemberName иерархии Sales Reason.

  15. Укажите значение Все причины покупки для свойства AttributeAllMemberName измерения Sales Reason.

  16. Чтобы добавить созданное измерение в куб Службы Analysis Services Tutorial, переключитесь в Конструктор кубов. На вкладке Структура куба щелкните правой кнопкой мыши на панели Измерения и выберите команду Добавить измерение куба.

  17. В диалоговом окне Добавление измерения куба выберите Sales Reason и нажмите кнопку ОК.

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

Определение связи «многие ко многим»

  1. Переключитесь в конструкторе кубов на куб Службы Analysis Services Tutorial и откройте вкладку Использование измерений.

    Обратите внимание, что измерение Sales Reason имеет обычную связь, определенную группой мер Internet Sales Reason, но не имеет связи, определенной группами мер Internet Sales или Reseller Sales. Обратите внимание, что измерение Подробности заказа через Интернет имеет обычную связь, определенную измерением Причина продажи через Интернет, которое в свою очередь имеет Fact Relationship с группой мер Internet Sales. Если измерение не найдено (или не найдено другое измерение со связью с обеими группами мер, Internet Sales Reason и Internet Sales), не получится определить связь «многие ко многим».

  2. Щелкните ячейку на пересечении группы мер Продажи через Интернет и измерения Причина покупки, а затем нажмите кнопку обзора (...).

  3. В диалоговом окне Задание связи в списке Выберите тип связи укажите значение Многие ко многим.

    Требуется определить промежуточную группу мер, соединяющую измерение Sales Reason и группу мер Internet Sales.

  4. В списке Промежуточная группа мер выберите значение Internet Sales Reason.

    На следующем рисунке отражены изменения, сделанные в диалоговом окне Задание связи.

    Диалоговое окно «Задание связи»

  5. Нажмите кнопку ОК.

    Обратите внимание на значок «многие ко многим», который отражает связь между измерением Sales Reason и группой мер Internet Sales.

Просмотр куба и измерения «многие ко многим»

  1. В меню Сборка выберите команду Развернуть Analysis Services Tutorial.

  2. После успешного завершения развертывания перейдите на вкладку Обозреватель в конструкторе кубов Службы Analysis Services Tutorial и нажмите кнопку Повторное соединение.

  3. В раздел данных панели «Данные» добавьте меру Internet Sales-Sales Amount.

  4. Добавьте определенную пользователем иерархию Sales Reasons из измерения Sales Reason в раздел строк панели данных.

  5. На панели метаданных разверните узлы Customer, Location, Customer Geography, Members, All Customers, Australia, щелкните правой кнопкой мыши элемент Queensland и выберите команду Добавить в фильтр.

  6. Раскройте каждый из элементов уровня Sales Reason Type, чтобы просмотреть суммы в долларах для каждой из причин, которые выдвинул заказчик из штата Квинсленд (Queensland) в обоснование покупки товара Adventure Works через Интернет.

    Обратите внимание, что итоговые суммы по каждой из причин покупки в совокупности больше, чем общая сумма продаж. Это вызвано тем, что некоторые заказчики указали несколько причин покупки.

    На следующем рисунке показаны панели конструктора кубов Фильтр и Данные.

    Панели «Фильтр» и «Данные» конструктора кубов

Следующая задача занятия

Определение степени гранулярности измерения в группе мер

См. также

Основные понятия

Работа с диаграммами в конструкторе представлений источника данных (службы Analysis Services)

Связи измерений

Определение связей «многие ко многим» и свойств связей «многие ко многим»