Использованная в данной работе интерпретация в три фазы позволяет на основе одного и того же исполнителя инструкций строить принципиально различные по синтаксису языки. Для этого необходимо заменять блоки лексического и синтаксического анализа. Данный подход нашел успешное применение, позволив использовать один и тот же блок исполнения инструкций как для языка с приведенным синтаксисом, так и для специализированного языка контроля данных (разработан в министерстве здравоохранения РФ) в системе сбора медицинской статистической информации [50].
Реализованный интерпретатор языка был успешно использован в системе «Аналитик» для создания аналитических измерений и показателей, выполнения комплексных аналитических расчетов, а также в блоке построения специализированных интерфейсов. В системе управления хранилищем данных [51] интерпретатор языка используется для выполнения процедур предзагрузочной обработки данных. В системе сбора статистической отчетности [50] язык используется для расчета ячеек таблиц отчетных форм, для выполнения контролей таблиц, для расчета показателей. В системе ведения справочников [53] интерпретатор языка используется для выполнения программных триггеров.
Для написания программ на разработанном языке предлагается использовать синтаксически управляемый редактор.
Главной задачей такого редактора является разметка синтаксических конструкций (цветом и шрифтом) на основе отнесения конструкции к определенному классу лексем, проверка синтаксической корректности текста и поиск места ошибки. Синтаксический помощник облегчает написание программ за счет возможности вставить конструкцию из помощника в текст программы. Вставка в текст программы элементов витрины данных в зависимости от контекста осуществляется по-разному (см. п. 3.3.2).
2.3 Средства построения специализированных интерфейсов
Одним из требований к системам оперативной аналитической обработки является доступность информации для пользователя [6]. В рамках диссертационного исследования поставлена задача разработки технологических подходов к созданию специализированных OLAP-ориентированных приложений, представляющих собой автоматизированные рабочие места для специалистов-аналитиков предметной области. Это особенно актуально в российских условиях, когда уровень подготовки специалистов-предметников в области информационных технологий является невысоким. Пользователя необходимо поместить в комфортную среду, с понятным и ориентированным на конкретную задачу интерфейсом, в том числе с предметно-ориентированной терминологией. Например, для специалиста-демографа стандартный для OLAP термин «мера» естественно заменить на «демографический показатель» [38,37].
Таким образом, в рамках решаемой задачи потребовалось реализация средств создания специализированных OLAP-ориентированных интерфейсов. Для решения этой задачи выбран хорошо зарекомендовавший себя подход построения пользовательских интерфейсов на основе компонент [12, 13]. Процесс формирования интерфейса в данной модели заключается в определении экранных форм, которые пользователь будет использовать во время своей работы, наполнении этих форм интерфейсными и функциональными элементами (компонентами) и определении логики работы приложения (в том числе взаимодействия между компонентами и формами) при помощи языка программирования [61].
Разработка экранной формы производится при помощи средств визуального проектирования (рисунок 14), состоящих из шаблона формы, палитры компонент, инспектора объектов и редактора скрипта. Пустая форма заполняется интерфейсными и функциональными элементами из общего набора – палитры компонент. С помощью инспектора объектов компонентам задаются требуемые свойства и устанавливаются необходимые связи. Редактор скрипта позволяет сформировать программный код обработчиков событий компонент в виде отдельных процедур встроенного языка программирования.
Для реализации функциональности OLAP-приложений предложен набор компонент, обеспечивающий взаимосвязь с витринами данных и аналитическими моделями. Эти компоненты включат средства представления данных, которые существуют в аналитическом приложении. Помимо компонент разработана библиотека функций, позволяющая обеспечивать взаимосвязь между компонентами, регулировать информационное наполнение.

