slide1
Download
Skip this Video
Download Presentation
Хранилища данных

Loading in 2 Seconds...

play fullscreen
1 / 32

Хранилища данных - PowerPoint PPT Presentation


  • 199 Views
  • Uploaded on

Хранилища данных. Автор: кандидат физ.-мат. наук, Степанов Р.Г. Казанский (Приволжский) Федеральный Университет Казань, 2011. Язык MDX. SQL — Structured Query Language (язык структурированных запросов). Служит для выполнения запросов к реляционной базе данных.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Хранилища данных' - thane


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
Хранилища данных

Автор: кандидат физ.-мат. наук,

Степанов Р.Г.

Казанский (Приволжский) Федеральный Университет

Казань, 2011

slide2
Язык MDX
  • SQL — Structured Query Language (язык структурированных запросов). Служит для выполнения запросов к реляционной базе данных.
  • MDX — Multi-Dimendional eXpressions (язык многомерных выражений). Используется для извлечения из баз данных OLAP. Язык MDX позволяет выполнять более сложные операции, чем SQL.
  • Изначально MDX разработан компанией Microsoft в 1998 г.
slide3
Язык MDX
  • MDX поддерживается многими ведущими производителями решений для OLAP.
    • Серверы: MS SQL Server Analysis Services, Mondrian, Palo, Applix, Microstrategy, SAS, SAP, Whitelight, NCR
    • Клиенты: Panorama Software, Proclarity, AppSource, Cognos, Business Objects, Brio Technology, Crystal Reports, MS Excel, и т.д.
  • MDX — стандартный язык запросов в спецификации XML for Analysis (XMLA).
slide4
Основные объекты многомерных баз данных
  • Куб (Cube);
  • Измерение (Dimension) — играет роль справочника;
  • Мера (Measure) — количественная сущность;
slide5
Пример запроса MDX
  • SELECT Measures.[Internet Sales Amount] ONCOLUMNS
  • FROM [Adventure Works]
  • WHERE ( [Date].[Calendar].[Calendar Quarter].&[2003]&[2],
  • [Product].[Product Line].[Mountain],
  • [Customer].[Country].[Australia])
  • Результат:
  • Internet Sales Amount
  • $323,561.09
slide6
Основы
  • Измерение содержит одну или несколько иерархий.
  • Каждый уровень иерархии измерения содержит набор элементов, называемых членами (members).
  • Каждый член иерархии имеет уникальное имя.
  • Пример: член уровня [Calendar Quarter] иерархии [Calendar] измерения [Date]:

[Date].[Calendar].[Calendar Quarter].[Q2 CY 2005]

slide7
Основы
  • В общем случае для доступа к члену иерархии можно использовать форматы:

[Имя измерения].[Имя иерархии].[Имя уровня].[Имя члена].

[<Èçìåðåíèå>].[<Èåðàðõèÿ>].[<×ëåí âåðõíåãî óðîâíÿ>]. … .[<×ëåí íèæíåãî óðîâíÿ>]

Пример:

[Customer].[Country].[Australia]

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

measures
Объект Measures
  • Объект Measures (меры) — специальное измерение, содержащее в качестве членов набор мер.

Пример — мера Internet Sales Amount:

Measures.[Internet Sales Amount]

  • Для каждой меры задана функция агрегации.
slide9
Срез куба
  • Ячейка (cell) куба идентифицируется набором членов измерений, на пересечении которых находится эта ячейка.
  • Срез куба (slice) также задается набором членов измерений, определяющих срез.
  • Синтаксис: в круглых скобках перечисляются члены измерений, разделенные запятыми. Если кортеж задается только одним членом измерения, то скобки можно опускать.
slide10
Кортеж
  • Примеры:
    • [Customer].[Country].[Germany]
    • ( [Date].[Calendar].[Calendar Quarter].[Q2 CY 2003], [Product].[Product Line].[Mountain], [Customer].[Country].[Australia]).
  • Подобное выражение на языке MDX называется кортежем (tuple).
