Обработка объектных баз данных в C++. Программирование по стандарту ODMG

Дэвид Джордан

C++ Object Databases. Programming with the ODMG Standard First Edition
David Jordan
книга Обработка объектных баз данных в C++. Программирование по стандарту ODMG

Тираж данной книги закончился.
Введение
Рецензии на книгу

О новой книге Бьярне Страуструпа "ПРОГРАММИРОВАНИЕ на C++" в блоге Виктора Штонда

Данная книга является введением в технологию объектных баз данных и предназначена для разработчиков программных продуктов, которые знакомы с объектным проектированием и языком C++ и хотят узнать об объектных базах данных. В книге описаны возможности объектного моделирования, заложенные в среде поддержки объектных баз данных, использующих интерфейсы ODMG C++ и OQL (язык объектных запросов). Здесь рассмотрены различные архитектуры, применяемые объектными базами данных, а также уделено внимание сравнению реляционных и объектно-реляционных баз данных с объектными. Для тех, кто уже использует какую-либо из реализаций стандарта ODMG, книга может послужить справочником по интерфейсу ODMG 2.0 C++.

384 стр., с ил.; ISBN 5-8459-0149-9, 0-201-63488-0; формат 70x100/16; 2001, 1 кв.; Вильямс.



Понравилась книга? Порекомендуйте её друзьям и коллегам:







Книги, рекомендуемые вместе с этой книгой:

Разделы каталога:



Предисловие

Я имел огромное удовольствие работать с Дэйвом Джорданом (Dave Jordan) в течение нескольких последних лет. Без его вклада в разработку стандарта ODMG многие аспекты, в том числе и реализация ODMG на языке C++, были бы намного слабее. В настоящей книге Дэйв еще раз продемонстрировал высокое мастерство и способность точно излагать свои мысли, не допуская двусмысленного толкования, что очень важно для технической литературы.

Из этой книги вы узнаете, как писать приложения для работы с объектными базами данных в C++. Здесь вы получите довольно глубокое представление о системах объектных баз данных и поймете, в чем различия между реляционной и объектной технологиями построения баз данных. Кроме того, вы найдете четкое описание языка запросов OQL и объектной модели ODMG, а также познакомитесь с эксплуатационными характеристиками и возможностями различных продуктов объектных баз данных. Эта книга будет полезна всем, кто использует или собирается использовать объектные базы данных, и особенно она пригодится тем, кто работает с несколькими продуктами ведения баз данных.

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

Рик Кэтл (Rick Cattell)

Вводная часть

Кажется, мне было предопределено свыше с самого начала моей карьеры заняться технологией объектных баз данных. Мои академические наставники неумышленно привели меня к ней. Майк Уоррен (Mike Warren), профессор психологии, еще в студенческие годы заинтересовал меня семантическим моделированием и другими компьютерными науками. Завершив учебу в 1979 году, я получил работу в NCR Corporation, г. Дейтон, шт. Огайо, и добивался степени магистра в области компьютерных наук в университете Wright State. В корпорации NCR мне довелось заниматься сетевым моделированием баз данных, причем в группе, которая решала задачу переноса системы UNIX на NCR-компьютер. Вместе с моим руководителем из университета Wright State, Бобом Диксоном (Bob Dixon), я увлекся объектной технологией как раз в то время, когда на суд специалистов был представлен язык Smalltalk-80. Мы работали над несколькими объектно-ориентированными проектами одновременно.

В 1983 году, получив степень магистра наук, я начал работать в отделении AT&T Bell Laboratories компании UNIX System Development Laboratories, г. Муррей Хил, шт. Нью-Джерси. Мне очень повезло, что моим руководителем стал Том Карджил (Tom Cargill). Он разрабатывал отладчик под названием pi (process inspector — инспектор процессов) в новом языке программирования, изобретенном Бьярни Страуструпом (Bjarne Stroustrup). Зная язык C и желая использовать объектную технологию, в 1984 году я приступил к изучению C++.