Рисунок 14 – Разработанный дизайнер форм интерфейса пользователя
Основная сложность при разработке средств построения интерфейсов заключается в создании набора оригинальных компонент и функций/процедур языка высокого уровня, позволяющих реализовать специализированный OLAP-ориентированный интерфейс приложения на основе заранее подготовленных витрин данных, OLAP-моделей и отчетов.
В ходе диссертационного исследования был разработан следующий набор компонент (таблица 3), покрывающий основные потребности при разработке прикладных OLAP-приложений со специализированным интерфейсом.
Библиотека функций системы «Аналитик» (см. ниже) позволяет управлять свойствами всех компонент формы, изменять информационное наполнение форм, управлять аналитическими моделями.
Таблица 3 – Набор компонент для проектирования интерфейса
Компоненты | Назначение |
Стандартные компоненты: текстовая метка, окно ввода, кнопка, панель, … | Интерфейсное и функциональное наполнение напрямую не связанное с OLAP-функциональностью. |
Список витрин данных | Определение информационного состава формы. |
Дерево витрин данных | Отображение витрин, аналитических объектов и моделей. Кроме того, через дерево витрин возможно редактирование старых и создание новых аналитических объектов и моделей. Дерево витрин служит инструментом формирования аналитического запроса. |
Таблица, кросс-таблица, диаграмма, карта | Визуальное представление анализируемой информации |
Менеджер отчетов | Формирование печатного отчета на основе шаблона. |
Комплекс работ по проектированию прикладных приложений с адаптированным интерфейсом может быть условно разделен на три части: определение информационного, функционального состава приложения, и собственно определение визуальных предпочтений. Данный комплекс работ автоматизирован при помощи специального мастера. В результате работы мастера получается набор экранных форм, которые при необходимости могут быть доработаны в ручном режиме, то есть при помощи дизайнера (рисунок 15).

Рисунок 15 – Алгоритм создания прикладного приложения
Следует отметить, что наличие мастера не только существенно сокращает сроки разработки приложений, но и позволяет выполнить этот процесс неподготовленному пользователю.
Выводы к разделу 2
Представлены основные аспекты предлагаемого подхода к реализации технологии оперативной аналитической обработки данных. Определены основные понятия и особенности OLAP-технологии, понятия OLAP-модели, витрины данных, аналитических операций, измерений и показателей.
На основе сравнительного анализа подходов к созданию OLAP-систем выбран подход к созданию аналитической системы в виде Desktop OLAP приложения.
Рассмотрены основные узлы и процессы, происходящие внутри OLAP-машины, представлены в виде функциональных IDEF0-диаграмм. Рассмотрены методы трансформации линейных данных в многомерную структуру и построения структур для работы с иерархическими измерениями. Предложены структуры данных и алгоритмы для работы с многомерными и иерархическими структурами.
Для создания эффективной OLAP-модели выполнена формализация основных понятий и операций над OLAP-моделью. Рассмотрены процессы построения и выполнения комплексов взаимосвязанных информационно-аналитических OLAP-моделей. Построены функциональные IDEF0-диаграммы процесса создания комплексов OLAP-моделей. Для выполнения сложных аналитических расчетов и реализации комплексов OLAP-моделей предложены языковые средства. Рассмотрен язык программирования и структурный синтаксический редактор языка.
Рассмотрен механизм создания прикладных OLAP-приложений с адаптированным пользовательским интерфейсом. Предложены два способа создания приложений: автоматизированное создание, реализованное в виде мастера, и ручное – при помощи дизайнера форм. Предложен набор компонент, реализующий основные задачи, встающие при разработке прикладных приложений: определение информационного и функционального состава, а также настройка интерфейса.
3 Программное обеспечение – настольная OLAP-система «Аналитик»
3.1 Описание системы
В данном разделе дается общее описание, а также рассматриваются структура и функции настольной OLAP-системы «Аналитик», разработанной автором в ходе выполнения данной диссертационной работы.
Система «Аналитик» является инструментальной средой, построенной на основе технологических подходов и принципов, представленных во втором разделе работы, включающих архитектуру OLAP-машины, средства создания и выполнения комплексов OLAP-моделей и построение прикладных OLAP-систем.
Назначение системы – оперативная аналитическая обработка данных, в том числе комплексная многошаговая обработка данных с применением OLAP-технологии, создание OLAP-приложений с адаптированным под задачу интерфейсом.
Область применения системы – решение задач оперативного анализа данных на основе технологии OLAP в разных прикладных областях: в здравоохранении, образовании, социальной сфере, экономике. Круг пользователей – прикладные специалисты, заинтересованные в решении сложных аналитических задач, или в создании специализированных OLAP-приложений.
«Аналитик» представляет собой инструментальную среду и выполнен как приложение, работающее под управлением операционных систем Microsoft Windows 95/98/2000/XP.
Так как «Аналитик» является клиентским приложением, то для его работы на компьютере пользователя необходимо наличие установленного клиента СУБД для доступа к желаемому серверу.
Технические ограничения:
– Аппаратная платформа совместимая с ОС MS Windows;
– Центральный процессор – не ниже Intel Pentium II 300 (или аналог);
– Оперативная память – не менее 64 Мб;
– Разрешение экрана: минимум – 800х600, рекомендуется – 1024х768 и выше.
Система «Аналитик» выполнена в среде разработки приложений Borland Delphi 7 и содержит около 108 тысяч строк кода (не включая сторонние библиотеки), из которых 96 тысяч строк написано непосредственно автором.
Основные функции системы: извлечение данных из разных источников (в качестве источников могут использоваться базы и хранилища большинства популярных форматов), построение витрин данных, представление многомерных данных в виде таблиц, кросс-таблиц, диаграмм и картограмм, формирование одиночных OLAP-моделей и комплексов, создание специализированных аналитических приложений.
Компоненты OLAP-машины реализованы в программных блоках менеджера источников данных, управления витринами данных, OLAP-анализа и формирования OLAP-моделей. Блок управления витринами данных отвечает за создание и модификацию витрин данных. Витрины данных являются семантическим слоем между таблицами источника данных и аналитическими объектами, с которыми будет работать пользователь. Блок OLAP-анализа и формирования аналитических моделей предназначен для выполнения аналитических операций на базе подготовленных витрин данных и формирования OLAP-моделей по выполненным операциям. Блок комплексов OLAP-моделей обеспечивает их формирование и исполнение.


