"Объектные СУБД на российских просторах"

Кантонистов Юрий Алексеевич,
Научно -производственный центр "Интелтек Плюс"

Доклад посвящен введению в объектные базы данных, рассказу о современных объектных СУБД, в том числе о разработке НПЦ "Интелтек Плюс" - СУБД ODB-Jupiter и ее прикладной программе информационно-поисковой системе ODB-Text.

Введение

Начнем с ключевого вопроса: а зачем они вообще нужны, объектные базы данных? Ведь есть много хорошо зарекомендовавших себя реляционных баз, которые можно использовать. Ответ весьма прост: да, все верно, но реляционные базы пригодны для вполне определенного и ограниченного круга задач. В основном это задачи, связанные с обработкой хорошо структурированной информации. Задачи, данные которых хорошо отображаются на реляционные структуры и реляционные отношения, а также задачи, решение которых сводится к выборке данных из базы с последующей обработкой и обновлением.

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

Объектная СУБД идеально подходит для интерпретации сложных данных, в отличие от реляционных СУБД, где добавление нового типа данных достигается ценой потери производительности или за счет резкого увеличения сроков и стоимости разработки приложений. На наш взгляд, адаптация традиционных технологий для новых требований, которые диктуются необходимостью поддерживать мультимедиа, ИНТЕРНЕТ может быть более затратным путем, чем приобретение и внедрение продуктов и технологий, которые изначально созданы, чтобы удовлетворить все требования к средствам современного информационного бизнеса. Научно-производственный центр "ИНТЕЛТЕК ПЛЮС" занимается проблематикой объектных баз данных более пяти лет. Мы считаем, что именно технологии объектных СУБД удовлетворяют этим требованиям. Поэтому компания НПЦ "ИНТЕЛТЕК ПЛЮС" ведет разработку собственных программных систем и прилагает усилия по популяризации и внедрению программных продуктов других фирм в этой области.

Сравнение объектного и объектно-реляционного подходов

Любая СУБД основывается на определенной модели данных. С конца 70-х годов наибольшую популярность получила реляционная модель данных. Реляционные СУБД в настоящее время играют главенствующую роль на мировом рынке СУБД. В то же время в последнее десятилетие окрепла и набрала силу тенденция применения объектных средств проектирования и разработки. Реакцией производителей реляционных СУБД на возрастающую популярность объектных технологий стало появление объектно-реляционных баз данных, так называемых универсальных серверов. По нашему мнению - это половинчатое решение, диктуемое чисто рыночными интересами. Ядро универсального сервера (Informix, Oracle, DB2), несмотря на существование объектных расширений, и возможностей добавления новых типов данных, остается ориентированным на работу с реляционными данными, что отрицательно сказывается на производительности, вынуждая СУБД всякий раз производить сборку/разборку объектов при обмене с хранилищем. Еще один существенный недостаток объектно-реляционных баз заключается в том, что добавлений новых типов данных - это по сути расширение ядра сервера. Это модификация тщательно отлаженного, оптимизированного механизма, последствия такой операции трудно просчитываются.

В связи с широким распространением универсальных серверов, которые построены на основе объектно-реляционной модели, скажу несколько слов о сопоставлении этой модели объектной.

Модель данных.

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

Новые типы данных.

Объектная база, в отличие от реляционной, не требует модификации ядра при добавлении нового типа данных. Новый класс и его экземпляры просто поступают во внешние структуры базы данных. Система управления ими остается без изменений. Расширение типов универсального сервера (Informix, Oracle) требует сертификации дополнительных модулей (datablades, cartridges), их специального тестирования и вставки в ядро СУБД. IBM даже оставляет за собой исключительное право выпуска расширений типов для СУБД DB/2. Очевидно, что постоянные модификации ядра отлаженного оптимизированного любого программного продукта, а тем более СУБД, не самый лучший путь наращивания функциональных возможностей пользовательских приложений.

Язык СУБД и запросы.

Как правило, язык запросов объектной СУБД - разновидность реализации OQL - Object Query Language, языка, стандартизованного группой ODMG (Object Database Management Group). Он существенно отличается от SQL. Объектно-реляционные СУБД используют различные варианты расширений SQL с ограниченными объектными дополнениями.

Оптимизация ядра СУБД.

Ядро объектной СУБД оптимизировано под операции с объектами. Ядро объектно-реляционной СУБД остается реляционным. "Объектность" реализуется в виде специальность надстройки.

Современные объектные базы

Возможно, Вы являетесь пользователем объектной СУБД, не подозревая об этом. Если для просмотра Интернет-узлов Вы пользуетесь Netscape'ом, то на Вас работает модуль сохранения объектов Java - ObjectStore PSE ( разработка компании ObjectDesign ).