В начале 1985 года я перевелся в филиал Bell Labs в г. Колумбус, шт. Огайо, где и живу до сих пор. Наш проект имел прикладную направленность и был предназначен для управления циклами проектирования упаковочных товаров и процессами, используемыми для их производства. Я отвечал за проектирование схемы базы данных, а также курировал использование C++/OOD в этом проекте. Меня заинтересовала новая технология, именуемая объектными базами данных. CAD/CAM была одной из первых областей ее применения. Эта технология нравилась мне, поскольку в ней объединялись мои интересы к объектам и базам данных, и она подходила к проекту, над которым я работал. Однако в то время существовало слишком мало подходящих коммерческих продуктов, и к тому же они опирались на патентованные языки программирования специального назначения, которые замыкались сугубо на функциях баз данных. Я считал, что эта технология не заслужит признания на рынке, если в ней не будет использован язык общего назначения.

На конференции OOPSLA-85 я познакомился с Тимом Эндрюсом (Tim Andrews), представлявшим компанию Ontologik, которая создала коммерческий продукт ведения объектных баз данных Vbase. Эта компания разработала собственный объектный язык программирования COP, в котором C сочетался со специальными расширениями, предназначенными для работы с объектами и базами данных. Я убедил Тима и других специалистов компании Ontologik отказаться от COP и использовать вместо него язык C++. Мы оговорили возможность сотрудничества компаний Bell Labs и Ontologik в целях разработки продукта поддержки объектных баз данных C++, но у руководства компании Bell Labs это предложение не вызвало интереса. Компания Ontologik самостоятельно взялась за разработку этого продукта, а я стал членом технической экспертной комиссии (Technical Advisory Board). В 1987 году компания выпустила первый коммерческий продукт поддержки объектных баз данных в среде C++. Я попытался убедить разработчиков моего проекта и других специалистов Bell Labs в использовании этой технологии, но мне это не удалось из-за отсутствия необходимых стандартов и более сильных ее сторонников на рынке программных продуктов.

В 1992 году я узнал, что Рик Кэтл (Rick Cattell) организовал консорциум фирм-производителей и пользователей объектных баз данных, именуемый группой управления объектными базами данных (Object Database Management Group — ODMG). Цель этой группы — определить стандарты для объектных баз данных, которые были бы обязательны для всех фирм-производителей. Наконец-то свершилось! Стандартный интерфейс, поддерживаемый всеми фирмами, обязательно приведет к благосклонному отношению на рынке. Все заинтересованные фирмы-производители выдвинули по несколько человек в качестве рецензентов стандарта. Джошуа Дахл (Joshua Duhl), ODMG-представитель компании Ontologik, выбрал рецензентом меня. В 1993 году Рик Кэтл предложил мне стать редактором ODMG C++.

Я пришел в полный восторг. Рик дал мне невероятный шанс! Группа ODMG только что выпустила спецификацию 1.0. Я присоединился к этой группе в качестве редактора C++ для версий 1.1, 1.2 и 2.0. Реализации этого стандарта сейчас есть у многих фирм-производителей.

В этой книге описаны объектные базы данных, использующие интерфейсы ODMG C++ и Object Query Language (OQL). Данная книга является введением в технологию объектных баз данных и может послужить справочником для всех, кто использует какую-либо из реализаций стандарта ODMG.

Для кого написана эта книга

Эта книга предназначена для разработчиков программных продуктов, которые знакомы с объектным проектированием и языком C++ и хотят узнать об объектных базах данных. Менеджерам рекомендуется прочитать книгу Мэри Лумис (Mary Loomis) Object Databases: The Essentials, а также другие книги, содержащие более подробное описание реализации объектных баз данных. Например, в качестве прекрасного справочника может служить книга Рика Кэтла Object Database Management.