Рисунок 16 – Структурно-функциональная схема системы «Аналитик»
В системе «Аналитик» также имеются:
- подсистема управления конфигурацией,
- блок формирования отчетов,
- транслятор встроенного языка,
- подсистема обработки ошибок,
- подсистема контекстной помощи.
Взаимодействие основных подсистем схематично представлено на рисунке 16.

Рисунок 17 – Дерево объектов в системе «Аналитик»
Подсистема управления конфигурацией обеспечивает создание и модификацию всех объектов, с которыми работает система: источников данных, витрин данных, отчетов, цепочек и форм. На рисунке 17 представлен пример дерева объектов для задачи анализа смертности населения. На первом уровне дерева расположены метаразделы, отвечающие за основное деление объектов в системе. Каждый метараздел содержит объекты одного типа. В составе каждого из метаразделов может быть создано произвольное количество пользовательских тематических разделов, представляющих деление объектов по некоторым дополнительным признакам.
Транслятор встроенного языка исполняет тексты программных модулей, поступающих из смежных блоков системы. Скрипты формируются автоматически, либо с участием пользователя. В своей работе транслятор оперирует объектами витрин данных, OLAP-моделей, отчетов и интерфейсных форм.
Построение специализированных приложений осуществляет блок формирования адаптированных интерфейсов, который отвечает за формирование и исполнение пользовательских экранных форм. Подсистема позволяет задать порядок запуска форм, а также основные параметры для построенной конфигурации OLAP-приложения.
3.2 Менеджер источников данных
Система «Аналитик» позволяет извлекать информацию из большинства популярных баз данных. Доступ к информации осуществляется через специальный объект «источник данных», который определяет способ подключения к базе данных. На рисунке 18 представлен диалог настройки источника данных, из которого видно, что в системе поддерживается 12 различных способов подключения (параметр провайдер) к базе данных.
Все провайдеры, присутствующие в системе, могут быть условно разделены на 3 группы: выполняющие подключение через промежуточную библиотеку (BDE, ADO), выполняющие подключение напрямую с СУБД и специальные соединения с системами «Менеджер хранилища данных» [53], «СтатЭкспресс» [50] и «СВС» [53].

