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

Объектно-ориентированные базы данных: среда разработки программ плюс хранилище объектов

Авторы:

Андреев А.М.
Березкин Д.В.
Кантонистов Ю.А.

Введение в объектные базы данных

Возникновение баз данных продиктовано потребностью накапливать значительные объемы данных вне программ, где они используются, причем, сохранять их во внешней памяти - на магнитных дисках, лентах и т.д. Простейший способ - записать данные в дисковый файл и извлечь их впоследствии по мере надобности. Это естественное решение проблемы становится неприемлемым, если мы желаем сортировать данные, обеспечить доступ к ним сразу нескольких пользователей, наладить поиск.

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

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

Любая СУБД основывается на определенной модели данных. С конца 70-х годов наибольшую популярность получила реляционная модель данных. Реляционные СУБД и поныне играют главенствующую роль на мировом рынке СУБД. Однако все большее число разработчиков пользовательских приложений, использующих СУБД, выражают неудовлетворение несоответствием реляционной модели сегодняшним требованиям, предъявляемым к срокам разработки проектов, скорости обработки запросов к базам данных. Особенно это проявляется при проектировании систем, в которых хранятся сложные неструктурированные данные. Крупнейшие разработчики СУБД фактически признали это, спешно встраивая в свои продукты поддержку объектно-ориентированного программирования. По соображениям совместимости с прежними наработками, лидеры индустрии СУБД предлагают смешанный подход - объектно-реляционный. Каждая уважающая себя фирма обратилась лицом к объектным технологиям и продуктивно сотрудничает с разработчиками объектно-ориентированных СУБД. IBM и Oracle радикально подошли к проблеме и сейчас переработали ядра своих СУБД (соответственно, DB2 и ORACLE) с целью добавить в него объектные свойства. Другой путь выбрал Informix, который приобрел серьезную объектно-реляционную СУБД Illustra и встроил ее в свои продукты. В результате получился продукт, именующийся универсальным сервером. Еще один гигант рынка- Computer Associates, поступил иначе. Он сделал ставку на объектную базу Jasmine, активно пропагандируя ее достоинства. О Computer Associates следует сказать несколько слов особо. Его пример иллюстрирует противоречивую ситуацию, сложившуюся на стыке объектных языков программирования и современных средств хранения данных. Несколько лет назад компания CA выпустила удачную реляционную СУБД Ingres с возможностью добавления сложных типов данных - предтечу нынешних универсальных серверов. Естественно, эта СУБД имеет интерфейс с объектными языками. Однако, как известно, в 1996 году Computer Associates приобрела Jasmine (разработку лаборатории фирмы Fujitsu) и теперь активно продвигает ее на рынок. Очевидно, что языки, поддерживающие сложные структуры данных, требуют адекватной модели базы данных (Рисунок 1). Несмотря на существование объектных дополнений и возможностей расширения, например, у универсального сервера Informix, ядро базы остается ориентированным на работу с реляционными данными, что отрицательно сказывается на производительности, вынуждая СУБД всякий раз производить сборку/разборку объектов при обмене с хранилищем.

 

Рисунок 1. Объектные базы и реляционные СУБД.

В чем же принципиальное отличие реляционных и объектных баз? Мэри Лумис, один из идеологов СУБД Versant, в свое время очень кратко и точно сформулировала актуальность объектного подхода к базам данных: "Модель данных более близка сущностям реального мира. Объекты можно сохранить и использовать непосредственно, не раскладывая их по таблицам. Типы данных определяются разработчиком и не ограничены набором предопределенных типов". В объектных СУБД данные объекта, а также его методы помещаются в хранилище как единое целое. Объектная СУБД именно то средство, которое обеспечивает запись объектов в базу данных "как есть". What You have coded is what You put in database- "Все, что Вы запрограммировали, Вы помещаете в базу данных" - вот девиз такой СУБД.

Особенности программирования объектной СУБД

Создание программ для объектных баз существенно отличается от написания приложений, взаимодействующих с реляционными СУБД. Объектная СУБД, как правило, поддерживает один или несколько объектно-ориентированных языков - C++, Java, Smalltalk, Object Lisp и т.п. В своих программах разработчики используют объекты и структуры, которые помещаются в базу данных. Чтобы сохранить их в базе не требуется особых усилий. Создатели объектных СУБД стараются максимально облегчить жизнь разработчика программ, поэтому сохранение объектов обеспечивается прозрачным образом. Программист использует единый язык программирования для создания логики приложения, разработки интерфейса и общения с базой данных. В сочетании с визуальными средствами разработки создание прикладных программ может быть проведено с минимальными затратами средств и времени.

