Пользовательские иерархии
Пользовательские иерархии представляют собой определяемые пользователем иерархии атрибутов, которыми службы MicrosoftSQL ServerAnalysis Services пользуются для организации элементов измерения в иерархические структуры и обеспечения навигационных путей в кубе. Например, в следующей таблице определена таблица измерения для измерения времени. Эта таблица измерения поддерживает три атрибута: «Год», «Квартал» и «Месяц».
Год |
Квартал |
Месяц |
---|---|---|
1999 |
Квартал 1 |
Январь |
1999 |
Квартал 1 |
Февраль |
1999 |
Квартал 1 |
Март |
1999 |
Квартал 2 |
Апрель |
1999 |
Квартал 2 |
Май |
1999 |
Квартал 2 |
Июнь |
1999 |
Квартал 3 |
Июль |
1999 |
Квартал 3 |
Август |
1999 |
Квартал 3 |
Сентябрь |
1999 |
Квартал 4 |
Октябрь |
1999 |
Квартал 4 |
Ноябрь |
1999 |
Квартал 4 |
Декабрь |
Атрибуты «Год», «Квартал» и «Месяц» используются для построения пользовательской иерархии «Календарь» в измерении времени. Связь между уровнями и элементами измерения «Календарь» (обычного измерения) показана на следующей диаграмме.
Примечание |
---|
Любая иерархия, отличная от двухуровневой иерархии атрибутов по умолчанию, называется пользовательской иерархией. Дополнительные сведения об иерархиях атрибутов см. в разделе Атрибуты и иерархии атрибутов. |
Структуры элементов
За исключением иерархий типа «родители-потомки», положения элементов в иерархии контролируются порядком атрибутов в определении иерархии. Каждый атрибут в определении иерархии составляет один уровень иерархии. Положение элемента в пределах уровня определяется порядком атрибута, используемого для создания уровня. Пользовательские иерархии могут принимать одну из четырех базовых форм структур элементов согласно способу их связи друг с другом.
Сбалансированные иерархии
В сбалансированной иерархии все ветви иерархии опускаются до одного уровня, и логическим «родителем» каждого элемента является уровень непосредственно над элементом. Иерархия «Категории продуктов» измерения «Продукт» в образце базы данных Adventure Works DW служб Analysis Services представляет собой хороший пример сбалансированной иерархии. Каждый элемент уровня «Имя продукта» имеет «родительский» элемент на уровне «Подкатегория», который в свою очередь имеет «родительский» элемент на уровне «Категория». Кроме того, каждая ветвь иерархии имеет конечный элемент на уровне «Название продукта».
Несбалансированные иерархии
В несбалансированной иерархии ветви иерархии опускаются до различных уровней. Иерархии типа «родители-потомки» являются несбалансированными. Например, измерение «Организация» в образце базы данных Adventure Works DW служб Analysis Services содержит по одному элементу на каждого сотрудника. Генеральный директор является верхним элементом в иерархии, а руководители подразделений и исполнительный секретарь находятся непосредственно под генеральным директором. Руководители подразделений имеют подчиненные элементы, а исполнительный секретарь — нет.
Для конечных пользователей может быть невозможно провести различие между несбалансированными и клочковатыми иерархиями. Однако для поддержки этих двух типов иерархий в службах Analysis Services применяются различные методы и свойства. Дополнительные сведения см. в разделах Работа с неровными иерархиями и Работа с атрибутами в иерархиях типа «родители-потомки».
Неоднородные иерархии
В неоднородной иерархии по крайней мере у одного элемента логический родитель не находится ровно на один уровень выше самого элемента. Это может привести к тому, что ветви иерархии опускаются до различных уровней. Например, в измерении «География», определенном с уровнями «Континент», «Страна» и «Город» именно в этом порядке, элемент «Европа» отображается на верхнем уровне иерархии, элемент «Франция» отображается на среднем уровне, а элемент «Париж» — на нижнем уровне. «Франция» является более точным определением, чем «Европа», а «Париж» является более точным определением, чем «Франция». В эту обычную иерархию вносятся следующие изменения.
Элемент «Ватикан» добавляется к уровню «Страна».
Элементы добавляются к уровню «Город» и связываются с элементом «Ватикан» уровня «Страна».
Уровень с именем «Район» добавляется между уровнями «Страна» и «Город».
Уровень «Район» заполняется элементами, связанными с другими элементами уровня «Страна», а элементы уровня «Город» связываются соответствующими им элементами уровня «Район». Однако поскольку элемент «Ватикан» уровня «Страна» не имеет связанных с ним элементов уровня «Район», элементы с уровня «Город» должны быть непосредственно связаны с элементом «Ватикан» уровня «Страна». В результате произведенных изменений иерархия измерения стала неровной. Родительским элементом города «Ватикан» является страна «Ватикан», которая не находится на уровне непосредственно над элементом «Ватикан» уровня «Город». Дополнительные сведения см. в разделе Работа с неровными иерархиями.
Иерархии типа «родители-потомки»
Иерархии типа «родители-потомки» для измерений определяются с использованием специального атрибута, называемого «родительским», для определения того, как элементы относятся друг к другу. Родительский атрибут описывает связь, ссылающуюся на себя (или самосоединение) в пределах главной таблицы измерения. Иерархии типа «родители-потомки» создаются из одного родительского атрибута. Иерархии типа «родители-потомки» присваивается только один уровень, поскольку уровни, присутствующие в иерархии, получаются в результате связи типа «родители-потомки» между элементами, связанными с родительским атрибутом. Схема измерения иерархии типа «родители-потомки» зависит от самосоединения, присутствующего в главной таблице измерения. Например, на следующей диаграмме показана главная таблица измерения DimOrganization в образце базы данных AdventureWorksDW служб Analysis Services.
В этой таблице измерения столбец ParentOrganizationKey имеет связь по внешнему ключу со столбцом первичного ключа OrganizationKey. Иными словами, каждая запись в этой таблице может быть посредством связи типа «родители-потомки» сопоставлена с другой записью в таблице. Подобный тип самосоединения обычно используется для представления данных сущности организации (например, структуры управления сотрудниками в отделе).
При создании иерархии типа «родители-потомки» столбцы, представленные обоими атрибутами, должны иметь одинаковый тип данных. Оба атрибута также должны находиться в одной и той же таблице. По умолчанию любой элемент, «родительский» ключ которого равен его собственному ключу элемента, значению NULL, 0 (нулю) или значению, отсутствующему в столбце для ключей элементов, считается элементом верхнего уровня (исключая уровень «Все»).
Глубина иерархии типа «родители-потомки» может изменяться между ее иерархическими ветвями. Иными словами, иерархия типа «родители-потомки» считается несбалансированной.
В отличие от пользовательских иерархий, в которых общее количество уровней определяет число уровней, видимое конечному пользователю, иерархия типа «родители-потомки» определяется единственным уровнем иерархии атрибутов, а значения в нем реализуют несколько уровней, видимых конечными пользователями. Количество отображаемых уровней зависит от содержимого столбца таблицы измерения, в котором хранятся ключи элементов и «родительские» ключи. Количество уровней может изменяться при изменении данных в таблицах измерения. Дополнительные сведения см. в разделах Определение иерархии типа «родители-потомки» и Работа с атрибутами в иерархиях типа «родители-потомки».
См. также