Рисунок 18 – Диалог настройки источника данных
Библиотеки подключений BDE (Borland Database Engine) и ADO (ActiveX Database Objects) позволяют использовать в работе практически любые СУБД, у которых есть специальные драйвера для этих библиотек. Тем не менее, работа с большими объемами данных посредством указанных библиотек существенно замедляется из-за возникновения промежуточного звена. Чтобы исключить лишнее звено и тем самым ускорить работу с данными, в системе реализована возможность использовать прямое подключение к базам данных Oracle, Interbase/Firebird и Sybase Adaptive Server Anywhere. Прямое подключение осуществляется за счет использования собственного API этих СУБД.
Кроме перечисленных способов подключения в системе «Аналитик» имеется возможность использовать репозитарии трех упомянутых информационных систем – СтатЭкспресс, СВС и Хранилища данных. Применение таких подключений серьезно облегчает работу в системе за счет смыслового упорядочения списка объектов базы данных, использования дополнительной информации о схеме данных и словарях, возможности сохранения объектов системы (таблиц агрегатов, витрин данных) в базе данных и др.
|
Рисунок 19 – Дерево объектов базы данных
На рисунке 19 представлено дерево объектов базы данных Oracle (слева) и дерево объектов репозитария системы Менеджер хранилища данных (справа), расположенной в той же базе данных. В случае работы с несистемными источниками информации дерево объектов отражает деление на 4 типа объекта «таблицы», «представления», «системные таблицы» и «системные представления». Кроме того, при работе с СУБД Oracle все объекты делятся на схемы, к которым они принадлежат (на рисунке 19 слева представлены схемы ADRES и ARM). При работе с источниками информации, подключающимися к репозитариям отраслевых систем, дерево объектов использует деление и упорядочение, существующее в подключаемой системе. Так, например, при работе с репозитарием системы «Менеджер хранилища данных» все таблицы подразделяются на «таблицы фактов», «таблицы измерений», «таблицы агрегатов», «временные таблицы», которые в свою очередь имеют произвольное тематическое деление (см. рисунок 19 справа). Структурированность объектов базы данных, при подключении через системный репозитарий, существенно облегчает поиск требуемых объектов и добавляет дополнительную смысловую нагрузку.
3.3 Блок управления витринами данных
3.3.1 Базовые операции при построении витрины данных
Работа с витринами данных является одной из основных функций системы «Аналитик». Витрина данных является семантическим слоем между таблицами источника данных и предметно-ориентированными аналитическими объектами пользователя. Процесс построения витрины данных состоит из двух этапов – формирования схемы данных и формирования аналитических объектов.
Чтобы приступить к работе с витриной данных, необходимо определить источник поступления информации и оформить этот источник в виде системного объекта «источник данных», за что отвечает менеджер источников данных, рассмотренный в предыдущем пункте.
Для формирования схемы данных необходимо определить перечень таблиц, информация из которых необходима для проведения ассоциированного с данной витриной анализа. Кроме того, между выбранными таблицами необходимо определить логические взаимосвязи, задать смысловые названия для таблиц и полей, а также произвести настройку других параметров.
На рисунке 20 представлено окно формирования витрины данных. При построении новой витрины заполнена только правая часть окна, в которой отображается дерево объектов источника данных. Источник данных в одной витрине может быть только один. Из всех объектов источника для построения витрины данных могут быть использованы только таблицы и представления.
Средняя часть окна является полем для формирования схемы данных. Из дерева объектов в это поле переносятся те объекты базы, данные из которых будут использоваться для выполнения последующих аналитических расчетов.

Рисунок 20 – Формирование витрины данных
Каждая таблица имеет заголовок, в котором указывается идентификатор таблицы в источнике данных и ее псевдоним в витрине данных. Псевдоним таблицы создается автоматически и необходим в тех случаях, когда требуется использование нескольких экземпляров одной и той же таблицы. Для установления связи между таблицами можно использовать ручной способ, заключающийся в «натаскивании» мышью одного из связываемых полей на другое. При этом система проверяет типы полей на совместимость и в случае несовместимости уточняет у пользователя необходимость установления такой связи. Кроме того, существует возможность автоматической расстановки связей из информации из базы данных (более детально из информации о внешних ключах) или по равенству идентификаторов полей.
Связи между полями таблиц могут быть разных видов: один к одному, один ко многим, многие ко многим. Информация о виде связи получается автоматически из базы данных (из информации об уникальных индексах и первичных ключах) и отображается графическим представлением этой связи. Кроме того, существует ряд дополнительных параметров связи, установка которых производится в специальном диалоге, представленном на рисунке 21.

Рисунок 21 – Диалог настройки параметров связи
Диалог настройки параметров связи имеет три группы настроек. Первая группа – оператор связи – позволяет выбрать условие связи двух полей из стандартных операторов отношения. Причем, если необходимое отношение имеет более сложный вид, то предлагается записать его в виде SQL-условия в графе «условие». Вторая группа – вид объединения – отвечает за выбор одного из стандартных видов объединения двух таблиц. Причем, если сервер базы данных не поддерживает выбранный вид объединения, то система «Аналитик» может эмулировать его другими. Третья группа объединяет набор дополнительных опций связи. Параметр «обязательная связь» включает режим принудительного включения указанной связи в SQL-запрос, несмотря на отсутствие выборки из соединенных таблиц. Параметр «учитывать полное внешнее объединение одной из таблиц» позволяет подключать справочные таблицы к группе таблиц фактов, связанных полным внешним объединением.
На основе таблиц осуществляется построение информационного подкуба, формируются аналитические объекты, описывающие предметную область: показатели и измерения. Измерение служит для задания осей многомерного информационного куба, содержащего анализируемые данные. Показатели (или факты) являются собственно анализируемыми данными. В пространственном представлении показатели находятся на пересечении значений осей информационного куба. Дополнительно для витрины данных определены такие объекты, как фильтр и сортировка. Фильтр – это условие или набор условий, ограничивающих возможную выборку данных. Сортировка – это условие, определяющее требуемое упорядочение выборки данных. При отсутствии в витрине объектов типа «сортировка» упорядочение данных в выборке происходит в алфавитном порядке по возрастанию.
Построение аналитических объектов может осуществляться в витрине разными способами. Объектам «показатель» и «измерение» в качестве источника данных может быть назначено поле любой таблицы, представленной в витрине. Также одним из способов является агрегирование полей таблицы, когда используются какие-либо функции агрегации – сумма, минимум, максимум, среднее и т. д.
Тем не менее, создания аналитических объектов, прямо ссылающихся на поля таблиц, часто оказывается не достаточно. Существует множество задач, в которых необходимо рассчитывать некоторые величины по заданному алгоритму. Для этих целей предусмотрено формирование расчетных измерений и показателей с применением встроенного языка программирования. Более подробно об этом говорится в п. 3.2.2.
Отдельной задачей при проектировании витрины данных является создание иерархических измерений. Для решения задачи необходимо провести настройку ряда параметров справочных таблиц, извлекаемая информация из которых должна быть представлена в иерархическом виде. На рисунке 22 представлен диалог настройки свойств таблицы, на отдельной закладке которого сгруппированы все необходимые параметры.

Рисунок 22 – Диалог настройки параметров иерархии таблицы
В системе «Аналитик» предусмотрена работа с двумя видами иерархических таблиц – таблиц с полем «Родитель», ссылающимся на поле «Код» в той же таблице и таблиц, содержащих структуру сложного оглавления, которая была детально описана в п. 2.1.4. Таким образом, параметр «тип иерархии» отвечает за выбор одного из указанных выше типов. В случае выбора типа иерархии «из репозитария» система автоматически получает список иерархий, который может быть выбран для данного справочника из репозитария источника данных. Следует заметить, что работа со сложным оглавлением доступна пользователю только при подключении к системам «СтатЭкспресс», СВС и «Менеджер хранилища данных», поскольку ни одна другая система на текущий момент данными структурами не оперирует. После настройки параметров справочника становится доступным его просмотр в иерархическом виде (см. рисунок 23).

Рисунок 23 – Иерархическое представление справочной таблицы
Заключительной стадией создания иерархического измерения является установка в инспекторе объектов параметра «Иерархичность».
3.3.2 Использование языковых средств для расчета объектов витрины
Необходимость реализации сложных алгоритмов расчета измерений и показателей без дополнительного вмешательства разработчиков привела к введению в систему «Аналитик» собственных средств программирования. В блоке формирования витрин данных имеется возможность создания процедур расчета аналитических объектов.
Рассмотрим механизм использования языка на примере создания расчетного показателя. Для этих целей через контекстное меню необходимо создать объект «показатель» и в инспекторе объектов переключиться на закладку «Методы». На выбранной закладке будет присутствовать два метода обработки показателя: метод «расчет» и метод «инициализация».
Алгоритм расчета любого объекта витрины данных записывается в методе «расчет» этого объекта. При двойном щелчке на поле метода в инспекторе объектов для выбранного объекта будет сформировано название процедуры обработки и пользователю будет предложено начать редактирование тела процедуры обработки в редакторе скрипта (см. рисунок 24).
Метод «Расчет» имеет выходной параметр «Значение», которому необходимо присвоить рассчитанное значение аналитического объекта. Если в расчете объекта требуется использовать значения других аналитических объектов, то следует использовать встроенную в язык функцию «ПолеДанных». Функция «ПолеДанных» имеет один входной параметр – название аналитического объекта, текущее значение которого следует получить. Тем не менее, системе необходимо сообщить, что в расчете измерения или показателя будут участвовать другие аналитические объекты. Для этих целей служит метод «Инициализация».
Метод «Инициализация» имеет три входных параметра типа «СписокЗначений»: измерения, показателя и поля. Каждый из параметров представляет собой агрегатный объект, выполняющий роль списка. Добавление элемента в список осуществляется методом «ДобавитьЗначение». На рисунке 24 проиллюстрирован вызов метода «ДобавитьЗначение» для входного параметра «Показатели». Заполнение входных параметров названиями аналитических объектов приводит к включению этих объектов в дальнейшем в аналитический запрос.

Рисунок 24 – Окно редактора встроенного языка
Для автоматизации процесса написания скрипта, редактор встроенного языка содержит ряд интерфейсных элементов. В левой части редактора располагается синтаксический помощник, в котором представлены все доступные синтаксические конструкции и процедуры/функции языка с их описанием. При перетаскивании элемента из синтаксического помощника в область ввода, в текст программы автоматически добавляется пустой шаблон конструкции. Кроме того, в текст программы можно вставить аналитический объект, причем текст, соответствующий объекту, зависит от процедуры, в которую этот объект вставляется. Например, при вставки показателя «Половозрастная смертность» в процедуру «Расчет» будет добавлен текст «ПолеДанных(“Половозрастная смертность”), в то время как в процедуре «Инициализация» тот же показатель будет представлен текстом «Показатели. ДобавитьЗначение(“Половозрастная смертность”)».
Использование встроенного языка программирования высокого уровня позволило повысить гибкость программного продукта и эффективность его использования. Применение внутренних средств разработки открывает возможности расширения функциональности программы без вмешательства разработчика и реализации сложных схем обработки информации.
3.3.3 Работа со сложными структурами данных
К сложным структурам данных относятся три вида объединения таблиц:
1. Структура «снежинка».
2. Структура «группа таблиц фактов».
3. Структура «группа таблиц фактов с разным числом измерений».
При работе с каждой из структур следует учитывать определенные правила, без выполнения которых система может неадекватно себя вести. Детально рассмотрим каждую из структур данных.
1. Структура «снежинка» является стандартной структурой объединения таблиц, используемой для аналитических задач. Отличительной особенностью данной структуры является связь таблицы фактов с таблицей-измерением (справочником), имеющей дополнительные таблицы [81].

