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

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

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

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

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

На пересечении этих измерений зададим некоторые агрегированные величины - меры. Например: [Количество клиентов], [Максимальный возраст].

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

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

{ [Пол].[М] } ON ROWS

FROM [Наш куб данных]

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

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

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

Как видим, синтаксис MDS очень похож на синтаксис SQL.

К синтаксису запросов вернемся позднее, а пока рассмотрим другие важные понятия.

Члены измерений (Members). Иерархии (Hierarchies).

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

Примеры членов измерения: [РФ], [Белоруссия], [Минск], [ул. Северная], [дом №70], [дом №95] и т.д.

До каждого члена можно «добраться», описав путь к нему по иерархической структуре.

Наример:

[Место]. [Иерархия_Место].[РФ].[Тверь].[Петербургское шоссе].[дом №777].[квартира №8888],

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

Замечание: в приведенных примерах использована подробная запись:

[<Измерение>].[<Иерархия>].[<Член верхнего уровня>]. ….[<Член нижнего уровня>]

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

Можно организовать несколько иерархий для одного измерения, например:

[Дата].[Иерархия1].[<Год>].[<Месяц>].[<Число>] и

[Дата].[Иерархия2].[<№ недели>].[<День недели>]

Замечание: в случае единственной иерархии на нее можно сослаться по имени измерения, то есть:

[Дата].[Иерархия1].Members эквивалентно [Дата].Members,

[Место].[Иерархия_Место].[Города].Members эквивалентно [Место].[Города].Members.

Каждому уровню иерархии (Level) присвоено свое имя. Имена уровней применяются в конструкциях вида:

[<Измерение>].[<Иерархия>].[<Уровень>].Members.

Например: [Дата].[ Иерархия1].[Месяца].Members – все возможные месяца;

[Место].[Иерархия_Место].[Улицы].Members – все улицы, независимо от страны и города.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: