Широко используемые сейчас при разработке приложений реляционные системы управления базами данных (РСУБД) обладают рядом серьезных ограничений.
- Ограниченный набор типов данных. Все типы данных должны быть сведены к ограниченному набору, что делает реляционную технологию малопригодной для приложений, работающих со сложными объектами (например, мультимедиа, САПР, ГИС).
- Неестественное представление данных. РСУБД хранят информацию в двумерных таблицах (отношениях). Сложные структуры данных должны быть разбиты и распределены между этими таблицами. При этом логические связи между отношениями в базе данных не хранятся и их поддержка целиком ложится на приложения.
-"Нестыковка" с объектно-ориентированными языками программирования и объектно-ориентированными методологиями проектирования программного обеспечения. РСУБД не предлагают реальной поддержки для хранения объектов. Так как данные в программе и БД имеют разную структуру, их приходится постоянно преобразовывать, что значительно увеличивает как сложность программы, так и время ее выполнения.
Тенденции развития СУБД
Можно выделить четыре основные тенденции развития СУБД, направленные на преодоление ограничений РСУБД.
- "Эволюционный" подход, принятый основными поставщиками РСУБД и состоящий в постепенном введении объектно-ориентированных расширений в реляционную модель данных. Однако эти расширения вводятся медленно и вряд ли можно ожидать коренных изменений в ближайшее время. Серьезным шагом в этом направлении могла бы стать разработка стандарта SQL3.
- Объектно-ориентированные надстройки над РСУБД, берущие на себя роль шлюза между объектно-ориентированными языками и РСУБД (Odapter фирмы Hewlett-Packard, Persistence фирмы Persistence Software). Хотя, конечно, применение такого шлюза может отразиться на производительности системы.
- Объектно-реляционные СУБД (ОРСУБД). Представителями этого направления являются, например, UniSQL фирмы UniSQL и Illustra фирмы Illustra Information Technologies (сейчас уже подразделения фирмы Informix Software). В объектно-реляционных СУБД понятие реляционной модели значительно расширено. Например, в UniSQL имеются возможности указывать в качестве значения столбца кортеж другого отношения; присоединять к отношению процедуры, работающие со значениями столбцов (инкапсуляция); организовывать отношения в БД в иерархию (наследование); использовать в качестве элементов отношений множества.
- Объектно-ориентированные системы управления базами данных (ОСУБД). В их основу заложен принцип сохранения объектов и отношений между ними в базе данных непосредственно, без изменения. Все свойства и полная структура объектов сохраняются в базе данных. В общем случае нужна только одна команда, чтобы запомнить, считать или удалить объект независимо от его сложности.
Некоторые ОСУБД первоначально являлись библиотеками какого-либо объектно-ориентированного языка программирования (обычно Си++ или Smalltalk), позволяющими сохранять объекты в файле.
СУБД сегодня
Возможность в отличие от РСУБД использовать определяемые программистом типы данных определила широкое применение ОСУБД в приложениях, работающих со сложными объектами.
Широкому распространению ОСУБД в других областях препятствуют отсутствие единого стандарта, недостаток по сравнению с РСУБД средств администрирования баз данных и нехватка средств быстрой разработки приложений.
После включения в состав ОСУБД мощных средств разработки и администрирования, возможности интеграции с реляционными БД, объектных расширений языка SQL, а также в результате наработки опыта их использования ОСУБД стали проникать и на рынок традиционных для РСУБД приложений. Количество инсталляций ОСУБД во всем мире быстро растет. Обладая большим потенциалом для дальнейшего развития, ОСУБД, вероятно, скоро станут одним из основных направлений развития СУБД.
Ведутся работы и по созданию стандартов в области ОСУБД. Для этого в 1991 году была создана группа ODMG (Object Database Management Group), являющаяся консорциумом фирм-производителей.
К концу 1993 года был разработан ODMG-93 - стандарт, охватывающий следующие основные темы: объектная модель данных (Object Data Model - ODM), язык описания объектов (Object Definition Language - ODL), объектный язык запросов (Object Query Language - OQL), интерфейс к ОСУБД из языков С++ и Smalltalk. Стандарт издан отдельной книгой (Catell R., Editor. The Object Database Standard: ODMG-93, Morgan Kaufmann Publisher, ISBN 1-55860-396-4). Однако до сих пор ни один из производителей не реализовал этот стандарт в полном объеме.
Перспективность ОСУБД подтверждается и возросшим интересом к этой технологии со стороны крупнейших производителей СУБД. Компания Informix Software приобрела фирму Illustra Information Technologies и объявила об интеграции своих продуктов с ОРСУБД Illustra и затем о выпуске общего продукта - ОСУБД Universal Server. Фирмы Computer Accociates и Fujitsu анонсировали выпуск ОСУБД Jasmin, предназначенной для быстрой разработки и внедрения мультимедийных приложений с архитектурой клиент - сервер для Internet и intranet.
Проблемы выбора ОСУБД
В отличие от РСУБД, поддерживающих одну и ту же реляционную модель данных и отличающихся, по существу, лишь деталями реализации тех или иных продвинутых функций, ОСУБД очень сильно различаются между собой, и выбор подходящей ОСУБД является довольно сложной задачей. В зависимости от приложения предпочтение может получить та или иная СУБД.
Существует несколько коммерческих отчетов, посвященных проблеме выбора ОСУБД. Наиболее известный, пожалуй, "DBMS Needs Assesment for Objects" Д. Барри и Р. Каттела (выпуск 3.0), в котором сравниваются 17 ОСУБД и ОРСУБД более чем по 150 группам характеристик. Однако такие отчеты довольно дорогостоящи. Например, вышеупомянутый отчет стоит $1795, что сравнимо со стоимостью клиент-серверной версии ОСУБД РОЕТ.
В настоящий момент на рынке коммерческих ОСУБД (английский термин ODBMS - object-oriented data base management system) представлены около десятка компаний. В таблице перечислены наиболее известные из существующих ОСУБД, работающих на компьютерах с процессором Intel.
Фирмой "Родник Софт" был проведен анализ ОСУБД с целью выявления оптимальной для разработки коммерческих приложений, работающих со сложными объектами.
К сожалению, более традиционные для ОСУБД области разработки программного обеспечения (такие, как САПР или ГИС) сейчас в России практически сведены к минимуму в связи с очень тяжелым положением основных потенциальных заказчиков - наукоемких отраслей. Хотя, конечно, все последующие рассуждения могут быть отнесены и на счет других типов приложений (с поправкой на их особенности).
Основной компьютерный парк России состоит из компьютеров с процессором с архитектурой Intel, причем среди них много устаревших моделей. Это исключило из рассмотрения те ОСУБД, которые работают только на UNIX-платформах (этим объясняется отсутствие в таблице ряда известных ОСУБД).
Наибольшее предпочтение по поддерживаемым платформам получили ОСУБД ObjectStore и POET, работающие кроме всех разновидностей Windows, UNIX и OS/2 еще и на Novell и предъявляющие наиболее скромные требования к аппаратным ресурсам. По ценовым характеристикам наиболее привлекательно выглядит ОСУБД РОЕТ.
Одним из наиболее важных качеств для коммерческих приложений является мощная система запросов. Здесь опять-таки выделяется система РОЕТ, единственная из рассматриваемых ОСУБД, поддерживающая кроме собственной системы запросов предложенный в стандарте ODMG-93 язык OQL (объектное расширения языка SQL). Другие системы используют свои собственные диалекты SQL.
Российский рынок объектно-ориентированных языков программирования почти полностью исчерпывается Си++. Поэтому наличие, например, Smalltalk-интерфейса не играет существенной роли, в то время как интерфейс Си++ является обязательным.
В результате проведенного исследования был сделан следующий вывод: если нет необходимости в распределенной БД и устраивает интерфейс Си++, предпочтение для разработки коммерческих приложений, работающих со сложными объектами, получает система РОЕТ как обладающая всеми возможностями полнофункциональной ОСУБД при умеренной (по сравнению с другими системами) цене.
Она позволяет хранить и обрабатывать данные произвольной структуры (вплоть до объектов OLE) и обеспечивать для них почти весь сервис, существующий в современных реляционных СУБД: поиск, запросы, OQL, индексы, разделение объектов, архитектура клиент - сервер, блокирование, вложенные транзакции, обработка событий, разграничение права доступа и т. д. При этом для РОЕТ существует ODBC-драйвер, что обеспечивает доступ к данным из других систем.
Заключение
ОСУБД, обладая практически всеми возможностями мощных РСУБД, позволяют преодолеть ограничения реляционной технологии и органично поддерживают объектно-ориентированный подход. Направление ОСУБД быстро развивается, захватывает все новые секторы рынка СУБД и, возможно, скоро станет серьезной альтернативой РСУБД даже в сфере традиционных приложений.
Возможно, те, кто имеет большой опыт использования РСУБД и для кого ограничения РСУБД не существенны, могут подождать появления объектно-ориентированных расширений РСУБД либо присмотреться к объектно-реляционным СУБД.
Но по крайней мере тем разработчикам, которые имеют дело со сложными объектами (например, в области мультимедиа, САПР или ГИС) или используют объектно-ориентированные языки программирования (особенно Си++ или Smalltalk), имеет смысл серьезно рассмотреть вопрос об использовании ОСУБД.
При высоких требованиях к ОСУБД целесообразно провести тщательный анализ поставляемых ОСУБД на предмет соответствия этим требованиям. Но если не требуется распределенная обработка и используется интерфейс Си++, то наиболее подходящей системой, по нашему мнению, является РОЕТ, предоставляющая возможность использовать все преимущества объектно-ориентированного подхода при относительно невысокой стоимости.
АЛЕКСАНДР ПОДЕЛЬКО
+--------------------------+----------------+------------------+---------+------------------+-----------------------------+---------------------------+
|ОСУБД (поставщик) |Модель данных |Архитектура |Год |Поддерживаемые |Встроенные средства |Цена* для NT |
| | | |выпуска |платформы |разработки | |
+--------------------------+----------------+------------------+---------+------------------+-----------------------------+---------------------------+
|GemStone (GemStone |Smalltalk |Распределенная, | 1987 |Сервер - UNIX, |С, С++ и |Система разработки баз |
|Systems Inc.) | |клиент - сервер, | |NT клиент - |Smalltalk-интерфейс, |данных $5200. Система |
| | |обмен страницами, | |UNIX, NT MS |средства администрирования и |разработки приложений |
| | |активная | |Windows, OS/2, |разработки |$1300 |
| | | | |Mac | | |
+--------------------------+----------------+------------------+---------+------------------+-----------------------------+---------------------------+
|ObjectStore (Object |Через язык |Распределенная, | 1990 |UNIX, MS Windows, |С, С++ и |Система разработки баз |
|Design Inc.) |используемого |клиент - сервер, | |Windows NT, OS/2, |Smalltalk-интерфейс, |данных $11 250. Система |
| |интерфейса, |обмен страницами, | |Novell, Windows |средства администрирования и |разработки приложений |
| |сохраняемость |пассивная | |95 |разработки |$3750 |
| |на уровне | | | | | |
| |объекта | | | | | |
+--------------------------+----------------+------------------+---------+------------------+-----------------------------+---------------------------+
|Objectivity/ DB |С++ |Распределенная, | 1990 |Сервер - UNIX, |С, С++ и |Лицензия разработчика |
|(Objectivity Inc.) | |клиент - сервер, | |Windows NT клиент |Smalltalk-интерфейс, SQL ++, |$9375. Лицензия |
| | |обмен страницами, | |- UNIX, Windows |средства разработки и |пользователя $2250 |
| | |пассивная | |NT, MS Windows |администрирования | |
+--------------------------+----------------+------------------+---------+------------------+-----------------------------+---------------------------+
|Versant ODBMS (Versant |Через язык |Распределенная, | 1990 |UNIX, OS/2, MS |С, С++ и |Система разработки баз |
|Object Technology) |используемого |клиент - сервер, | |Windows, Windows |Smalltalk-интерфейс, |данных $6875. Система |
| |интерфейса |обмен объектами, | |NT |ObjectSQL, средства |разработки приложений |
| | |пассивная | | |разработки и |$1925 |
| | | | | |администрирования | |
+--------------------------+----------------+------------------+---------+------------------+-----------------------------+---------------------------+
|POET (POET Software |С++ |Клиент - сервер, | 1991 |UNIX,MS Windows, |С++ - интерфейс, |Однопользовательская |
|Corp.) | |обмен объектами, | |Windows NT, OS/2, |интегрированная среда |версия - $230, |
| | |пассивная | |Mac, Windows 95 |разработки, ODBC-драйвер OQL |многопользовательская |
| | | | | | |версия - $1600 |
+--------------------------+----------------+------------------+---------+------------------+-----------------------------+---------------------------+
*Так как привести цену за одну и ту же конфигурацию не представляется возможным из-за разной ценовой политики фирм, то цены даны только для оценки