Продемонстрируем отличие в написании программ на небольшом примере. Пусть надо занести в базу данных сведения о человеке: его имя, возраст и фамилию непосредственного начальника. Для определенности будем считать, что сведения хранятся в реляционной таблице ПЕРСОНАЛ, которая имеет поля ИМЯ, ВОЗРАСТ и НАЧАЛЬНИК. Чтобы добавить в реляционную базу человека по фамилии Иванов, 30 лет, у которого начальник по фамилии Сидоров, на языке SQL надо написать примерно такое выражение:

Подразумевается, что сведения о Сидорове присутствует в этой же таблице, у него тоже есть начальник, у того - тоже и так далее. Как видим, все делается довольно просто, но когда нам надо, например, извлечь информацию о всех начальниках Иванова, при выборке следующей записи инициируется процесс поиска строки по первичному ключу в первом столбце таблицы, что разумеется, отрицательно скажется на скорости выполнения запроса. Ситуация, когда для программирования используется язык высокого уровня, а запросы отправляются с него в реляционную базу, не слишком отличается от приведенной выше. Например, фрагмент программы на C++, выполняющий добавление новой записи может быть таким:

Наконец, запишем то же самое, но сохраним данные в объектной базе. Рассматриваемый ниже пример иллюстрирует подход, используемый в СУБД POET (разработчик - POET Software GmbH). Данные о человеке присутствуют в объекте класса TPerson, объявленного следующим образом:

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

Особенно обращаем внимание на последний параметр. В объектной СУБД ссылка на непосредственного начальника хранится в виде указателя, для перехода к объекту "Сидоров" не выполняется никакого поиска.

Помимо стабильности, объектная СУБД предоставляет широкий набор средств управления базой. Можно назвать: управление транзакциями, когда программист на уровне исходного текста задает начало и конец процесса транзакции. Возможна блокировка базы или набора объектов, которые в ней сохранены. На клиентском месте можно узнать, как протекает инициированный клиентом запрос. Получив такую информацию, пользователь либо будет ждать завершения процесса, либо прервет его. В качестве языка запросов используются различные реализации OQL - Object Query Language, объектного языка запросов. Это, как правило, расширение SQL (Structured Query Language, стандарт запросов в мире СУБД), дополненное объектными свойствами, средствами описания типов данных, итерации по объектам в СУБД.

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

Рисунок 2. Объединение возможностей СУБД и объектного программирования.

В верхней части рисунка собраны "краеугольные камни" концепции объектного программирования.

Наследование, инкапсуляция данных и полиморфизм в особых комментариях не нуждаются, подробнейшую информацию по ним можно найти в любом современном руководстве по программированию (рекомендуем фундаментальный труд Гради Буча "Объектно-ориентированное программирование", издательство "Мир", 1992 год).

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

Вкратце поясним терминологию, используемую для описания функциональности объектной базы данных.

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

Параллелизм - механизм, который гарантирует успешное разрешение конфликтов, возникающих при одновременном доступе к одним и тем же данным.

Стабильность - как уже упоминалось ранее, это свойство СУБД сохранять данные программы между сеансами работы. Применительно к объектным СУБД означает сохранение данных объектов, объявленных как стабильные.

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

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

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

Запросы - для любой серьезной базы данных обязателен механизм выполнения незапланированных запросов. Причем требуется такой язык запросов, который бы не требовал знания информации о том, как найти объекты в базе данных.

Версионность - поддержка на уровне СУБД многих версий одного объекта. Например, данные объекта могут многократно изменяться, а в базе храниться все версии объекта.

Архивирование - поскольку в базах могут накапливаться огромные объемы информации (терабайты, а вскоре и пентабайты данных), надо максимально задействовать средства программного сжатия данных.