Роль фирм-производителей объектных баз данных

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

Я решил не сравнивать работу фирм-производителей напрямую. Мне, как редактору ODMG C++, необходимо поддерживать хорошие отношения со всеми производителями. Если бы я пошел по пути сравнения, то не исключено, что многие из них обиделись бы на меня. Людям свойственно сильнее реагировать на негативные отзывы, чем на положительные. Каждое реализованное решение имеет как положительные, так и отрицательные стороны. У разработчиков приложений предпочтения основываются на системных требованиях, которые заставляют делать выбор в пользу лучшей (с точки зрения требований данного приложения) архитектуры. Читателям, которые хотят разобраться в средствах, применяемых разными фирмами-производителями, следует приобрести книгу Дуга Берри (Doug Barry) The Object Databases Handbook: How to Select, Implement, and Use Object-Oriented Databases.

Краткий обзор книги

Эта книга разделена на четыре части. Часть I посвящена моделированию объектных баз данных. В первой главе приведен пример разработки полного приложения с использованием объектных баз данных в среде C++. Во второй главе показано, как открыть базу данных, начать и завершить транзакции. Возможности объектного моделирования, заложенные в среде поддержки объектных баз данных, раскрыты в главах 3–9. В качестве интерфейса служит стандарт ODMG 2.0. Здесь не рассматривается ни один из интерфейсов конкретных фирм-производителей, хотя и обсуждаются некоторые аспекты различных реализаций.

В части II представлен язык объектных запросов (Object Query Language — OQL), который принят группой ODMG в качестве стандартного языка запросов для объектных баз данных. Если вы еще незнакомы с OQL, эту часть следует читать как справочное руководство по языку. Исторически сложилось так, что поддержка языка запросов — одно из слабых мест объектных баз данных, особенно в сравнении с реляционными базами данных. Некоторые производители объектных баз данных реализовали собственные варианты SQL-доступа, причем каждый из них преобразует объектную модель в SQL по-разному, что приводит к потере переносимости приложений (несмотря на использование одного и того же языка запросов). OQL — это мощный язык запросов для объектов, и его реализация всеми производителями заметно улучшит "репутацию", т.е. приемлемость, объектных баз данных. Те фирмы, которые еще не реализовали OQL, по-прежнему поддерживают язык SQL. Если разработчики заинтересованы в стандартизации языков запросов для объектных баз данных, они должны настаивать, чтобы производители поддерживали реализацию OQL.

В части III рассмотрены различные архитектуры, используемые объектными базами данных. Вместо того чтобы переписывать свои системы с нуля, большинство компаний устанавливают интерфейс ODMG на уже существующие архитектуры. Между архитектурами фирм-производителей существует много различий, что не может не сказаться на степени пригодности того или иного продукта для конкретного приложения. При выборе продукта очень важно знать об этих различиях. Здесь также затронуты вопросы, связанные с производительностью, поскольку эта характеристика объектной базы данных часто является производной от используемой архитектуры. Завершается эта часть описанием схем баз данных.

В части IV рассматриваются реляционные и объектно-реляционные базы данных в сравнении с объектными базами данных. Здесь также уделено внимание объектной поддержке в эскизной версии ANSI SQL3 1996 года и высказаны некоторые соображения относительно будущего каждой из этих технологий (касательно языка программирования Java).

Приложение А содержит объявления классов, используемых в книге. Приложения Б и В представляют собой полный справочник по интерфейсу ODMG 2.0 C++. Поскольку реализации, доступные на рынке, все еще основываются на интерфейсе ODMG-93 1.2, я отметил различия между этими версиями. Приложение В посвящено метаклассам, представленным в интерфейсе ODMG 2.0. Эти классы используются приложениями для доступа к описанию схемы базы данных. Обзор этих классов приведен в главе 16.


Copyright © 1992-2019 Издательская группа "Диалектика-Вильямс"

Rambler  Top100