POET (компания POET Software)- сравнительно недорогая и скромная по запросам к ресурсам объектная база данных. Одна из особенностей СУБД POET - компактность. Ядро базы данных занимает около 1 Мб. Ее можно рекомендовать к использованию в среде Windows, Windows NT. Необходимо отметить, что POET имеет как собственную среду разработки, так и средства стыковки интерфейса базы с популярными компиляторами C++ компаний Borland и Microsoft. Помимо этого, программный интерфейс поддерживает Java, Visual Basic, Active/X-элементы.

Jasmine ( компания Computer Associates ), наиболее известная объектная СУБД.

Будучи одной из новейших объектных баз данных, вобрала в себя опыт предыдущих работ, добавив много нужных для объектного программирования новшеств. Как коммерческий продукт, пожалуй, имеет наибольший потенциал на рынке СУБД, тем более учитывая, что его продвигает Computer Associates. СУБД снабжена визуальной средой разработки Jasmine Studio, которая отличается удобным, продуманным и интуитивно понятным интерфейсом

Versant ( разработка Versant Technologies ). С использованием Versant реализован целый ряд крупных проектов (в первую очередь в области телекоммуникаций).

O2 ( компания Ardent Software )- живая "классика" среди объектных баз данных. Чаще используется в области телекоммуникаций и систем специального применения.

Российская объектная СУБД - ODB-Jupiter

Это оригинальная разработка научно-производственного центра "Интелтек Плюс". По сравнению с приведенными выше системами управления базами данных эта СУБД находит более широкое применение в России.

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

СУБД ODB-Jupiter оперирует объектами. Особенностью реализации СУБД является тот факт, что непосредственно в базе данных хранятся данные объектов. Они запоминаются в файлах базы данных как блоки двоичной информации. Для представления данных в объектном виде существует отдельный уровень представления данных – объектный уровень. Это расширяемый набор динамических библиотек, в которых содержатся реализации основных типов данных. Среди основных типов строка, целое и вещественное число, текст, дата, время, хранилище объектов OLE. Расширение мощности типов данных возможно путем регистрации динамических библиотек, поддерживающих новые форматы данных.

Клиентом СУБД может быть как любая программа, использующая клиентскую библиотеку, так и броузер Интренет. Существенное отличие в их работе заключается в том, что пользователь броузера не может производить операции изменения над документами базы.

Рисунок 1. Архитектура СУБД ODB-Jupiter.

СУБД включает в себя три уровня - Рисунок 1. Первый – уровень управления файлами базы данных. База данных состоит из файла данных и файла индекса. На этом уровне решается задача поддержания целостности данных. Особенно актуально это в связи с мультизадачной средой сервера баз данных. Непосредственно база данных представляет собой хранилище структурированных записей переменной длины и библиотеку, реализующую набор операций над записями: добавление/чтение/замещение/удаление. На этом уровне решается проблема эффективного управления дисковыми файлами, обеспечения отказоустойчивого механизма модификации файлов БД, оптимального кэширования записей. В файле базы данных хранится "проекция" реального объекта - непосредственно данные (атрибуты) и информация для загрузки объекта в оперативную память. Каждой записи при добавлении присваивается уникальный номер - ID. Впоследствии запись доступна по своему идентификатору. Если воспользоваться терминами реляционных СУБД, запись может представлять либо значение, либо массив, либо кортеж.

На дескрипторном уровне известны имена типов записей, хранящихся в БД и присутствуют методы для доступа к компонентам структурированной записи. Таким образом, возможно оперативное извлечение информации без загрузки объекта в оперативную память целиком. Здесь в БД уже просматривается структура в виде списка типов объектов и их расположения. Отметим, что расположение записи однозначно определяется идентификатором.

На объектном уровне присутствуют объекты базы данных, которые взаимодействуют по определенным правилам. Здесь сервер получает сообщения, расшифровывает их, создает объекты и структур, необходимых для интерпретации данных в сообщении. Обратное действие - реакция на команду клиента, после которой извлекается информация из объектов и структур, указанных в команде. Информация укладывается в линейный буфер и в таком виде отправляется на сервер. Таково в общих чертах назначение объектного уровня. С одной стороны, он соприкасается с низкоуровневым интерфейсом сети (в случае сервера - с библиотеками управления записями и индексами), а с другой сам предоставляет интерфейс для реализации более высоких уровней и интерфейса с пользователем.

Объектный уровень, описанный выше, предоставляет обширный программный интерфейс объектно-ориентированной СУБД. Программный интерфейс СУБД собран в одной динамически загружаемой библиотеке. На уровне приложений функционируют библиотеки высокого уровня и прикладные программы, которые связывают данные объектов определенной логикой и осуществляют визуализацию данных из базы, интерактивное или иное взаимодействие с пользователем. Разработчик приложения никак не ограничивается количеством используемых узлов сети и баз данных. Как правило, разработчик-программист создает ряд классов, которые планируется сохраняться в базе данных.