Как отмечает в своей книге Лон Дин, специалист по объектным базам данных: "Пожалуй, наиболее значительной особенностью объектных баз данных можно назвать объединение объектно-ориентированного программирования с технологией баз данных для создания интегрированной среды разработки приложений". В этой связи стоит упомянуть продукт Computer Associates объектную СУБД Jasmine. В ней присутствует весьма симпатичная среда разработки JADE (Jasmine Applications Developer Environment - среда разработки прикладных программ для Jasmine). По идеологии создания приложений JADE очень напоминает Delphi. В состав инструментов входит конструктор форм. Как обычно, форму можно собирать из различных элементов - как визуальных (кнопок, редакторов, картинок, кнопок выбора и т.п.), так и программных (объекты, запросы, сообщения). Присутствует в JADE и браузеры объектов базы данных, классов, а также удобный "помощник" для написания непосредственно кода методов.

Объектная база данных обеспечивает доступ к различным источникам данных. В том числе, конечно, и к данным реляционных СУБД, а также разнообразные средства манипуляции с объектами базы данных см. Рисунок 3. Как правило, это и интерфейсы СУБД с объектными языками программирования C++, Java, Smalltalk, и набор ActiveX-элементов (модулей, воспринимающих высокоуровневые команды от приложений VisualBasic, Delphi и т. д.), которые разработчик может использовать в своей программе для работы с СУБД. Через драйвер ODBC (Open Database Connectivity - драйвер доступа к базам данных) к данным объектной базы получают доступ программы, использующие структурированный язык запросов SQL. Если такая СУБД имеет ORB-модуль (ORB - Object Request Broker - брокер объектных запросов - средство взаимодействия объектных приложений по протоколу CORBA - Common Object Request Brokers Architecture - общая архитектура брокеров объектных запросов), то для ее объектов открывается путь в сети, в том числе и в Интернет.

Рисунок 3. Интерфейс объектной базы данных.

Хорошо известно, что в современном мире без стандартов затруднено развитие технологий и привлечение разработчиков приложений. Не исключение и технологии объектных СУБД. Поэтому ведущие разработчики объектных СУБД в 1992 году образовали группу Object Database Management Group (ODMG) по согласованию и выработке стандартов. Специфика ODMG в том, что им вырабатываются не совершенно новые стандарты, а расширения существующих стандартов OMG (Object Management Group - группа выработки стандартов объектного программирования), ANSI, а также порядок их использования с целью совместимости конечных прикладных программ с интерфейсом любой объектной СУБД. К настоящему времени выработаны стандарты объектной модели данных, языка описания объектов (ODL - Object Definition Language), языка запросов (OQL - Object Query Language), дополнения языков программирования C++, Smalltalk, Java.

Объектная модель, установленная ODMG, базируется на модели группы OMG, созданной несколькими годами ранее. В дополнение к известным объектным концепциям, в новом стандарте предложены расширения для обмена с базой данных, например, вводятся понятия отношений между объектами, транзакций. ODL является расширением языка определения интерфейсов объектов - Interface Definition Language (IDL), он разработан опять же группой OMG. Напомним, что IDL принят в качестве стандарта описания объектных интерфейсов в архитектуре распределенного объектного программирования CORBA. ODL предназначен только для описания интерфейса объекта с внешним миром, реализацию он никак не затрагивает и не ограничивает. Объектный язык запросов - это язык, включающий объектное расширение языка SQL-92 таким образом, что большинство запросов, адресованных реляционной СУБД, будут точно так же выполняться и в объектных базах данных. Наконец, несколько слов о стандарте ODMG дополнения языков программирования. Дополнения представляют собой поддержку операций над стабильными объектами, возможность встраивать в программы на C++, Smalltalk, Java выражения на языке OQL, средства управления транзакциями и навигации по объектам базы данных.

Использование объектных СУБД

Какие же объектные СУБД присутствуют на рынке? Несмотря на достаточно "юный" возраст, объектные СУБД вышли на уровень коммерческих продуктов. Эти продукты демонстрируют впечатляющие характеристики производительности, надежности и вместительности. Но следует отметить недостаток информации и отставание в плане маркетинга. Сейчас, с выходом Jasmine, положение должно измениться в лучшую сторону. К сожалению, на российском рынке продукция разработчиков объектных баз представлена весьма бедно. В таблице 1 приведена информация об объектных базах, включающая сведения о языках разработки, способах создания стабильных объектов, поддерживаемых платформах. В таблице представлены продукты компаний-членов группы ODMG. Дополнительно включены: СУБД ONTOS - один из лидеров направления объектных баз, Jasmine - поскольку это первый продукт, выпущенный "китом" компьютерного бизнеса, и ODB-Jupiter - первый российский продукт такого рода. В таблицу включены адреса компаний в Интернете, где можно найти более подробную информацию. Подчеркнем, что мы намеренно не включали в обозрение объектно-реляционные базы данных, такие как Informix Universal Server (компания Informix), Universal Database DB2 (компания IBM), ORACLE 8.0 (компания ORACLE). Безусловно, это мощные системы с большим потенциалом, но объектность не заложена в самой их "природе" - это надстройка над реляционным ядром. Думается, что в последующих версиях поддержка объектов будет встроена в ядро этих СУБД, тогда их с полным правом можно будет называть объектно-ориентированными базами данных.

