Сравнительный анализ функций СУБД, с которыми работают современные корпоративные информационные системы

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В ОРГАНИЗАЦИИ ПРОИЗВОДСТВА

Н.В. Калягина

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ФУНКЦИЙ СУБД,

С КОТОРЫМИ РАБОТАЮТ СОВРЕМЕННЫЕ КОРПОРАТИВНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ

N. V. Kalyagina

COMPARATIVE ANALYSIS OF DBMS FUNCTIONS USED BY MODERN CORPORATE INFORMATIONAL SYSTEMS

Ключевые слова: Системы управления базами данных (СУБД), импорт/экспорт данных, интерфейсы для обмена данными, материализованные представления.

Key words: database management system (DBMS), import or export of data, interfaces for data exchange, the materialized views.

Аннотация

Проведен сравнительный анализ функций и возможностей СУБД PostgreSQL, Oracle и MS SQL, с целью наиболее рационального использования для конкретного типа проектов, а также обмена данными между ними.

Abstract

The comparative analysis offunctions and capabilities of DBMS PostgreSQL, Oracle and MS SQL was conductedfor rational usage of specific types ofprojects and data exchange between them.

В задачах построения сложных информационных систем одной из главных проблем является обмен данными между различными подсистемами. На одном предприятии могут одновременно использоваться несколько СУБД, в связи с этим может возникнуть проблема интеграции данных из одной СУБД в другую. Нередко самая простая задача импорта/экспорта данных из одной системы в другую приводит к необходимости серьезных разработок модулей на стыке подсистем. Задача существенно облегчается, если данные определенного класса будут перемещаться между подсистемами, при условии, что в этих подсистемах будет заложена технологически реализованная возможность воспринимать извне и отдавать наружу данные в стандартном формате импорта/экспорта. Данный подход является основой для разработки метаданных и интерфейсов для обмена регулярными данными для различных унаследованных разноформатных систем. В настоящее время современные корпоративные информационные системы чаще всего работают под управлением таких СУБД как PostgreSQL, Oracle, MS SQL. Поэтому для корректной работы метаданных и интерфейсов, для обмена регулярными данными необходимо правильно оценить возможности каждой из используемых СУБД. В данной статье проводится сравнительный анализ функций и возможностей СУБД PostgreSQL, Oracle и MS SQL, с целью наиболее рационального использования для конкретного типа проектов, а также обмена данными между ними. В таблице 1 рассмотрены основные функции СУБД PostgreSQL, Oracle и MS SQL.

Материализованные представления

Oracle предлагает наиболее эффективные методы для управления материализованными представлениями. Материализованные представления можно создавать как результат любого SQL выражения. Поддерживается автоматическое и мануальное обновление представлений. Дополнительно поддерживаются: неблокирующие обновления, сжатие данных, построение обновлений на предварительно вычисленных данных. Microsoft SQL Server применяет вместо материализованных представлений так называемые “индексированные представления” (Indexed views). Индексированные представления сохраняются в базе данных прозрачно для пользователя, каждое изменение данных в базовой таблице приводит к пересчёту данных в индексированном представлении. Индексированные представления допускают только простые агрегационные

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

Таблица 1 - Основные функции СУБД PostgreSQL, Oracle и MS SQL

Oracle 11G Microsof SQL Server PostgreSQL 8.3.3

Материализованные представления

Rebuild да нет да

Refresh да да да

Оптимизация запросов да да нет

Аналитические функции да да нет

MERGE оператор да да нет

Виртуальные колонки да да нет

Сжатие данных да да да

Анализ запросов да да да

Планировщик задач да да да

Моделирование схемы данных да да да

Эффективный импорт данных да нет нет

PostgreSQL не поддерживает материализованные представления, но для PostgreSQL существуют готовые модули, позволяющие создавать и управлять материализованными представлениями (обычные таблицы с агрегированными данными и дополнительная метаинформация).

Аналитические функции

Аналитические функции работают не с одной строкой, а сразу с множеством строк данных. Данные в группах можно сортировать (в каждой строке вычислить сумму всех предыдущих значений в группе) и определять дополнительные “районы” (ranges) данных (сумма текущей строки и трех строк после неё).

MERGE оператор

MERGE оператор определят условие (MATCH - обычно проверка наличия данных в таблице с текущим идентификатором), в зависимости от которого данные в таблице будут удалены, записаны или обновлены. Таким образом, MERGE оператор позволяет совместить операторы INSERT, UPDATE и DELETE в одну команду, благодаря этому упрощаются и ускоряются операции по загрузке данных.

Oracle и SQL Server поддерживают MERGE оператор декларированный ANSI SQL:2003. PostgreSQL не имеет аналога MERGE оператору.

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

Для небольших проектов подойдёт база данных от Microsoft. Особенно благодаря интуитивно понятным инструментам моделирования схем и процессов переноса/трансформации данных существенно сокращается время внедрения проекта. Но в функциональности и масштабировании SQL Server на данный момент несравним с продуктом от Oracle.

PostgreSQL подходит для аналитических проектов ограниченно. Отсутствующие функции могут быть реализованы самостоятельно или симулированы.