Вовсе не обязательно всем толкаться в одной колее, ведь "доехать туда, куда все" — часто не та цель, к которой надо стремиться. Даже при выборе СУБД есть место вполне практичным, но нешаблонным решениям. Можно затратить гораздо меньше средств на программные лицензии и сэкономить на аппаратной платформе, если помнить, что реальный мир шире привычных стереотипов.

Среди множества задач современного руководителя информационной службы есть одна, весьма трудно решаемая, — это необходимость ориентироваться в поистине бескрайнем мире современных информационных технологий. Естественно, что основой любой современной информационной системы являются два "системных" программных компонента — ОС и СУБД. Если в настоящий момент с операционными системами все более или менее ясно — Unix или Microsoft, то на рынке СУБД наблюдается большее разнообразие. Из-за активной маркетинговой политики "ведущей пятерки" (Oracle, Informix, DB2, Sybase, Microsoft SQL Server) иногда складывается впечатление, что другого выбора и не существует. Видимо, это действительно так, если речь идет о построении информационной системы крупной корпорации, которая должна обладать практически неограниченными возможностями масштабирования. Но в мире (и, в частности, в нашей стране) подавляющее число компаний относится к категории малых и средних. Именно руководители таких компаний должны обращать внимание на имеющиеся на рынке многочисленные СУБД, обладающие достаточными возможностями, надежностью и эффективностью и гораздо более дешевые, чем основные гиганты.

Мне кажется, что пришло время поговорить о "гигантах среднего масштаба". Их на самом деле очень много. Для обсуждения я выбрал три продукта и соответственно три компании — Ardent Software (www.ardentsoftware.com), Raima (www.raima.com) и Pervasive Software (www.pervasive.com). Продукты этих компаний, представленные в статье (UniVerse, Velosis SQL Server и Pervasive.SQL), имеют разные корни, разную историю и, вообще говоря, по-разному позиционируются на рынке, но их объединяют следующие факторы.

  • В исходной точке своего развития они не опирались на реляционную модель данных.
  • В настоящее время в каждом из них поддерживается большинство принятых на сегодня реляционных стандартов (в частности, базовый уровень SQL-92 и ODBC).
  • Все продукты ориентированы на использование теперь уже классической архитектуры клиент-сервер.
  • Производители продуктов (по крайней мере, пока) не вступают в состязание с гигантами при испытаниях на тестовых наборах семейства TPC (принятые в мире тестовые наборы для сравнения возможностей различной аппаратуры и СУБД).
  • В каждом из продуктов имеются возможности, выходящие за пределы стандартного SQL; они унаследованы от предков современных версий продуктов и поддерживаются за счет расширений SQL и/или использования других интерфейсов.

У читателей может возникнуть естественный вопрос: почему автор, исходя из высказанных соображений, не начинает с более ранних и более распространенных в России систем IDMS и Adabas, которые теперь тоже обладают реляционным интерфейсом на основе языка SQL? В основном это связано с тем, что они относятся к более "тяжелой" весовой категории. С моей точки зрения, эти системы являются полноправными кандидатами на использование в качестве ядра крупной корпоративной информационной системы и безусловно заслуживают отдельного рассмотрения.

UniVerse и другие СУБД Ardent Software

Ardent Software была образована в конце 1997 года путем слияния компаний Unidata и VMark. Примерно за год до этого Unidata поглотила компанию O2 Technologies. В результате Ardent является владельцем трех развитых продуктов управления базами данных: UniVerse, Unidata и O2. Слияние Unidata и VMark произошло достаточно естественно, поскольку собственные системы обеих компаний относятся к категории "multi-valued" и имеют свои корни в системе управления данными Pick (базовой особенностью этого подхода является хранение строк таблиц в виде "динамических массивов", позволяющих легко вводить сложные структуры столбцов). O2 — известная разработанная во Франции объектно-ориентированная система; пока она стоит особняком в ряду продуктов Ardent, хотя ведутся работы по интеграции. СУБД UniVerse более известна в России, поскольку компания VMark распространяла ее через свой офис в Москве.