Рисунок 2. Серверная часть СУБД.

Ядро СУБД - библиотека управления объектами см. Рисунок 2. Здесь выполняются операции по созданию/индексированию/блокировке объектов. Обратите внимание на то, что в ядро СУБД встроен модуль полнотекстового поиска. Это означает, что ODB-Jupiter эффективно реализует индексацию и поиск текстовых документов.

Рисунок 3. Клиентская часть СУБД.

Когда клиент устанавливает соединение с сервером, создается один объект класса TNetClient, который обеспечивает поддержание канала связи с клиентской стороны. В одном сеансе связи, как правило, приложение работает с несколькими базами данных. На Рисунке 3 изображен случай когда прикладная программа работает с объектами, находящимися в трех различных базах данных. Имена баз - "main", "rubr", "config". Каждый объект, обладающий свойством обмена с базой данных, знает имя сервера и имя той базы данных, куда он будет отправлен. Каждый объект TClientDatabase поддерживает список объектов-потомков TOdbObject, связанных с данной базой.

СУБД ODB-Jupiter - активно развивающийся проект. В настоящее время планируется встроить в ядро СУБД механизмы репликации, журнализации с целью восстановления от сбоев. Требуется наладить управление транзакциями причем с учетом того, что транзакции могут быть вложенными и длительными. В ближайших планах - обеспечить блокировки объектов чтобы полноценно поддерживать многопользовательскую работу с базами данных.

Прикладная программа СУБД ODB-Jupiter - информационно-поисковая система ODB-Text

Разработана прикладная программа СУБД - документальная информационно-поисковая система ODB-Text. Широкие поисковые возможности плюс коллективная работа с документами. ODB-Text - хорошая иллюстрация возможностей поиска по запросам на естественном языке и обработке неструктурированной информации и поискового механизма.

Документальная информационно-поисковая система ODB-Text версии 3.0 - это корпоративное хранилище документов. Доступ к базе документов возможен из локальных сетей Windows, Windows NT, Novell, глобальных сетей по протоколу TCP/IP, в том числе из сети Интернет. ODB-Text существенно облегчает упорядочение и поиск информации в корпоративной сети Вашего предприятия, имеет средства построения отчетов.

Особенности: хранение мультимедийных документов в сочетании с великолепными поисковыми возможностями, ведение гипертекстовых баз документов (подобных известным юридическим базам данных), автоматизация учета документооборота государственных учреждений, малых и средних коммерческих предприятий, банков и т.д., коллективная обработка документов, организация больших банков данных и быстрый поиск информации, интеграция с Windows-программами MS Word, MS Excel, CorelDRAW! и др., возможность полнотекстового поиска по тексту офисных документов, поддержка гипертекстового формата HTML.

Какие задачи автоматизации современного предприятия решает ODB-Text? Это прежде всего аналитическая обработка данных с целью получения информации, которую можно использовать для принятия решений. Кроме того:

Интеграция данных различных форматов и различных программных продуктов.
Поддерживаются данные следующих форматов: текстовые файлы в кодировке DOS, Windows, документы Microsoft Word, Microsoft Excel, Microsoft PowerPoint, в формате HTML ( кодировки DOS, Windows, KOI-8 ), Autocad, CorelDRAW и многие другие.

Простота освоения и эксплуатации системы наряду с богатыми функциональными возможностями.
Корпоративным пользователям нет нужды осваивать сложные интерфейсы, достаточно изучить броузер как универсальное средство поиска и просмотра документов.

Надежная защита корпоративной информации.
Защита в системе ODB-Text обеспечивается работой сервера базы документов в среде Windows NT.

Оперативное обновление информации, особенно когда она быстро изменяется.
Сервер ODB-Text и Интернет-дополнение ODB-Text могут работать совместно, обмениваясь информацией по заданному расписанию или по команде администратора.

Доступ к информации из любого места
Есть доступ из локальной сети, посредством удаленного подключения к серверу базы данных, наконец, из сети Интернет.

Важное свойство системы - ее можно настроить так, что изменения, которые оператор вносит в базу документов становятся сразу же доступны Интернет-пользователям. Причем в текст документа можно интегрировать документы Microsoft Word, который является стандартом de facto в делопроизводстве России.