Таблица 1. Объектные СУБД

Компания- разработчик

Название СУБД,
номер последней версии

Работа со стабильными объектами

Поддержи- ваемые языки

Платформы

Примечание

Objectivity/DB

www.objy.com

Objectivity 5.0

Набор предопределенных классов, от которых наследуется пользовательский класс.

Доступ к объекту через идентификатор, причем, для записи модификации объекта необходимо явно уведомить СУБД.

C++, Java, Smalltalk

DEC, Sun4/SPARC, VAX, HP 9000, IBM RISC System/6000, Silicon Graphics, NCR System.

Компания добилась успехов на поприще автоматизации предприятий и использования ее СУБД в сфере науки. Например, Objectivity/DB используют такой крупный научный центр как CERN для накопления гигантских объемов информации о результатах экспериментов на ускорителе элементарных частиц.

ONTOS, Inc

www.ontos.com

ONTOS DB 2.5

Создание стабильного объекта производится наследованием от базового объекта Object.

Чтение из базы обеспечивается набором функций, запись измененного объекта производится явно.

C++, VisualBasic, Java

IBM RISC System/6000, IBM PC, HP 9000, SCO 386, Sun4/SPARC.

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

Versant Object Technology

www.versant.com

Versant, Release 5

Создание стабильного объекта производится наследованием от базового объекта PObject.

Доступ к объекту через указатель, запись обновленных объектов в базу данных указывается в программе.

C++, Java, Smalltalk

Sun4/SPARC, IBM RISC System/6000, HP 9000, DEC, Sequent, IBM PC, Silicon Graphics, NeXT.

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

ObjectDesign, Inc

www.odi.com

ObjectStore, 5.0

Создание стабильного объекта производится после вызова специального оператора new.

Доступ к объектам через специальные точки входа в БД. Запись изменений в базу производится автоматически.

C++, Java

Sun, HP, DEC, NCR, Univel, Olivetti, IBM RISC System/6000, Silicon Graphics, IBM PC.

Предлагает несколько вариантов СУБД Object Store - от демонстрационного до полноценного комплекса программ, дающего разработчику и пользователю разнообразные средства конфигурации, управления и создания прикладных программ. Наряду со средой разработки программ, поддерживает любой компилятор C++, удовлетворяющий стандарту ANSI.

Gemstone, Inc

www.gemstone.com

Gemstone, 5.0

Создание стабильного объекта производится наследованием от базового класса GS_Object и в дальнейшем все ссылки на объект производятся через указатель.

 

Smalltalk, Java

Sun4/SPARC, IBM RISC System/6000, HP 9000, DEC, Sequent.

Одна из первых коммерческих СУБД. Пожалуй, именно в базе данных Gemstone, идея объектной СУБД наиболее полно реализована. В самой базе данных хранятся не только атрибуты объекта, но и методы. Это означает, что для выполнения программы нет необходимости передавать все объекты на клиентское место. Программа-клиент может послать серверу код сообщения, который вызовет загрузку объекта в пространство адресов сервера и выполнение задания там же. Язык СУБД - расширение Smalltalk.

POET Software GmbH

www.poet.com

POET, 5.0

Создание стабильного объекта производится добавлением в его описание ключевого слова persistent.

Доступ к объектам через указатель.

 

C++, Java, VisualBasic

Windows NT 3.51, Os/2 Warp, Novell Netware, Macintosh 68K, PowerPC, Sun Solaris, HP-UX, IBM AIX, SCO, SGI IRIX 5.3

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

O2 Technology

www.o2tech.com

O2, 5.0

Объект сразу создается стабильным. Доступ к объектам производится через указатель.

C++, Java, Smalltalk

Нет данных

Пример успешного европейского, а точнее, французского проекта. Предлагает широкий набор инструментов для создания приложений и администрирования баз данных. В первую очередь, СУБД O2 предназначена для тех разработчиков, которые сделали выбор в пользу C++ и Java. Среди особенностей СУБД O2 можно отметить оптимизатор запросов к базе, систему управления версиями объектов, подключение реляционных банков данных, открытость внешнему миру посредством поддержки стандартов ODBC, CORBA, стыковке с Интернет.

Ibex Computing, Inc

www.iprolink.com\

ibexcom

Itasca, 5.0

Любой объект программы считается стабильным.

Lisp, CLOS, C++, C

HP-UX, Sun Solaris,, Windows NT 4.0, Digital UNIX, SGI, AIX, клиентская часть в Windows 95, Windows NT

Объектная СУБД ITASCA является наследницей проекта ORION, который существовал с 1985 по 1989 год. В качестве демонстрационной версии предлагается полноценная СУБД с ограниченным временем использования. Языки программирования базы - это ObjectLisp, CLOS, C++. Основная область деятельности IBEX Object Systems - системная интеграция на базе объектной базы ITASCA. Компания предлагает клиент/серверные решения, построенные по трехуровневой схеме. Таким образом, легко создаются прикладные программы, которые интегрируют в себя существующие приложения и накопленные данные. Также IBEX поставляет удобные и достаточно мощные средства управления конфигурацией баз даных.

UniSQL, Inc

www.unisql.com

UniSQL, 3.2

Нет данных

ANSI C, Smalltalk, Microsoft Visual C

Windows 95, Windows NT

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

Computer Associates , Inc

www.cai.com

Jasmine, 1.1

Любой объект, созданный в среде разработки JADE (Jsamine Application Developer Environment) считается стабильным.

C++, C, Java, VisualBasic

Sun Solaris, HP-UX, DEC, IBM RISC System/6000,
Windows NT 4.0

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

НПЦ "Интелтек Плюс"

www.inteltec.ru

ODB-Jupiter, 2.1

Создание стабильного объекта производится наследованием от базового объекта TOdbObject и реализацией методов для обмена с базой данных.

C++

Windows, Windows 95, Windows NT 4.0

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

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

Быстродействие СУБД становится особенно критическим параметром, если требуется постоянное слежение за состоянием рынка. Как пример успешного решения подобных проблем можно привести систему Predator ("Хищник") на основе базы ObjectStore, функционирующей в крупной финансовой компании "МакГрегор Груп". Она в режиме реального времени снабжает оператора информацией о состоянии рынка инвестиций одновременно для большого числа клиентов системы (около 3000). Объектные СУБД используют такие известные компании как Bankers Trust, LehmanBrothers. Та же СУБД ObjectStore накапливает данные торговой сессии на Нью-Йоркской фондовой бирже. Система, которая используется на бирже, обслуживает одновременно до 1000 запросов, адресованных к базе данных, причем, клиенты сети не ощущают временных задержек. В финансовой группе Fannie Mae используется СУБД POET компании POET Software GmbH, американский Citibank внедрил СУБД Objectivity/DB компании Objectivity Inc в программу CAOS, обрабатывающую платежи за пределы США, эта же СУБД используется в компании Lexis-Nexis для ведения базы документов с возможностью полнотекстового поиска.

Тема "Объектные СУБД и Интернет" - особая. Лучше всего начать с примеров. DeutscheTelekom применяет объектную базу ObjectStore для организации информационного хранилища в своей интрасети, СУБД GemStone компании Gemstone Inc. используется в форумах AmericanOnline, СУБД POET фирмы POET Software GMBH - на форумах CompuServe. Объектные базы находят широкое применение в телекоммуникациях и сети Интернет. Ведь Интернет - это собрание разнородных данных, поступающих из разных источников, с разнородными форматами. Текст, картинки, видео и звук из которых составляется страничка в Интернете, хранятся в объектной СУБД как набор объектов, подготовленный к передаче пользователю, чем достигается быстрая реакция сервера на запрос. Поэтому не удивителен выбор вышеперечисленными службами именно объектных СУБД. Естественное хранение мультимедиа - одна из сильнейших сторон объектных баз. Все большую популярность получают активные Web-серверы. Содержимое страничек они генерируют на лету, широко используя язык Java. Практически все крупнейшие разработчики объектных СУБД сделали Java одним из основных языков программирования своих СУБД.