Рисунок 25 – Структура «Снежинка»
В такой структуре следует корректно определять опцию связи «обязательная связь». Если такой опции у связей не будет определено, то может оказаться так, что данные при формировании запроса окажутся не связанными. Так, если в приведенном на рисунке 25 примере выбирать поле TMU из справочника TMU и любой факт из таблицы фактов, то при отсутствии опции данные окажутся несвязанными, так как отсутствует выборка из промежуточного справочника MU. Однако, если опции у связей расставить, то связь между таблицей фактов и справочником TMU пойдет через справочник MU, вне зависимости от наличия полей справочника MU в запросе. Расстановка этой опции у связей является единственным условием для функционирования такой схемы.
2. Структура «группа таблиц фактов» является схемой объединения нескольких таблиц фактов. При использовании в витрине данных нескольких таблиц фактов часто оказывается, что множества значений ключевых записей различаются. При объединении таблиц внутренним объединением в выборку попадут только те записи, ключи которых есть во всех связанных таблицах. Для получения полной выборки следует использовать внешние объединения.

Рисунок 26 – Структура «группа таблиц фактов»
Параметры внешнего объединения задаются в свойствах связей между таблицами. При создании связи следует обращать внимание на то, из какой таблицы исходит связь и в какую таблицу приходит. Связи между таблицами необходимо делать однонаправленными (хотя система и не запрещает разнонаправленные связи). Наиболее правильно при связке таблиц фактов использовать полные внешние объединения, которые позволят получить все данные, как из первой, так и из второй таблицы.
Для создания правильно работающей витрины необходимо одну из таблиц фактов сделать главной. Это не требует никаких дополнительных действий – просто необходимо выбрать одну таблицу фактов и создавать связи, «натягивая» поля этой таблицы на поля других таблиц. В такой схеме справочники должны прикрепляться к главной таблице.
3. Структура «группа таблиц фактов с разным числом измерений».
Применение таблиц с разным числом измерений неизбежно приводит к умножению числовых данных таблицы с меньшим числом измерений. Например, на схеме, указанной на рисунке 27, справочник связан с таблицей фактов.

Рисунок 27 – Структура «группа таблиц фактов
с разным числом измерений»
Таблица фактов содержит 4 измерения, справочник по своей природе –только одно. Если бы пользователь был заинтересован только в фактах, содержащихся в таблице фактов, то никакой проблемы бы не возникало, однако использование в такой схеме факта из справочника умножит его значение по неиспользуемым измерениям из таблицы фактов. Так, например, при построении выборки с полями {Год, Возрастная группа, Ширина возрастного интервала} последнее поле умножится для данного года на количество районов и полов.
Для устранения зависимости от района и пола необходимо исключить их из таблицы фактов. Одним из способов могло бы стать создание таблицы-запроса, в которой выбирались бы сгруппированные по необходимым измерениям факты. С другой стороны, в такой витрине пользователь не смог бы воспользоваться при необходимости полем Пол или Район, хотя в исходной таблице фактов они присутствуют.
Естественным решением стало формирование представлений в момент получения выборки. При формировании запроса пользователю необходимо установить режим исключения неиспользуемых измерений, и тогда по таблице фактов будет сформировано представление, к которому и будет адресован запрос пользователя. Для корректного формирования представления в таблице фактов необходимо установить вид полей. По полям вида «Измерение» представление будет группировать данные, а по полям вида «Факт» суммировать (см. рисунок 28).

Рисунок 28 – Диалог выбора вида поля
3.4 Блок OLAP-анализа и формирования OLAP-моделей
Блок оперативного анализа данных системы «Аналитик» – OLAP-машина – непосредственно связан с подсистемой формирования витрин данных. Более того, их разделение на блоки является условным и сделано в связи с разной функциональностью. Как формирование аналитического запроса, так и последующий анализ данных производятся на основе витрин данных. Набор аналитических объектов является конечной целью создания витрины данных и в тоже время является отправной точкой при анализе данных.
3.4.1 Базовые аналитические операции
Непосредственно анализ данных начинается с формирования аналитического запроса, который состоит из набора интересующих показателей и измерений, а также задания условий фильтрации и порядка следования значений. Аналитический запрос формируется «перетаскиванием» аналитических объектов из дерева объектов в область построения запроса (см. рисунок 29). При этом для объектов типа измерение имеется возможность ограничить область значений и указать порядок следования значений.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |




