- •Оглавление
- •История развития баз данных
- •Тенденции в мире систем управления базами данных
- •1. Реляционные системы
- •1.1 Стандартизация языка sql
- •1.2 Использование мультипроцессорных организаций
- •1.3 Интеграция и интероперабельность
- •2. Постреляционные системы
- •2.1 Базы сложных объектов, реляционная модель с отказом от первой нормальной формы
- •2.2 Активные базы данных
- •2.3 Дедуктивные базы данных
- •2.4 Темпоральные базы данных
- •2.5 Интегрированные или федеративные системы и мультибазы данных
- •2.6 Субд следующего поколения
- •2.7 Объектно-ориентированные базы данных
- •3. Распределенные субд
- •3.1 Синхронизация доступа к данным
- •3.2 Управление транзакциями
- •3.3 Поддержание копий данных в нескольких узлах сети
- •3.4 Фрагментация объектов бд
- •3.5 Алгоритмы выполнения реляционных операций
- •4. Системы бд с многоуровневой защитой
- •Состав и функции систем управления базами данных
- •Информационная модель данных, ее состав (концептуальная, логическая и физическая модели)
- •Три типа логических моделей баз данных: иерархическая, сетевая, реляционная
- •Типы взаимосвязей в модели: «один к одному», «один ко многим», «многие ко многим»
- •Обеспечение непротиворечивости и целостности данных в базе
- •Реляционная модель данных
- •1. Основные понятия реляционной модели данных
- •2. Основы реляционной алгебры
- •Нормализация баз данных
- •Этапы проектирования баз данных
- •Классификация моделей данных
- •Инфологическое моделирование предметной области.
- •Модель "сущность-связь"
- •Концептуальные и физические er-модели
- •Принципы поддержки целостности в реляционной модели данных. Целостность базы данных.
- •1. Ограничения первичного ключа
- •2. Ограничение уникальности
- •3. Ограничение внешнего ключа
- •4. Ограничение значения по умолчанию
- •Индексирование
- •Защита информации в базах данных
- •Сравнительный анализ субд
- •Критерии выбора субд при создании информационных систем
- •Администрирование базы данных
2.7 Объектно-ориентированные базы данных
Направление объектно-ориентированных баз данных (ООБД) возникло сравнительно давно. Публикации появлялись уже в середине 1980-х гг. Однако наиболее активно это направление развивается в последние годы. С каждым годом увеличивается число публикаций и реализованных коммерческих и экспериментальных систем.
Возникновение направления ООБД определяется прежде всего потребностями практики: необходимостью разработки сложных информационных прикладных систем, для которых технология предшествующих систем БД не была вполне удовлетворительной.
Конечно, ООБД возникли не на пустом месте. Соответствующий базис обеспечивают как предыдущие работы в области БД, так и давно развивающиеся направления языков программирования с абстрактными типами данных и объектно-ориентированных языков программирования.
Что касается связи с предыдущими работами в области БД, то наиболее сильное влияние на работы в области ООБД оказывают проработки реляционных СУБД и следующее хронологически за ними семейство БД, в которых поддерживается управление сложными объектами. Кроме того, исключительное влияние на идеи и концепции ООБД и, как кажется, всего объектно-ориентированного подхода оказал подход к семантическому моделированию данных (общее число публикаций по семантическому моделированию поистине безгранично). Достаточное влияние оказывают также развивающиеся параллельно с ООБД направления дедуктивных и активных БД.
Среди языков и систем программирования наибольшее первичное влияние на ООБД оказал Smalltalk. Этот язык сам по себе не является полностью пионерским, хотя в нем была введена новая терминология, являющаяся теперь наиболее распространенной в объектно-ориентированном программировании. На самом деле, Smalltalk основан на ряде ранее выдвинутых концепций.
Большое число работ не означает, что все проблемы ООБД полностью решены. Как отмечается в Манифесте группы ведущих ученых, занимающихся ООБД, современная ситуация с ООБД напоминает ситуацию с реляционными системами середины 1970-х гг. При наличии большого количества экспериментальных проектов (и даже коммерческих систем) отсутствует общепринятая объектно-ориентированная модель данных, и не потому, что нет ни одной разработанной полной модели, а по причине отсутствия общего согласия о принятии какой-либо модели. На самом деле, имеются и более конкретные проблемы, связанные с разработкой декларативных языков запросов, выполнением и оптимизацией запросов, формулированием и поддержанием ограничений целостности, синхронизацией доступа и управлением транзакциями и т.д.
Мы уже говорили, что основная практическая надобность в ООБД связана с потребностью в некоторой интегрированной среде построения сложных информационных систем. В этой среде должны отсутствовать противоречия между структурной и поведенческой частями проекта и должно поддерживаться эффективное управление сложными структурами данных во внешней памяти. С этой точки зрения языковая среда ООБД - это объектно-ориентированная система программирования, естественно включающая средства работы с долговременными объектами. "Естественность" включения средств работы с БД в язык программирования означает, что работа с долговременными (хранимыми во внешней БД) объектами должна происходить на основе тех же синтаксических конструкций (и с той же семантикой), что и работа со временными, существующими только во время работы программы объектами.
Эта сторона ООБД наиболее близка родственному направлению языков программирования БД. Языки программирования ООБД и БД во многих своих чертах различаются только терминологически; существенным отличием является лишь поддержание в языках первого класса подхода к наследованию классов. Кроме того, языки второго класса, как правило, более развиты как в отношении системы типов, так и в отношении управляющих конструкций.
Что же касается связи ООСУБД с реляционными системами, то, как обычно, реляционные СУБД являются основным инструментом при проведении исследовательских работ и прототипировании объектно-ориентированных СУБД.