logo search
FINAL (Verdana, 16)

33. Объясните понятие «многомерное выражение». Сформулируйте основные подходы к построению запросов к многомерным базам данных

Многомерные выражения (MDX) — язык запросов, предназначенный для работы с многомерными данными и получения их. MDX основаны на спецификации XML для аналитики (XMLA) с некоторыми расширениями. MDX состоят из идентификаторов, значений, инструкций, функций и операторов, которые могут вычисляться для получения объекта (набора или элемента) или скалярного значения (строки или числа).

MDX применяются для запросов многомерных данных или для работы с кубами. OLAP-куб создается на основе мер, измерений и атрибутов измерений.

  1. Измерение БД — это коллекция атрибутов измерения, связанных с ключевым атрибутом, который в свою очередь связан с фактами в измерении мер;

  2. Атрибут измерения привязан к одному или более столбцам в таблице измерения и состоит из элементов;

  3. Элементы:

Элемент «(Все)» — это вычисленное значение всех элементов в иерархии атрибута или польз. иерархии;

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

Дочерний элемент — это элемент иерархии ниже верхнего уровня;

Элемент данных — это дочерний элемент, связанный с родительским элементов в иерархии «родители-потомки». Элемент данных содержит значение данных для родительского элемента;

Конечный элемент — это элемент иерархии, у которого нет дочерних элементов;

Родительский элемент — это элемент иерархии типа «родители-потомки», содержащий статистическое значение его дочерних элементов;

  1. Мера — это значение из таблицы фактов. Значение в измерении мер часто называют общим термином элемент;

  2. Измерение мер — это измерение, содержащее все меры куба. Измерение мер является измерением специального типа, в котором элементы обычно статистически вычислены;

  3. Группа мер — это коллекция связанных мер в кубе. Куб может содержать несколько групп мер;

  4. Ключевой атрибут измерения БД — это атрибут, с которым связаны все неключевые атрибуты измерения. Часто является атрибутом гранулярности;

  5. Атрибут гранулярности – атрибут измерения куба, связывающий измерение с фактами в группе мер в измерении мер. Если атрибут гранулярности и ключевой атрибут — это разные атрибуты, то неключевые атрибуты должны быть напрямую или косвенно связаны с атрибутом гранулярности;

  6. Измерение куба — это экземпляр измерения БД в кубе;

  7. Иерархия атрибута — это иерархия элементов атрибута, содержащая следующие уровни.

  1. Связь атрибутов — это связь между атрибутами типа «один ко многим»;

  2. Свойство элемента — это свойство элемента атрибута;

  3. Ячейка куба — пространство, существующее на пересечении элемента измерения меры и элемента каждой иерархии атрибута куба;

  4. Пространство куба — это совокупность элементов иерархий атрибутов куба с мерами куба;

  5. Вложенный куб — это подмножество куба, полученное на основании отфильтрованного представления куба. Вложенный куб, определенный в предложении подзапроса выборки в запросе многомерных выражений, содержит все элементы, существующие в определении вложенного куба, в соответствии со следующими условиями.

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

  1. Кортеж — это набор элементов одного или нескольких разных измерений; это декартово произведение (пересечение) множеств, определенных на различных измерениях куба;

  2. Набор — это совокупность кортежей, определенных с использованием одинакового количества одних и тех же измерений.

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

SELECT <множество1> ON COLUMNS, <множество2> ON ROWS FROM <куб> WHERE <кортеж>

SELECT {CrossJoin({[dimension].[dimAttr].[attrValue]}, {[dimension].[dimAttr].[attrValue]})} ON COLUMNS, {[dimension].dimAttr} ON ROWS FROM [Cube] WHERE ([dimension].[dimAttr], [Measures].[measureAttr])

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

Сценарий многомерных выражений определяет процесс вычисления куба. Существует два типа сценариев многомерных выражений:

  1. Сценарий многомерных выражений по умолчанию – при создании куба создаётся стандартный сценарий многомерных выражений для этого куба. В этом сценарии определяется этап вычисления для всего куба (CALCULATE);

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