slide11
Пример 1. Запрос для получения суммы продаж через Интернет для всех клиентов из Германии:
  • SELECT Measures.[Internet Sales Amount] onCOLUMNS
  • FROM [Adventure Works]
  • WHERE ([Customer].[Country].[Germany])
  • Результат: $2,894,312.34
slide12
Набор
  • Набор (set) — это совокупность кортежей, которые определены с использованием одинакового количества одних и тех же измерений. Набор обычно заключается в фигурные скобки {}.
  • Пример:
  • {(Customer.Country.Australia), (Customer.Country.Canada)}
slide13
MDX-запрос
  • Синтаксис MDX-запроса:

[WITH <formula_expression> [, <formula_expression> ...]]

SELECT [<axis_expression>, [<axis_expression>...]]

FROM [<cube_expression>]

[WHERE [slicer_expression]]

Фразы WITHи WHEREявляются необязательными.

slide14
Оси в MDX
  • <axis_expression> := <набор> ON (ось) | Axis (номер оси) | (номер оси)
  • Пять осей имеют псевдонимы: COLUMNS, ROWS, PAGES, SECTIONS и CHAPTERS. Последующие оси указываются с помощью слова Axis, за которым следует номер оси. В запросе можно указать до 128 осей.
slide15
Пример 2.
  • SELECT Measures.[Internet Sales Amount] ONCOLUMNS,
  • [Customers].[Country].MEMBERSonROWS,
  • [Product].[Product Line].MEMBERSonPAGES
  • FROM [Adventure Works]
  • эквивалентен
  • SELECT Measures.[Internet Sales Amount] ON 0,
  • [Customers].[Country].MEMBERSon 1,
  • [Product].[Product Line].MEMBERSon 2
  • FROM [Adventure Works]
slide16
Секция FROM
  • Предложение FROM в MDX-запросе определяет куб, из которого необходимо извлечь данные для анализа.
  • В запросе MDX можно указать имя только одного куба данных.
  • Данные из других кубов можно получить, используя функцию LookupCube языка MDX.
where
Секция WHERE - здесь указывается срез куба, который нас интересует.
  • SELECT [Measures].[Internet Sales Amount] ONCOLUMNS,
  • [Product].[Product Line].MEMBERSonROWS
  • FROM [Adventure Works]
  • WHERE([Product].[Color].[Silver])
slide18
Секция WITH
  • Используется для выполнения дополнительных вычислений в рамках запроса.
  • Синтаксис:

[WITH <formula_expression> [, <formula_expression> …]]

slide19
Именованные наборы
  • Formula_expression := [DYNAMIC] SET <псевдоним_набора> AS [\']<набор>[\']
  • WITHSET [EUROPE] AS \'{[Customer].[Country].[Country].&[France],
  • [Customer].[Country].[Country].&[Germany],[Customer].[Country].
  • [Country].&[United Kingdom]} \'
  • SELECT Measures.[Internet Sales Amount] onCOLUMNS,
  • [EUROPE] ONROWS
  • FROM [Adventure Works]
slide20
Вычисляемые члены
  • Formula_expression := MEMBER <ИмяЧлена> AS [\']<Выражение_MDX>[\'], [ , SOLVE_ORDER = <целое число>] [ , <СвойствоЯчейки> = <ВыражениеСвойства>]
  • WITHMEMBER [MEASURES].[Profit] AS \'[Measures].[Internet Sales Amount]-[Measures].[Internet Standard Product Cost]\'
  • SELECT Measures.profit ONCOLUMNS,
  • [Customer].[Country].MEMBERSONROWS
  • FROM [Adventure Works]
slide21

WITH

SET [ProductOrder] AS \'Order([Product].[Product Line].MEMBERS,

[Internet Sales Amount], BDESC)\'

MEMBER [Measures].[ProductRank] AS \'Rank([Product].[Product Line].CURRENTMEMBER, [ProductOrder])\'

SELECT {[ProductRank],[Sales Amount]} ONCOLUMNS,

