- •Объектно-ориентированные базы данных Содержание
- •Современные направления в развитии технологии бд
- •Реляционные системы
- •Стандартизация языка sql
- •Использование мультипроцессорных организаций
- •Интеграция и интероперабельность
- •Постреляционные системы
- •Базы сложных объектов, реляционная модель с отказом от первой нормальной формы
- •Активные базы данных
- •Дедуктивные базы данных
- •Темпоральные базы данных
- •Интегрированные или федеративные системы и мультибазы данных
- •Субд следующего поколения
- •Объектно-ориентированные базы данных
- •Распределенные субд
- •Синхронизация доступа к данным
- •Управление транзакциями
- •Поддержание копий данных в нескольких узлах сети
- •Фрагментация объектов бд
- •Алгоритмы выполнения реляционных операций
- •Системы бд с многоуровневой защитой
- •Объектно-ориентированные субд
- •Общие понятия объектно-ориентированного подхода и их преломление в ообд
- •Объектно-ориентированные модели данных
- •Языки программирования систем ообд и языки запросов
- •Языки запросов к ообд и методы оптимизации
- •Взгляд на реляционную алгебру
- •Основные определения и формулировка алгебры классов
- •Оптимизация запросов к ообд
- •Особенности управления транзакциями в системах ообд
Объектно-ориентированные базы данных
Направление объектно-ориентированных баз данных (ООБД) возникло сравнительно давно. Публикации появлялись уже в середине 1980-х гг. Однако наиболее активно это направление развивается в последние годы. С каждым годом увеличивается число публикаций и реализованных коммерческих и экспериментальных систем.
Возникновение направления ООБД определяется прежде всего потребностями практики: необходимостью разработки сложных информационных прикладных систем, для которых технология предшествующих систем БД не была вполне удовлетворительной.
Конечно, ООБД возникли не на пустом месте. Соответствующий базис обеспечивают как предыдущие работы в области БД, так и давно развивающиеся направления языков программирования с абстрактными типами данных и объектно-ориентированных языков программирования.
Что касается связи с предыдущими работами в области БД, то наиболее сильное влияние на работы в области ООБД оказывают проработки реляционных СУБД и следующее хронологически за ними семейство БД, в которых поддерживается управление сложными объектами. Кроме того, исключительное влияние на идеи и концепции ООБД и, как кажется, всего объектно-ориентированного подхода оказал подход к семантическому моделированию данных (общее число публикаций по семантическому моделированию поистине безгранично). Достаточное влияние оказывают также развивающиеся параллельно с ООБД направления дедуктивных и активных БД.
Среди языков и систем программирования наибольшее первичное влияние на ООБД оказал Smalltalk. Этот язык сам по себе не является полностью пионерским, хотя в нем была введена новая терминология, являющаяся теперь наиболее распространенной в объектно-ориентированном программировании. На самом деле, Smalltalk основан на ряде ранее выдвинутых концепций.
Большое число работ не означает, что все проблемы ООБД полностью решены. Как отмечается в Манифесте группы ведущих ученых, занимающихся ООБД, современная ситуация с ООБД напоминает ситуацию с реляционными системами середины 1970-х гг. При наличии большого количества экспериментальных проектов (и даже коммерческих систем) отсутствует общепринятая объектно-ориентированная модель данных, и не потому, что нет ни одной разработанной полной модели, а по причине отсутствия общего согласия о принятии какой-либо модели. На самом деле, имеются и более конкретные проблемы, связанные с разработкой декларативных языков запросов, выполнением и оптимизацией запросов, формулированием и поддержанием ограничений целостности, синхронизацией доступа и управлением транзакциями и т.д.
Мы уже говорили, что основная практическая надобность в ООБД связана с потребностью в некоторой интегрированной среде построения сложных информационных систем. В этой среде должны отсутствовать противоречия между структурной и поведенческой частями проекта и должно поддерживаться эффективное управление сложными структурами данных во внешней памяти. С этой точки зрения языковая среда ООБД - это объектно-ориентированная система программирования, естественно включающая средства работы с долговременными объектами. "Естественность" включения средств работы с БД в язык программирования означает, что работа с долговременными (хранимыми во внешней БД) объектами должна происходить на основе тех же синтаксических конструкций (и с той же семантикой), что и работа со временными, существующими только во время работы программы объектами.
Эта сторона ООБД наиболее близка родственному направлению языков программирования БД. Языки программирования ООБД и БД во многих своих чертах различаются только терминологически; существенным отличием является лишь поддержание в языках первого класса подхода к наследованию классов. Кроме того, языки второго класса, как правило, более развиты как в отношении системы типов, так и в отношении управляющих конструкций.
Что же касается связи ООСУБД с реляционными системами, то, как обычно, реляционные СУБД являются основным инструментом при проведении исследовательских работ и прототипировании объектно-ориентированных СУБД.