Программный комплекс ODB-Text версии 3.0 имеет полноценные средства для работы в Интернет. Для этого следует установить Web Сервер ODB-Text на компьютере, где установлен Microsoft Internet Information Server версии 2.0 и выше, а на рабочем месте пользователя должен быть установлен броузер Netscape Navigator 4.0 или Internet Explorer 4.0. Также возможна работа и с более поздними версиями этих броузеров. Подключение к базе документов, поиск и просмотр реквизитов и текста документов при работе через броузер аналогичен работе через программу клиент. Подключение, например, выглядит как показано на Рисунке 4.

Рисунок 4. Начало работы с базой документов через Интернет.

Пользователь работает с поисковой системой через броузер точно так же как и через клиентскую оболочку. Доступ к документу можно получить через каталог-рубрикатор а также с помощью поиска - как по реквизитам документа, так и по тексту. В Интернет-версии сохраняется структура документа - ссылки, понятия, оглавление. Как выглядит текст документа в броузере можно увидеть на Рисунке 5.

Рисунок 5. Текст документа в ODB-Text.

Гетерогенная информационная система на основе ODB-Text и Jasmine

Часто возникает задача построения информационных систем, обладающих характеристиками и возможностями, пока не реализованными в рамках одной СУБД. Например, часто бывает необходима информационно – поисковая система, сочетающая возможности полнотекстового русскоязычного поиска по документам с учетом морфологии и удобную мультимедийную среду разработки клиентских приложений (CASE - средства), а также – средства стыковки с Internet/Intranet, масштабируемость, поддержка различных платформ, возможности хранения и обработки мультимедийных объектов. Реализация таких требований в рамках одной СУБД порождает либо очень дорогостоящее решение, либо вообще затруднительна.

Наиболее рациональным решением в таком случае может оказаться построение системы из нескольких серверов различных СУБД. Пример такой реализации представляет собой система, разработанная в НПЦ "Интелтек Плюс" - Рисунок 6. Она интегрирует в себе возможности двух СУБД - Jasmine - и ODB-Jupiter. От Jasmine мы взяли богатые средства проектирования интерфейса, возможность работать в гетерогенных средах. ODB-Jupiter - мощное средство создания полнотекстовых баз данных с широкими возможностями поиска.

Рисунок 6. Создание приложения ODB-Text плюс Jasmine в среде Jasmine Studio.

Примеры применения ODB-Jupiter и ODB-Text

В настоящее время информационно-поисковая система ODB-Text установлена и успешно функционирует в Инфорамцинно-аналитическом управлении Совета Федерации, в Московском арбитражном суде, в высших учебных заведениях - Российском Государственном Гуманитарном Университете, Московском Независимом Эколого-Политологическом Университете, в Московском зоопарке, в Московской консерватории. Из региональных пользователей можно выделить редакцию популярной новосибирской газеты "Молодость Сибири".

Планируется использование СУБД ODB-Jupiter для хранения знаний в экспертной юридической системе. Проект такой системы носит название "Минерва". Предполагается, что эта система позволит анализировать потенциальные противоречия в нормативных актах.

Крупные проекты, в которых используются объектные базы данных

Система заказа билетов компании Air France ( Разработчик - Sabre Decision Technologies ). Система состоит из 6 БД VERSANT, установленных на многоплатформенных рабочих станциях UNIX. Язык C++. Трудоемкость разработки 24 человеко-года. Разработано 28 классов, состоящих из более 7 миллионов объектов. Время внедрения системы - около 6 месяцев.

Распределенная информационная система для здравоохранения ( Разработчик -Health Object Corporation ). Система состоит из более 100 рабочих станций. Операционная система Windows NT.

GALERiE, MAiSTRO, TWiST - системы хранения, поиска и администрирования мультимедийных данных в гетерогенных вычислительных сетях ( Разработчик - DALiM ). Система обладает широкими возможностями поиска мультимедийной информации как в Интернет, так и в других компьютерных сетях с последующей загрузкой информации в БД, осуществляет управление процессами и ресурсами при создании графических образов и выводе их на печать. Создано 150 классов объектов. Управление мультимедийными БД объемом до 12 Тбайт.

SONET - система управления телекоммуникационной сетью стандарта 1320NM ( Разработчик - Alcatel Network Management ). Реализовано на платформе рабочей станции HP7000, ОС HP-UXV 9.0. Разработанное ПО легко совместимо с новыми телекоммуникационными технологиями и аппаратурой различных производителей. Время разработки - 1 год.

Заключение

На сайте www.inteltec.ru расположено много материалов по объектным базам данных. Если у Вас есть информация по тематике объектного проектирования, объектных СУБД или искусственного интеллекта, то мы с удовольствием опубликуем ее в нашем ИНТЕЛТЕК-ИЗДАТЕЛЬСТВЕ.

Объектные базы имеют отличные перспективы в прикладных задачах САПР, геодезии, финансах, телекоммуникациях, оборонной промышленности.