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


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

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

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

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

ms170463.note(ru-ru,SQL.90).gifПримечание.
Для поддержки связи измерений «многие ко многим» в представлении источника данных должна быть определена связь первичный ключ — внешний ключ между всеми задействованными таблицами. В обратном случае будет невозможно выбрать верную промежуточную группу мер при определении связи на вкладке Использование измерений конструктора кубов.

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

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

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

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

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

  2. Щелкните правой кнопкой мыши область Организатор схем, выберите команду Создать диаграмму и укажите Internet Sales Order Reasons в качестве имени созданной диаграммы. Дополнительные сведения см. в разделе Работа с диаграммами в представлении источника данных (службы Analysis Services).

    Новая диаграмма создается без таблиц и отображается в области Диаграмма.

  3. Перетащите таблицу InternetSales (dbo.FactInternetSales) в область Диаграмма из области Таблицы.

  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 и откройте вкладку Структура куба.

  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.

    Свойства меры «Количество причин продаж через Интернет»

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

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

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

  2. В диалоговом окне Добавление измерения куба нажмите кнопку Создать измерение.

    Будет открыт мастер измерений.

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

  4. На странице Выбор представления источника данных нажмите кнопку Далее, чтобы выбрать данные для измерения из представления источника данных DW Adventure Works.

  5. На странице Выбор типа измерения нажмите кнопку Далее и укажите, что в качестве измерения будет использоваться стандартное измерение.

  6. На странице Выбор основной таблицы измерения, в списке Основная таблица выберите значение dbo.DimSalesReason, в списке Столбец, содержащий имя элемента (необязательно) выберите значение SalesReasonName и нажмите кнопку Далее.

  7. На странице Выбор атрибутов измерения, снимите флажок у атрибута Sales Reason Alternate Key, измените имя атрибута с Sales Reason Reason Type на Sales Reason Type и нажмите кнопку Готово.

  8. На странице Завершение работы мастера нажмите кнопку Готово, чтобы создать измерение Sales Reason, а затем кнопку ОК, чтобы добавить созданное измерение базы данных в куб учебника по службам Analysis Services в качестве измерения куба.

  9. Откройте измерение Sales Reason в конструкторе измерений.

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

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

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

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

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

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

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

  2. Нажмите кнопку с многоточием (...) в ячейке на пересечении группы мер Internet Sales и измерения Sales Reason.

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

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

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

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

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

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

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

    Связь между измерением и группой мер

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

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

  1. В меню Сборка выберите команду Развернуть «Учебник по службам Analysis Services».

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

  3. Удалите каждый уровень иерархии Internet Sales Orders из раздела строк области Данные и замените их иерархией Sales Reason из измерения Sales Reasons.

  4. Убедитесь, что в разделе данных области Данные по-прежнему отображается мера Internet Sales-Sales Amount, а в области Фильтр отображается элемент измерения Customer с именем Adam Powell. Если нет, добавьте меру Internet Sales-Sales Amount в область данных и добавьте элемент с именем Adam Powell пользовательской иерархии Customer Geography в область вложенных кубов (Australia-Queensland-Brisbane-4000).

  5. В области Фильтр, которая расположена в центре верхней части области конструктора, измените Критерий фильтра на Queensland, сняв флажок для элемента Adam Powell и установив флажок для элемента Queensland в списке Критерий фильтра.

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

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

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

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

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

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

См. также

Другие ресурсы

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

Справка и поддержка

Получение помощи по SQL Server 2005