Следуя принятому Vmark маркетинговому подходу, Ardent до сих пор позиционирует UniVerse как "постреляционную" СУБД, имея в виду, что в схемах баз данных UniVerse не обязательно поддерживается первая нормальная форма (Non-First Normal Form — NF2). С одной стороны, это верно, поскольку в расширенном варианте языка SQL, поддерживаемом в UniVerse, допускается работа с таблицами, столбцы которых содержат неатомарные данные (массивы и даже таблицы). С другой — это в большой степени является побочным эффектом унаследованной от Pick физической модели хранения данных во внешней памяти: база данных состоит из таблиц, число полей каждой из которых фиксировано, но каждое поле может содержать любое число значений (динамический массив). Конечно, такая физическая модель дает возможность реализовать логическую модель NF2, но, вообще говоря, она позволяет добиться других представлений при выходе за пределы реляционной модели данных (в частности, языка SQL).

Поэтому в UniVerse поддерживаются два базовых интерфейса доступа к базам данных — Retrieve и SQL. Retrieve — это собственный интерфейс UniVerse, на основе которого разработано большинство приложений системы. Он позволяет воспользоваться всеми особенностями среды хранения баз данных, и именно благодаря ему до сих пор многие расценивают UniVerse как "СУБД в стиле Pick". Между тем, как отмечается в документации, в последней версии UniVerse (9.4.1) поддерживается диалект SQL, который включает возможности базового уровня SQL-92 и позволяет реализовать все функции, предлагаемые Retrieve. Система основана на архитектуре клиент-сервер, и с помощью интерфейса ODBC и, возможно, мониторов транзакций может использоваться в распределенных неоднородных приложениях.

Конечно, Ardent поставляет необходимые средства разработки приложений для всех своих СУБД, но делает упор на наличие большого числа готовых приложений. Следует заметить, что исторически UniVerse была системой, ориентированной на использование в среде Unix. Однако сегодня Ardent предлагает UniVerse и для платформы Windows NT.

В России СУБД UniVerse и основанные на ней приложения распространяет московская компания ООО "СЕПТ" (sept@monk.lz.space.ru).

Raima и Velosis Database Server

Компания Raima основана в 1982 году, и уже в 1984-м выпустила завоевавшую большую популярность СУБД db_VISTA. Мне кажется, что широкое признание db_VISTA связано с двумя обстоятельствами. Во-первых, эта система была одной из немногих (а может быть, и единственной) СУБД, предназначенной для профессиональных программистов персональных компьютеров (базовым языком разработки приложений являлся Си). Во-вторых, db_VISTA основана на навигационной сетевой модели данных (подмножестве модели CODASYL). Используя явную навигацию в базе данных, профессионалы достигали хороших показателей производительности в своих приложениях. Позднее db_VISTA была переименована в Raima Database Manager (RDM). Вместе с другим продуктом компании Raima Object Manager (ROM) RDM как средство управления базами данных обрел большую популярность среди разработчиков приложений на языках Си и Си++ в операционных средах Windows и Unix. В 1995 году RDM и ROM были объединены в RDM++ (текущая версия — 4.5), который характеризуется компанией как идеальная основа встроенных систем.

В 1993 году Raima завершила разработку СУБД нового поколения, ориентированную на создание приложений баз данных в архитектуре клиент-сервер. Новый продукт получил название Velocis Database Server. В настоящее время компания предлагает версию 2.0 (в начале 1999 года была объявлена версия 2.1). Velocis позиционируется как клиент-серверная СУБД для приложений с высокими требованиями к производительности.

На мой взгляд, основной идеей, заложенной в Velocis, было создание сервера баз данных, который, с одной стороны, поддерживает все основные стандарты SQL-серверов (базовый уровень SQL-92, ODBC), а с другой — базируется на сетевой модели данных, особенности которой открыты для разработчиков приложений. Что касается SQL, то, как и в случае UniVerse, поддерживается расширенный диалект языка. Основной дополнительной по отношению к стандарту особенностью является введение в набор операторов определения данных оператора CREATE JOIN, в котором указывается условие соединения двух таблиц. Реально такое определение приводит к возникновению в одной из соединяемых таблиц нового неявного столбца, содержащего указатели на строки второй таблицы. В результате появляется новый способ доступа при соединении таких таблиц, не требующий использования индексов или сортировок.