В таблице 2 собраны сведения об областях применения основных коммерческих объектных СУБД. Следует иметь ввиду, что таблица составлена в основном на основании материалов, помещенных фирмами-разработчиками на свои сервера в Интернете.

В таблице присутствует также отечественная объектная СУБД, разработанная силами сотрудников НПЦ "Интелтек Плюс", которая получила название "ODB-Jupiter". ODB - это аббревиатура Object DataBase, то есть объектная база данных, а Jupiter символизирует потенциал, который заложен в ней для разработки прикладных программ. Текущая версия СУБД функционирует в локальной сети Windows 3.x, Windows 95, Windows NT. Удаленный доступ реализуется средствами Windows 95. Система построена по архитектуре КЛИЕНТ/СЕРВЕР, причем количество серверов в локальной сети может быть произвольным. Важная особенность - встроенные средства поддержки полнотекстовой индексации текстов, средства обработки поисковых естественноязыковых запросов интегрированы в ядро СУБД. На сегодняшний день накоплен достаточно большой опыт реального использования объектной СУБД, в частности, она применялась при создании полнотекстовой информационно-поисковой системы ODB-Text версии 2.0, которая распространяется на российском рынке. Впрочем, тема использования объектных баз данных интересна сама по себе, ей мы посвятим отдельную статью.

Таблица 2. Области применения объектных баз данных
Состояние на 01.12.1997 года.

Области применения

Versant

ITASCA

Gemstone

O2

ObjectStore

POET

Objectivity

Jasmine

ONTOS

ODB-Jupiter

Моделирование

+

+

+

+

+

+

+

-

-

-

САПР

+

+

+

+

+

+

+

-

+

-

Управление производством

-

-

+

+

+

+

+

-

+

+

Геоинформационные системы

+

+

+

+

+

-

-

-

-

-

Обработка изображений

+

-

+

-

+

-

-

+

-

-

CASE

+

-

+

-

+

+

-

-

-

-

Планирование

+

-

-

-

-

-

-

-

-

-

Издательство

-

-

-

-

+

-

-

-

-

+

Гипертекстовые системы

+

+

-

+

+

+

+

+

-

+

Мультимедиа

+

+

+

+

+

+

+

+

-

+

Имитационное моделирование

+

-

+

+

+

-

Н/И

-

-

-

Финансы

-

-

-

+

+

+

+

+

-

-

Автоматизация офисной деятельности

+

-

+

+

+

+

Н/И

-

-

+

Диалоговые системы

+

-

-

-

-

Н/И

Н/И

-

-

-

Экспертные системы

+

-

-

-

+

Н/И

Н/И

-

-

-

Телекоммуникации и Интернет

+

+

+

+

+

+

+

+

+

-

+ - прикладные программы разработаны

- - прикладных программы нет

Н/И - нет информации

Заключение

Завершая обзор, хотелось бы подчеркнуть, что статья не ставит целью объявить победителя в соревновании технологий систем управления базами данных. Реляционные, объектно-реляционные и объектные СУБД сосуществуют сейчас и будут еще долго уживаться в будущем. Что касается выбора СУБД, то представляется, что пользователи DB2, Oracle или Ingress, скорее всего, предпочтут новые продукты тех же разработчиков, ибо им важно использование программных наработок, накопленных данных. В конце концов - это отработанная, отлаженная технология, которая отлично себя зарекомендовала на протяжении двух десятилетий и хорошо подходит для финансовых, статистических, различных коммерческих приложений. Однако со стороны объектных СУБД нарастает давление и в этих сферах, причем весомый аргумент здесь поддержка данных реляционных баз и языка запросов SQL, а также существующих программных наработок, наряду с предоставлением пользователям преимуществ объектных технологий. Что касается направлений деятельности, связанных с Интернетом, автоматизированным проектированием, мультимедиа, геоинформационными системами, управлением производственными процессами, телекоммуникациями и предприятий, которые только выбирают СУБД, мы советуем обратить внимание именно на объектные базы данных. Как показывает опыт, удачный выбор СУБД и средств разработки прикладных программ, способствует успеху бизнеса компании в целом.

ИНТЕЛТЕК ИЗДАТЕЛЬСТВО Обьектные технологии


© НПЦ "ИНТЕЛТЕК ПЛЮС", 1997-2006, E-mail: publish@inteltec.ru