Корпоративные базы данных - статьи

       

Объектно-ориентированные базы данных



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

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

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

Что касается связи с предыдущими работами в области БД, то наиболее сильное влияние на


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

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

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

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

Эта сторона ООБД наиболее близка родственному направлению языков программирования БД.
Языки программирования ООБД и БД во многих своих чертах различаются только
терминологически; существенным отличием является лишь поддержание в языках первого класса
подхода к наследованию классов. Кроме того, языки второго класса, как правило, более развиты
как в отношении системы типов, так и в отношении управляющих конструкций.

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

Содержание раздела