Опубликован: 23.10.2005 | Доступ: свободный | Студентов: 4087 / 201 | Оценка: 4.44 / 4.19 | Длительность: 33:04:00
Специальности: Программист
Лекция 13:

Сохранение объектов и базы данных (БД)

Ключевые концепции

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

Библиографические замечания

Первой работой о реляционной модели была статья [Codd 1970]; имеется множество книг по этой тематике. По-видимому, наиболее известный учебник по БД c упором на реляционную модель - книга [Date 1995] (это шестое издание книги, впервые опубликованной в середине семидесятых). Другой полезный текст общего назначения - [Elmasri 1989].

[Walden 1995] содержит детальное практическое обсуждение того, как выполнять работу по объектно-реляционному взаимодействию. [Khoshafian 1986] выдвигает вопрос об идентификации объектов на передний план обсуждения ОО-БД.

Хорошей отправной точкой для понимания целей ОО-БД и чтения некоторых оригинальных статей является сборник [Zdonik 1990], включающий работы некоторых пионеров этой области, а его вводная лекция явилась источником понятия "пороговой модели", использованного в этой лекции. Широко циркулирующий "Манифест ОО-систем баз данных" [Atkinson 1989], являющийся результатом сотрудничества большого числа экспертов, существенно повлиял на цели движения ОО-БД. Сейчас имеется много учебников по этой тематике, перечислим некоторые из наиболее известных (в порядке публикации): [Kim 1990], [Bertino 1993], [Khoshafian 1993], [Kemper 1994], [Loomis 1995]. Дальнейшие постоянно обновляемые ссылки можно найти в он-лайн библиографии Майкла Лея (Michael Ley) по системам БД [Ley-Web]. Группа Клауса Дитриха (Klaus Dittrich) в Цюрихском университете ведет список часто задаваемых вопросов о ОО-БД http://www.ifi.unizh.ch/groups/dbtg/ObjectDB/ ODBminiFAQ.html. В [Cattel 1993] описан стандарт ODMG. Оценки (несколько вымученные) достижений и неудач ОО-БД одного из пионеров этой области можно найти в [Stein 1995].

Эта лекция очень выиграла от важных комментариев Ричарда Биляка ( Richard Bielak), особенно об эволюции схем, Замыкании Сохраняемости, запросам к ОО-БД, Versant и Sombrero. Описание Versant базируется на [Versant 1994], а Matisse - на [ADB 1995] (см. также http://www.adb.com/techovw/features.html). Я благодарен Ш. Финкельштейну (Shel Finkelstein) за помощь в знакомстве со свойствами Matisse. Система O2 описана в [Banchilhon 1992]. Проект Sombrero [ Sombrero -Web] исследует влияние большого адресного пространства на традиционные подходы к сохраняемости и БД.

Предварительный вариант материала этой лекции, посвященного эволюции схем, появился в [M 1996c]. Обсуждение вопроса о том, как соответствуют друг другу ОО-понятия и понятия БД, пришло из неопубликованных заметок лекций, прочитанных в 1995 г. на конференциях TOOLS USA и European Software Engineering Conference [M 1996d].

Упражнения

У13.1 Динамическая эволюция схем

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

У13.2 Объектно-ориентированные запросы

Обсудите, в каком виде могут формулироваться запросы в ОО-БД.