РЕЦЕНЗИИ
Описание стандарта Object Data Mangment Group Си++ от его главного редактора Давида Джордана
Дэвид Джордан. Обработка объектных баз данных в С++. Издательский дом “Вильямс”, 2001. - 384 с.
Пожалуй, каждый сталкивался с реляционной парадигмой построения баз данных. Об этой технологии написано множество фундаментальных книг. Все было бы замечательно, если бы не ряд существенных недостатков реляционного подхода. Прошло уже более десяти лет, как программисты начали думать “объектно”, оперируя не наборами процедур (алгоритмический подход), а сущностями, созданными на основе моделирования какой-то предметной области. Это был прорыв в методологии программирования. Что же касается реляционных баз данных, то воз и ныне там. Разработчики, создавшие объектную модель системы, вынуждены приспосабливать ее к набору таблиц, связям между ними и четко фиксированным доменам (типам данных, поддерживаемых СУБД). В связи с этим хочется обратить внимание разработчиков ПО на недавно появившуюся книгу об использовании объектных баз данных с помощью языка Си++ на основе международного стандарта ODMG 2.0 (Object Database Management Group - группа управления объектными базами данных).
Дэвид Джордан - особенный автор, он один из рецензентов стандарта ODMG. С 1993 г. является главным редактором ODMG Си++. Наверное, более квалифицированного специалиста по данной проблематике нет. Как нет лучшего знатока самого языка Си++, чем его автор Бьерн Страуструп.
Книга состоит из пяти частей. Первая повествует об основных классах стандарта ODMG Си++ и методах их использования на примере объектной базы данных, полное описание которой приведено в приложении А. Вторая часть полностью посвящена объектному языку запросов OQL (Object Query Language), обеспечивающему поддержку декларативных запросов к объектам в объектной базе данных. В третьей описываются традиционные архитектурные решения, применяемые производителями при разработке объектных баз данных. Четвертая часть является по сути заключительной, в ней автор сравнивает технологии объектных и реляционных подходов, рассуждая об их слабых и сильных сторонах в свете недавно вышедшего объектного расширения языка SQL - SQL3. В конце же книги приведено полное описание стандарта ODMG 2.0.
Несмотря на небольшой объем издания, автору удалось весьма подробно, и к тому же очень живым языком рассказать об интерфейсе ODMG Си++, причем для каждого метода класса ODMG показано возможное действие СУБД. Этот подход позволяет читателю ясно представить всю методологию объектно-ориентированных баз данных. Система управления объектными базами данных понимает язык Си++, поэтому проектирование БД сводится к простому описанию объектной модели на этом языке. После этого достаточно запуска специальной утилиты - средства захвата схемы, чтобы СУБД создала словарь базы данных на основе использования специальных метаклассов ODMG. С этого момента можно спокойно использовать объекты в приложении, не заботясь об их непосредственном сохранении, - абсолютно прозрачно для программиста СУБД будет подкачивать и сохранять их. И при этом нет, как в реляционном подходе, никаких, по большому счету, искусственных нормальных форм, исследования потоков транзакций на предмет создания индексов и целого комплекса утилит для конвертации данных из языка программирования в поддерживаемые типы СУБД. Внимание разработчика в первую очередь направлено на моделирование предметной области, для которой создается хранилище. При этом невольно вспоминается высказывание Гради Буча, активного участника консорциума OBMG (Object Management Group) по выработке унифицированного языка моделирования UML (Unified Modeling Language), размышлявшего в свое время о возможности легкого и непринужденного сохранения объектов между процессами программы. Конечно, представленные сегодня на рынке коммерческие реляционные базы данных очень надежны и испытаны в тысячах реальных проектов, но, к сожалению, они - продукты сами для себя и добавляют программисту много лишних забот, вынуждая писать груду совершенно ненужного конвертационного кода, который к тому же необходимо отлаживать.
Впрочем, все это и многое другое можно прочитать самому. Книга адресована прежде всего специалистам, разрабатывающим программные продукты на основе использования баз данных, и при этом хорошо знакомым с объектным проектированием и языком Си++ и желающим больше узнать об объектных базах данных. Знание основ баз данных совсем необязательно, хотя для понимания разницы между объектными и реляционными подходами - желательно. Книга может также служить справочником, так как в ней приведено исчерпывающее описание классов стандарта ODMG 2.0. Единственное, чего в ней не хватает, так это более развернутых программных примеров, но, наверное, их можно поискать в Интернете - глядишь, и единомышленники там повстречаются.