OLAP -системы

OLTP-системы

Системы обработки транзакций

Среди фактографических информационных систем важное место занимают два класса: системы оперативной обработки данных и системы, ориентированные на анализ данных и поддержку принятия решений

Сильно нормализованные модели данных хорошо подходят для так называемых OLTP-приложений (On-Line Transaction Processing - оперативная обработка транзакций). Типичными примерами OLTP-приложений являются системы складского учета, системы заказов билетов, банковские системы, выполняющие операции по переводу денег, системы отслеживания компонентов во время сборки конечного продукта на производстве и т.п. Основная функция подобных систем заключается в выполнении большого количества коротких транзакций. Сами транзакции выглядят относительно просто, например, «снять сумму денег со счета А, добавить эту сумму на счет В». Время ожидания типичных запросов в таких системах не должна превышать нескольких секунд. Проблемы OLTP-систем заключается в том, что:

1) транзакций очень много;

2) выполняются они одновременно (к системе может быть подключено несколько тысяч одновременно работающих пользователей);

3) при возникновении ошибки, транзакция должна целиком откатиться и вернуть систему к состоянию, которое было до начала транзакции (не должно быть ситуации, когда деньги сняты со счета А, но не поступили на счет В).

Практически все запросы к базе данных в OLTP-приложениях состоят из команд вставки, обновления, удаления. Запросы на выборку в основном предназначены для предоставления пользователям возможности выбора из различных справочников. Большая часть запросов, таким образом, известна заранее еще на этапе проектирования системы. Пример запроса: «есть ли свободные места в купе поезда Москва-Сочи, отправляющегося 20 августа в 23:15». Таким образом, критическим для OLTP-приложений является скорость и надежность выполнения коротких операций обновления данных. Чем выше уровень нормализации данных в OLTP-приложении, тем оно, как правило, быстрее и надежнее. OLTP-системы требуют защиты от несанкционированного доступа, от нарушения целостности, аппаратных и программных сбоев.

Другим типом приложений являются OLAP-приложения (On-Line Analitical Processing - оперативная аналитическая обработка данных). Это обобщенный термин, характеризующий принципы построения систем поддержки принятия решений (СППР) (Decision Support System - DSS), хранилищ данных (Data Warehouse), систем интеллектуального анализа данных (Data Mining). Такие системы предназначены для нахождения зависимостей между различными данными. Приведем примеры запросов: «как связан объем продаж товаров с характеристиками потенциальных покупателей»; «каким будет объем продаж железнодорожных билетов в следующие 3 месяца с учетом сезонных колебаний»), для проведения анализа "что если…". OLAP-приложения оперируют с большими массивами данных, уже накопленными в OLTP-приложениях, взятыми из электронных таблиц или из других источников данных. Такие системы характеризуются следующими признаками:

· Добавление в систему новых данных происходит относительно редко крупными блоками (например, раз в квартал загружаются данные по итогам квартальных продаж из OLTP-приложения).

· Данные, добавленные в систему, обычно никогда не удаляются.

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

· Запросы к системе являются нерегламентированными и, как правило, достаточно сложными. Очень часто новый запрос формулируется аналитиком для уточнения результата, полученного в результате предыдущего запроса.

· Скорость выполнения запросов важна, но не критична.

Данные OLAP-приложений обычно представлены в виде одного или нескольких гиперкубов, измерения которого представляют собой справочные данные, а в ячейках самого гиперкуба хранятся собственно данные. Например, можно построить гиперкуб, измерениями которого являются: время (в кварталах, годах), тип товара и отделения компании, а в ячейках хранятся объемы продаж. Такой гиперкуб будет содержать данных о продажах различных типов товаров по кварталам и подразделениям. Основываясь на этих данных, можно отвечать на вопросы вроде "у какого подразделения самые лучшие объемы продаж в текущем году?", или "каковы тенденции продаж отделений Юго-Западного региона в текущем году по сравнению с предыдущим годом?"

Физически гиперкуб может быть построен на основе специальной многомерной модели данных (MOLAP - Multidimensional OLAP) или построен средствами реляционной модели данных (ROLAP - Relational OLAP).

Оперативность обработки больших объемов данных в системах OLAP достигается за счет применения мощной многопроцессорной ВТ, сложных методов анализа и специальных хранилищ данных, накапливающих информацию из разных источников за большой период времени и обеспечивающих быстрый доступ к ней (Data Warehouse ). В большинстве случаев сложный аналитический запрос невозможно сформулировать в терминах языка SQL, поэтому приходится применять специализированные языки, ориентированные на аналитическую обработку данных. К их числу можно отнести, например, язык Express 4GL (язык четвертого поколения - 4 Generation Language фирмы.Oracle).