Конечно, работа на уровне расширенного SQL позволяет применять только некоторые возможности сетевой организации Velocis. Для полного использования существует набор функций, представляющий API-интерфейс для программирования на Си, и соответствующий набор классов на Си++. Эти интерфейсы дают возможность Velocis функционировать в режиме, привычном для разработчиков приложений в среде dbVISTA/RDM.

Серверная часть Velocis Database Server может работать на платформах Windows (начиная с 3.1x и включая NT), под управлением различных вариантов ОС Unix (включая QNX) и на платформах OS/2. На стороне клиента, в дополнение к перечисленным ОС могут использоваться Mac OS и DOS.

В России Raima представляет санкт-петербургская компания ТОR (www.tor.ru), предлагающая полный ассортимент ее программных продуктов.

Pervasive.SQL компании Pervasive Software

Под названием Pervasive Software компания существует с 1996 года, хотя реально ее история началась в 1982 года, когда была организована фирма SoftCraft. Именно она разработала и начала продавать систему Btrieve, которую многие называли системой управления базами данных, но которая на самом деле (с моей точки зрения) была развитой файловой системой с богатыми возможностями индексации. В 1987 году SoftCraft вошла в состав Novell, а Btrieve стала частью NetWare. По мере роста популярности Btrieve и возрастания потребностей пользователей Novell развивала свои продукты управления данными, что привело к появлению системы Scalable SQL. В 1994 году была признана целесообразность продолжения работ над системами баз данных вне компании Novell и родилась Btrieve Technologies, которая позднее была переименована в Pervasive Software.

В настоящее время основным продуктом управления базами данных, предлагаемым Pervasive, является развитая клиент-серверная СУБД Pervasive.SQL, считающаяся "законным" наследником и Btrieve, и Scalable SQL. Компания ориентирует свой продукт на нужды малого и среднего бизнеса, ссылаясь на следующие его возможности: минимальные потребности в администрировании; масштабируемость от переносимых компьютеров до высокопроизводительных серверов; поддержку популярных платформ NetWare и NT; сравнительно низкие расходы при поддержке больших баз данных.

В соответствии с довольно странной терминологией компании Pervasive.SQL поддерживает два основных режима работы — транзакционный и реляционный. Транзакционным режимом называется тот, который обеспечивается унаследованным интерфейсом Btrieve. Соответственно реляционный режим основывается на интерфейсе SQL. Поддерживается ANSI SQL-92 (базовый уровень) и фактический стандарт ODBC.

В последнем, седьмом выпуске Pervasive.SQL в числе прочих реализованы следующие усовершенствования.

  • Улучшена производительность. В систему внедрен оптимизатор запросов, базирующийся на статистических оценках. В ядре системы реализован протокол, упреждающей записи в журнал. Производительность системы в транзакционном режиме почти в десять раз превышает возможности Btrieve V. 6.15.
  • Реализованы 16- и 32-разрядные варианты ODBC.
  • Обеспечена возможность работы с файлами размером до 64 Гбайт.
  • Усовершенствованная программа инсталляции обеспечивает простую установку системы на рабочих станциях и серверах.
  • В реляционном режиме возможно использование триггеров и хранимых процедур на основе SQL и Visual Basic.
  • Внутри транзакций можно устанавливать точки сохранения, обеспечивающие возможность частичного отката транзакций.
  • Для переноса логики приложений на сервер баз данных реализован язык сценариев Inscribe, совместимый с Visual Basic.
  • В транзакционном интерфейсе поддерживаются одно- и двухбайтные кодовые наборы. Для нескольких языков поддерживаются встроенные правила сортировки.
  • Поддерживается ряд новых типов данных, включая TIMESTAMP.

В России программные средства Pervasive Software распространяет московская компания R-Style Software Lab. (www.softlab.ru).

Выбор на любой вкус

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



Сергей Дмитриевич Кузнецов — эксперт фирмы ЦИТ. С ним можно связаться по электронной почте по адресу kuz@citmgu.ru.