[ProductOrder] onROWS

FROM [Adventure Works]

slide22

WITHMEMBER [Date].[Calendar].[%Change] AS

100* (([Date].[Calendar].[Calendar Quarter].[Q2 CY 2002] -

[Date].[Calendar].[Calendar Quarter].[Q1 CY 2002]) /

[Date].[Calendar].[Calendar Quarter].[Q2 CY 2002])

SELECT {[Date].[Calendar].[Calendar Quarter].[Q1 CY 2002],

[Date].[Calendar].[Calendar Quarter].[Q2 CY 2002],

[Date].[Calendar].[%Change]} ONCOLUMNS,

{Measures.[Internet Sales Amount],[Measures].[Customer Count],

[Measures].[Internet Gross Profit]} ONROWS

FROM [Adventure Works]

Пример 4.
slide24
Пример 5.
  • WITHMEMBER [Date].[Calendar].[First8MonthsCY2003] AS
  • Aggregate(YTD([Date].[Calendar].[Month].[August 2003]))
  • SELECT [Date].[Calendar].[First8MonthsCY2003] ONCOLUMNS,
  • [Product].[Category].ChildrenONROWS
  • FROM [Adventure Works]
  • WHERE [Measures].[Order Quantity]
slide25
Другие элементы MDX
  • Комментарии

// здесь следует комментарий

-- здесь следует комментарий

/* здесь следует комментарий */

  • Арифметические операторы +, –, * и /
  • Операторы наборов
  • Операторы сравнения <, <=, >, >=, = и <>
  • Логические операторы AND, OR, XOR, NOT
slide26
Операторы наборов
  • \'+\' - объединение наборов
  • \'-\' - разность двух наборов
  • \'*\' - векторное произведение двух наборов
  • Двоеточие \':\'

SELECT [Measures].[Internet Sales Amount] ON 0,

{[Date].[Calendar].[CY 2001]:[Date].[Calendar].[CY 2003]} ON 1

FROM [Adventure Works]

slide27
Функции MDX
  • Функции для members
    • Members — при применении к иерархии возвращает набор всех членов иерархии, независимо от уровня; при применении к уровню возвращает набор всех членов измерения на данном уровне.
    • Children, Parent — перемещение вверх и вниз по уровням.
    • PrevMember, NextMember, Lag, Lead — перемещение в пределах одного уровня
    • FirstChild, LastChild — возвращает первый (последний) потомок данного элемента.
    • MemberToStr(<Выражение члена>), StrToMember(<Строка>);
slide28
Функции MDX
  • Функции наборов
    • CrossJoin возвращает все возможные комбинации членов наборов, указанных в качестве ее аргументов.

CrossJoin(Выражение_набора [, Выражение_набора …])

    • Filter ограничивает результаты запроса на основе некоторого условия.

Filter( Выражение_набора, {Логическое_выражение |

[CAPTION | KEY | NAME] = Строковое_выражение})

slide29
Пример 6.
  • SELECT Measures.[Internet Sales Amount] ONCOLUMNS,
  • FILTER(CROSSJOIN( {Product.[Product Line].[Product Line].MEMBERS},
  • {[Customer].[Country].MEMBERS}),
  • [Internet Sales Amount] >2000000) ONROWS
  • FROM [Adventure Works]
exists
Функция Exists
  • Exists( Set_Expression1 , Set_Expression2 [, MeasureGroupName] ) - возвращает кортежи из набора 1, которые существуют вместе с одним или более кортежем из набора 2.
  • Клиенты из Калифорнии:

SELECT [Measures].[Internet Sales Amount] ON 0,

EXISTS([Customer].[Customer].[Customer].MEMBERS

, {[Customer].[State-Province].&[CA]&[US]}) ON 1

FROM [Adventure Works]

slide32
Функции MDX. Продолжение
  • Справочник по функциям MDX в составе MSDN:

http://msdn.microsoft.com/en-us/library/ms145970.aspx

ad