Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7-Теория_по_языку_MDX.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
603.65 Кб
Скачать

Язык запросов mdx (технология Microsoft)

Содержание

Введение 2

Синтаксис языка MDX 3

Модели данных MDX: кортежи и множества 3

Кортежи 3

Множества 4

MDX Sample Application 5

Простейшие MDX-запросы 6

Пример 1. Простейший запрос 6

Пример 2. Указание в запросе столбцов 6

Пример З. Указание в запросе строк 7

Пример 4. Указание фильтра в запросе 7

Использование квадратных скобок 8

Использование запятой для разделения наборов элементов 8

Пример 5. Использование запятой 8

Использование двоеточия для определения диапазона 8

Пример 6. Использование двоеточия 8

Использование фигурных скобок для определения набора элементов (sets) 9

Пример 7. Использование вложенных наборов 9

Использование операторов Children и Members 9

Пример 8. Использование оператора Children 9

Пример 9. Использование оператора Members 10

Пример 10. Объем продаж в штатах СА и WA в 1 и 2 кварталах 1997 года 10

Пример 12. Количество сделок и средняя сумма сделки по продуктовой семье за все время 11

Пример 13. Количество сделок и средняя сумма сделки по продуктовой семье за все время с покупателями-женщинами 11

Пример 14. Количество сделок и средняя сумма сделки по продуктовой семье за все время с покупателями - незамужними женщинами 11

Пример 15. Зависимость количества покупок по продуктовой семье в супермаркетах штата С А от замужества среди женщин в 1 квартале 1997 12

Использование функции CrossJoin() и оператора * 12

Пример 16. Использование функции CrossJoin() 12

Пример 17. Данные по количеству покупок в 1 и 2 кварталах 1997 года по уровню дохода, по штату, по продуктовой семье 13

Пример 18. Использование вложенных CrossJoin() 13

Пример 19. Использование * 14

Аналог примера 17 с использованием *. 14

Использование функций Filter(), Order(), TopCount() 14

Пример 20. Использование Filter() 14

Пример 21. Не показывать пустые ячейки 15

Пример 22. Использование сортировки Order(). 15

Пример 23. Совместное использование Order() и Filter(). 16

Пример 24. Использование TopCount() 16

Пример 25. Совместное использование NonEmpty и TopCount 16

Использование агрегатных функций 17

Пример 26. Использование вычислений 17

Пример 27. Использование функции AVG 17

Пример 28. Вычисление тренда 18

Пример 29. Функция проверки условия 18

Функции форматирования 19

Пример 30. Вычисление процента 19

Пример 31. Установка денежного формата 19

Источники 20

Введение

В 1970 году Е.Ф.Кодд (E.F.Codd) предложил реляционное устройство баз данных, при котором данные размещаются в двумерных таблицах, а поиск и обработка данных по нескольким таблицам обеспечиваются путем связывания полей таблиц, содержащих одинаковые атрибуты отображаемых в базе данных объектов. Но в реляционных базах данных накопилось огромное количество информации, обработка данных стала крайне затруднена. И в 1993 году Кодц предложил новый подход к аналитической обработке данных - On-Line Analytical Processing (OLAP), основанный на предварительном отборе информации из баз данных, проведении математической обработки и структуризации данных и расчетных величин в виде многомерных кубов, в которых значение каждого элемента данных зависит не от двух индексов, как в двумерной таблице (номер строки и номер столбца), а от нескольких.

Для просмотра и обработки данных кубов существует служба PivotTable Service, которая поддерживается в различных средствах разработки клиентских приложений: Visual Basic , Delphi , С ++ Builder , Visual С ++. Кроме того, PivotTable Service поддерживает язык Multidimensional Expressions (MDX) и дополнительные расширения подмножеств языка SQL - DDL (Data Definition Language - язык определения данных) и DML (Data Manipulation Language - язык манипулирования данными), необходимые для описания структуры локальных OLAP -кубов.

Ниже будет рассмотрена работа с языком обработки данных MDX.

MDX расшифровывается как Multidimensional expression language, то есть язык запросов к многомерным источникам данных. Корпорация Microsoft реализовала проект по созданию стандарта на язык запросов к многомерным БД, стремясь упростить работу с основанными на них системами оперативной аналитической обработки данных (online analytical processing, OLAP), поскольку уже давно назрела необходимость в непроцедурном языке для формирования запросов к многомерным базам данных.

Благодаря политике Microsoft язык запросов MDX имеет перспективу превратиться в очень распространенное стандартное средство для описания запросов к многомерным БД и серверам OLAP.

MDX позволяет обращаться с запросами к гиперкубам со множеством измерений и получать нестандартные срезы данных. В соответствии с определением MDX является расширением SQL, поэтому по своей структуре и синтаксису он очень похож на SQL, ключевые слова совпадают и выполняют схожие функции. Однако принципиальное различие заключается в том, что MDX строит многомерное представление данных (куб), а SQL-запросы обращаются к двумерной таблице, строя отчет также в виде таблицы.

SQL запросы всегда возвращают двухмерный результат, независимо от того, какой источник данных используется (SQL Server, Analysis Services или какой-нибудь другой поддерживаемый SQL источник). Если необходимо вернуть многомерное результирующее множество, то для этого придется выполнить массу действий, включающих создание временных таблиц и представлений, прежде чем удастся получить желаемое решение. Но при этом все равно будут возвращаться двухмерные таблицы. Если необходимо вернуть многомерное результирующее множество, то можно воспользоваться MDX.

Нужно отметить, что MDX никак не связан с Microsoft SQL Server 2000 Analysis Services, а является частью спецификации OLE DB for OLAP и, таким образом поддерживается на уровне провайдера доступа к данным (OLE DB-провайдера), а не самого OLAP-хранилища.