АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Язык Многомерных Выражений (Multidimensional Expressions, MDX)

Читайте также:
  1. Decide which answer А, В, С or D best fits each space. Подумайте, какие из предложенных ответов лучше подходят для данных выражений.
  2. Decide which answer А, В, С or D best fits each space. Подумайте, какие из предложенных ответов лучше подходят для данных выражений.
  3. Ввод формул и выражений на лист вычислений
  4. Задачи на составление логических выражений. Написать программы, проверяющие следующие условия
  5. ЗАПАС СЛОВ И ВЫРАЖЕНИЙ
  6. Интегрирование выражений, содержащих тригонометрические функции.
  7. Ключевые понятия многомерных выражений. Связь атрибутов. Свойство элемента. Ячейка куба. Пространство куба. Вложенный куб.
  8. Ключевые понятия многомерных выражений. Элемент данных. Родительский элемент. Конечный элемент. Дочерний элемент. Дочерний элемент. Атрибут гранулярности. Измерение куба.
  9. МАГИЯСЛОВИВЫРАЖЕНИЙ
  10. Общие подходы к разработке многомерных баз данных с использованием SSAS.
  11. ОБЪЯСНЕНИЕ СЛОВ И ВЫРАЖЕНИЙ, СВОЙСТВЕННЫХ ЯЗЫКУ СВЯТОГО ТРИБУНАЛА, КОТОРЫЕ СЛЕДОВАЛО СОХРАНИТЬ В ЭТОЙ ИСТОРИИ
  12. Основные законы алгебры логики и правила преобразования логических выражений

 

Язык MDX был впервые представлен как составляющая OLE DB for OLAP в 1997г. компанией Microsoft.

Несмотря на то, что MDX является не общим стандартом, а только внутренней спецификацией Microsoft, он был принят многими ведущими распространителями технологии OLAP. В их числе разработчики серверных приложений, такие, как Applix, Microstrategy, SAS, SAP, Whitelight, NCR, а также разработчики клиентских приложений: Panorama Software, Proclarity, AppSource, Cognos, Business Objects, Brio Technology, и другие.

С появлением XML for Analysis, в котором MDX был принят как стандартный язык запросов, все большее число компаний (в их числе, например, Hyperion Solutions), стали поддерживать MDX. XML for Analysis обращается к OLE DB for OLAP с помощью языка запросов MDX.

 

Основные объекты многомерных баз данных

Основные элементы структуры многомерных баз данных – Кубы (Cubes), Измерения (Dimensions) и Меры (Measures).

Куб (Cube) — совокупность данных, имеющая многомерную структуру. Куб представлен набором мер и измерений. Измерений может быть много.

Рассмотрим эти понятия на примере базы данных клиентов.

Пусть наш куб содержит данные клиентов: ФИО, дату рождения, место рождения, пол, место жительства, а также календарь и список населенных пунктов. В случае реляционной базы данных можно было организовать 3 таблицы: [Населенные пункты], [Календарь] и [Паспортные данные]. В многомерном случае можно задать, например, такие измерения: [Клиенты], [Дата], [Место], [Тип места] (рождения или жительства), [Пол]. На пересечении этих измерений зададим некоторые агрегированные величины – меры. Например: [Количество клиентов], [Максимальный возраст].

Пример (*): Сколько клиентов мужского пола проживает в Твери? Ответ можно получить, задав следующий MDX-запрос:

 

SELECT { [Место].[РФ].[Тверь] } ON COLUMNS,

{ [Пол].[М] } ON ROWS FROM [Наш куб данных]

WHERE ([Measures].[Количество клиентов], [Тип места].[Место жительства])

 

В данном запросе присутствуют 3 измерения: [Место], [Тип места] и [Пол]; все измерения, не указанные в запросе ([Клиенты] и [Дата]), присутствуют в нем неявно.

Совокупность мер является, по сути, еще одним измерением.

Синтаксис MDS очень похож на синтаксис SQL.

 

Члены измерений (Members).

В рассмотренном выше примере мы пользовались измерением [Место], детализируя его с помощью заданной на нем иерархии. Делается это с помощью членов измерения, т.е. единиц описания на различных уровнях иерархии.

Примеры членов измерения: [РФ], [Белоруссия], [Минск], [ул. Северная], [дом №70], [дом №95] и т.д До каждого члена можно «добраться», описав путь к нему по иерархической структуре. Наример: [Место]. [Иерархия_Место].[РФ].[Тверь]. [Петербургское шоссе].[дом №777].[квартира №8888],

[Место]. [Иерархия_Место].[РФ].[Москва]

 

Кортежи (Tuples) и множества (Sets)

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

Кортежи задаются с помощью круглых скобок.

Примеры: ([Место].[РФ].[Рязань].[улица Есенина], [Пол].[Ж], [Тип места].[Место жительства]) – все дамы с улицы Есенина в Рязани;

В языке MDX пересечения множеств реализуются с помощью конструкций CrossJoin <Кортеж>, Where <Кортеж> и других, что обусловлено необходимостью представить результат в удобном для восприятия виде.

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

Примеры:

 

{ [Дата].[1960].[Январь], [Дата].[1960].[Февраль] } – все клиенты, родившиеся в январе или в феврале 1960г.

 

Множество заключается в фигурные скобки.

Пересечение кортежа или множества с какой-либо мерой дает значение меры на данном множестве. В первом разобранном нами примере (*) мы имели пересечение кортежа ([Место].[РФ].[Тверь], [Пол].[М]) с мерой [Measures].[Количество клиентов].

 

Член по умолчанию (default member)

В большинстве случаев в кортежах явно присутствуют не все измерения. Чтобы получить значение меры на кортеже, нужно учесть все прочие измерения. Для этого у каждого измерения существует член по умолчанию. Как правило, в роли Default Member выступает единственный член специального уровня иерархии [All], автоматически создаваемого при создании измерения. Этот уровень содержит совокупные результаты по всему измерению.

Пример: ([Клиенты].[All].Members, [Measures].[Максимальный возраст]) – этот кортеж возвращает возраст самого старшего клиента.

Эквивалентное указание на член по умолчанию можно записать короче и корректнее с помощью выражения DefaultMember: [Клиенты].DefaultMember.

Если уровень [All] отсутствует, в его роли выступает первый член следующего уровня. В некоторых системах членом по умолчанию можно назначить любой член или MDX-выражение измерения. Поскольку совокупность мер ([Measures]) тоже является одним из измерений, то и среди мер есть элемент по умолчанию. Предположим, что в нашем случае мерой по умолчанию является [Количество клиентов]. Тогда, если из нашего запроса (*) удалить конструкцию WHERE ([Measures].[Количество клиентов]), результат его выполнения останется прежним.

 

Функции навигации

Members, AllMembers Members применяется к иерархиям или к уровням.

PrevMember, NextMember Для перемещения в пределах одного уровня, используются функции PrevMember и NextMember:

Children, Parent Для перемещения вверх и вниз по уровням используются функции Children и Parent: Функции FirstChild, LastChild возвращают первого (последнего) потомка данного элемента.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)