OLAP.ru   Rambler's Top100
Вы находитесь на страницах старой версии сайта. Перейдите на новую версию OLAP.ru
  
Поиск по сайту
Новости
Основы OLAP
Продукты
Business Objects/ Crystal Decisions
Каталог
OLAP в жизни
Тенденции
Download
Яndex
 
 
 
TopList
 
 Business Objects/Crystal Decisions  Oracle  Microsoft  IBM 
 Hyperion  Sybase  Informix  Actuate  SAS Institute  Brio 

OLE DB: инструмент для доступа к корпоративным хранилищам данных


Владимир Габриель (Digital Design), READ.ME #8/1997

Автоматизировав бизнес–процессы, многие предприятия обзавелись базами данных. Создание корпоративных хранилищ данных открывает большие возможности для анализа деятельности предприятий и оперативного принятия решений. Новые стандарты Microsoft позволяют интегрировать эти механизмы в свои решения. В данной статье мы рассмотрим расширение стандарта OLE DB для работы с многомерными базами данных и оперативного анализа данных.

Высокоуровневые стандарты

Массовое распространение операционных систем Windows корпорации Microsoft создает благоприятную почву для появления высокоуровневых стандартов программного взаимодействия. Так, появился пакет стандартов WOSA (Windows Open System Architecture), ядром которого является стандарт взаимодействия компонент COM и его расширение для сетевого взаимодействия компонент DCOM. С первых дней существования WOSA в нее входил и стандарт взаимодействия с базами данных — ODBC. На момент появления ODBC этот стандарт испытывал большую конкуренцию со стороны стандарта IDAPI компании Borland International, Inc. Однако со временем ODBC de facto стал стандартом не только для ОС Windows. Существуют ODBC драйверы различных производителей и для других операционных систем. Например, компания Intersolv (http://www.intersolv.com/datadirect/) выпускает свой набор ODBC драйверов для платформ Windows, OS/2, UNIX (Solaris, AIX, HP–UX). Широкое распространение ODBC и интеграция этого стандарта в продукты третьих производителей позволили огромной армии разработчиков организовать простой и удобный доступ к корпоративным базам данных. Однако ODBC является CLI интерфейсом (интерфейсом уровня вызовов). Для организации взаимодействия с источниками данных (не только с SQL базами данных) в рамках стандарта COM была выпущена спецификация OLE DB и стандартный набор ActiveX компонент — ADO — для организации клиентского взаимодействия с источниками данных по стандарту OLE DB. В сентябре 1997 г. Microsoft опубликовала предварительную спецификацию расширения стандарта OLE DB для OLAP.

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

Хранилища данных

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

Допустим, что деятельность по продажам некоторого предприятия характеризуется данными о типах продаваемых продуктов, списком покупателей, датами продаж и условиями оплаты. Эту ситуацию иллюстрирует рис. 1.

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

Таким образом, данные в хранилище организованы в виде многомерных кубов. Ребра куба далее будем называть измерениями. Измерения могут иметь иерархическую структуру (например, измерение «время» структурируется по дням, месяцам, кварталам, годам). Одна из основных функций хранилищ данных заключается в возможности вычисления сумм или других агрегирующих функций по уровням иерархии измерений. Т.е., имея данные по дням продаж, мы можем автоматически получать информацию по месячным или квартальным значениям (рис. 2).

При работе с метакубом также необходимо иметь механизмы динамического построения «разрезов» метакуба. Такие механизмы далее будем называть навигационными. Навигационные механизмы позволяют не только получать данные, ранее погруженные в метакуб, но и получать новые данные.

Доступ к многомерным БД

OLE DB для OLAP — это набор объектов и интерфейсов, которые расширяют стандарт OLE DB для обеспечения взаимодействия между поставщиками и потребителями данных, организованных в виде многомерных таблиц. Эти объекты и интерфейсы позволяют, используя стандарт COM, получать, вычислять и представлять многомерные данные, а также осуществлять по ним навигацию.

Объекты

В стандарте OLE DB используются следующие понятия:

  • Провайдер многомерных данных (multidimensional data provider, MDP). Он отличается от табличного типом предоставляемых данных. Провайдеры табличных данных представляют данные в виде таблиц, MDP же дает многомерные данные. Один провайдер данных может предоставлять и оба типа данных.
  • Метаданные — данные, описывающие структуры существующих данных. Основной объект метаданных — куб. Куб — это набор связанных измерений, которые определяют n–мерный набор данных. Данные определяются набором координат по каждому из измерений. Каждая координата является членом измерения.
  • Схема провайдера многомерных данных — это набор кубов данных провайдера. Набор схем образует каталог провайдера данных. Некоторые провайдеры данных могут поддерживать только уровень схем и не поддерживать уровень каталогов.
  • Значения измерений будем называть в рамках спецификации OLE DB — членами измерений. Некоторые измерения могут иметь иерархии (например, время — год, квартал, месяц, день). Измерения с иерархиями имеют уровни иерархии. Каждый уровень иерархии может иметь дополнительные свойства. Члены измерений могут консолидироваться или агрегироваться в рамках иерархии измерения. Некоторые измерения могут быть измеримыми, на таких измерениях возможен линейный порядок.

Если кратко резюмировать список объектов OLE DB, то его можно изобразить следующим образом:

  • Каталоги (Catalogs);
  • Схемы (Schemas);
  • Многомерные кубы (Cubes);
  • Меры (Measures);
  • Измерения (Dimensions);
  • Иерархии (Hierarchies);
  • Уровни иерархии (Levels);
  • Свойства уровней для каждого измерения (Properties);
  • Члены измерений (Members).

OLE DB для OLAP не изменяет понятия набора данных (rowset) для табличных данных.

Средства работы с объектами

Основным объектом — поставщиком данных — является куб. Куб состоит из некоторого количества измерений и собственно данных. Виртуальный куб — это сущность, которая является результатом одного или нескольких запросов к кубам. Виртуальный куб также является кубом. Отношение, в котором находятся куб и виртуальный куб, аналогично тому, в каком находятся таблица (Table) и представление (View) в реляционных базах данных.

Для просмотра членов измерений используется стандартный для OLE DB набор данных (rowset); это один из основных механизмов получения метаданных для наборов измерений.

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

Для определения многомерного набора данных запрос содержит секции, которые определяют:

  • кубы, которые объединяются в запросе;
  • количество осей;
  • какие измерения проектируются на каждую ось и уровень, на котором они оказываются;
  • количество или перечень членов по каждому из измерений и порядок их сортировки;
  • перечень членов кубов, измерения которых не попали на оси для фильтрации данных.

Типичное многомерное выражение имеет вид:

< axis specification >
[, < axis specification >...]
CONTEXT < cube specification >
FILTER < tuple >

Существует также расширенный синтаксис многомерных выражений, который позволяет формулировать более сложные запросы.

Как начать использование OLE DB для OLAP

Для использования OLE DB для OLAP необходимо иметь сервер многомерных баз данных с OLE DB провайдером. На данный момент Microsoft анонсировала выпуск такого продукта (с кодовым именем Plato) в 1998 г. С клиентской стороны вам необходимо любое средство, поддерживающее работу с объектом ADO (Active Database Object), который поставляется с OLE DB SDK 1.5, Internet Information Server 3.0 или любым компилятором Microsoft современных версий. Использовать объект ADO можно из программ, написанных на MS Visual C++, Microsoft Vishual Basic и (что, несомненно, представляет интерес для огромной армии офисных программистов) из программ на Visual Basic for Application (который входит в любой продукт MS Office) и Visual Basic Script (который входит в Internet Information Server версии 3.0 и Internet Explorer, начиная с версии 3.0).

 Обсудить на форуме   Написать автору   Написать вебмастеру 

© 2001 Interface Ltd