Имеется возможность регистрации на сервере событий, которые интересуют приложения. При регистрации серверу сообщается вид события и операция, которую следует выполнять при возникновении события. К событиям, которые разрешается регистрировать, относятся обновление и удаление классов, создание, обновление и удаление объектов.
Для повышения надежности хранения баз данных поддерживаются два вида журналов – логический и физический. При необходимости восстановления базы данных по архивной копии все зафиксированные к моменту сбоя транзакции повторно воспроизводятся по логическому журналу.
Обеспечивается ссылочная целостность базы данных и прозрачность месторасположения объектов в распределенной среде. Объекты могут мигрировать по узлам сети, что способствует балансировке нагрузки, и оставаться полностью доступными для приложений. Допускается динамическая модификация классов, приводящая к автоматической модификации всех существующих в базе данных объектов этих классов. При этом система все время остается в рабочем состоянии, и приложения продолжают выполняться. Поддерживается развитый механизм версий. По известной версии объекта можно получить доступ к его предкам, потомкам и братьям.
Для представления связей между объектами базы данных используется единый стабильный указательный тип. В системе поддерживаются скрытые от пользователей преобразования указателей базы данных в обычные указатели C ++ и наоборот. Поэтому объекты создаются и ликвидируются с помощью стандартных конструкторов и деструкторов классов.
Для программирования можно использовать языки C ++ и Smalltalk , причем безо всяких расширений. Поддерживаются возможности, специфичные для работы с базами данных. Например, имеется средство автоматической генерации схемы базы данных прямо по файлам заголовков C ++. Это позволяет обойтись без использования специализированных препроцессоров или компиляторов. Специальные системные классы позволяют работать со всеми разновидностями типов коллекций, специфицированными в стандарте ODMG . Любой объект, созданный в среде C ++, доступен в среде Smalltalk и наоборот.
Запросы к базам данных Versant можно задавать с помощью специального системного класса, позволяющего обходить объекты коллекций. Поддерживается расширенный вариант SQL /89. Имеется драйвер ODBC . Обеспечивается доступ из среды Versant к внешним реляционным базам данных.
Заключение к подразделу
Приведенный краткий обзор основных особенностей наиболее популярных коммерческих ООСУБД показывает, прежде всего, очень большую техническую разнородность этих систем. В общем смысле все системы соответствуют базовой модели ODMG , но следует обратить внимание, что крайне редко в качестве языка запросов поддерживается OQL , и ни в одной системе не поддерживается ODL .
Ни одна из компаний, производящих ООСУБД, так и не смогла набрать критическую массу, достаточную для того, чтобы стать лидером, диктующим моду в данной области (как это произошло с IBM и Oracle в области SQL -ориентированных СУБД). Крупные компьютерные компании так и не решились приобрести какой-нибудь продукт ООСУБД, чтобы развивать его и продвигать на рынке. Примером является поглощение одной из наиболее известных в мире ООСУБД компании ObjectSystems не самой крупной компьютерной компанией Progress Software . Компания Progress пошла на этот шаг не потому, что ей понадобилось владеть ООСУБД ObjectStore , а только по той причине, что ранее на основе этой СУБД в компании ObjectSystems был создан продукт eXcelon , предназначенный для управления XML -данными.
Когда появился и стал широко распространяться язык Java , казалось, что поддержка этого языка станет сильным козырем ООСУБД. В 1997 г. одна из крупнейших софтверных компаний Computer Associates выпустила на рынок ООСУБД Jasmine , в которой активно поддерживался язык Java . Объявляя о выпуске этого продукта, президент компании заявил, что по его оценкам в течение пяти лет Jasmine войдет в тройку наиболее доходных продуктов Computer Associates . Пять лет прошло, появилось сообщество пользователей Jasmine , но совсем не такое большое, как рассчитывало руководство компании.
2.4 Заключение раздела
Конечно, трудно сравнивать технологию объектно-ориентированных СУБД с технологией SQL -ориентированных систем51. SQL вышел из реляционного подхода к управлению базами данных. Основной идеей являлась максимальная простота логических структур данных, обеспечивающая логическую независимость приложений от используемых ими баз данных. ООСУБД вышли из объектно-ориентированных языков программирования. Основная идея состояла в желании обеспечить хранение в базе данных произвольно сложных структур данных, какие только допускает язык программирования. Эта принципиальная разница в идейной основе подходов неизбежно привела к принципиальному различию в технологиях.
В этом разделе мы сначала рассмотрели общие модельные принципы организации ООСУБД, начав с Манифеста объектно-ориентированных баз данных и перейдя затем к стандарту ODMG . Следует заметить, что в целом стандарт ODMG оставляет противоречивые ощущения. С одной стороны, в документе содержится много интересных идей и технических спецификаций. С другой стороны, некоторые важные части стандарта кажутся недостаточно проработанными и плохо отредактированными. Местами встречаются противоречия и прямые ошибки. Но это единственный общепризнанный стандарт ООСУБД, и его полезно знать хотя бы в общих чертах. В конце раздела мы кратко описали черты нескольких известных коммерческих ООСУБД, чтобы показать, что в области ООСУБД отношение производителей к стандартам более анархично, чем в области SQL -ориентированных СУБД.
Список литературы
[24] К. Дейт. “Введение в системы баз данных”. 2-е изд., М.: Наука.1980
[25] К. Дейт. “Введение в системы баз данных”. 6-е изд., М.; СПб.: Вильямс.- 2000
[26] К. Дейт. “Введение в системы баз данных”. 7-е изд., М.; СПб.: Вильямс.- 2001