Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Проектирование объектно-ориентированных баз данных

Покупка
Артикул: 615995.01.99
В книге описана новая технология, применяющаяся для хранения и обработки больших объемов различной информации. Рассматриваются базовые концепции функционирования БД, сравниваются полностью объектно-ориентированные и гибридные системы управления базами данных. Приводится несколько примеров их разработки, указываются преимущества и недостатки реализаций. Издание адресовано читателям, которые хотят получить общее представление о возможностях и особенностях объектно-ориентированных СУБД. Книга будет особенно полезна разработчикам баз данных для различных систем автоматизации, управления и документооборота.
Харрингтон, Д. Проектирование объектно-ориентированных баз данных [Электронный ресурс] / Д. Харрингтон; Пер. с англ. - Москва : ДМК Пресс, 2001. - 272 с.: ил. - (Серия «Для программистов»). - ISBN 5-94074-097-9. - Текст : электронный. - URL: https://znanium.com/catalog/product/408246 (дата обращения: 20.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Проектирование объектноориентированных баз данных

Джен Харрингтон

ObjectOriented
Database Design
Clearly Explained

Jan L. Harrington

Проектирование
объектноориентированных
баз данных

Джен Харрингтон

Москва, 2001

Серия «Для программистов»

ББК 32.973.26018.2
Х21

Харрингтон Д.
Проектирование объектноориентированных баз данных: Пер. с англ. –
М.: ДМК Пресс, 2001. – 272 с.: ил. (Серия «Для программистов»).

ISBN 5940740979

В книге описана новая технология, применяющаяся для хранения и обработки больших объемов различной информации. Рассматриваются базовые концепции функционирования БД, сравниваются полностью объектноориентированные и гибридные системы управления базами данных.
Приводится несколько примеров их разработки, указываются преимущества и недостатки реализаций.
Издание адресовано читателям, которые хотят получить общее представление о возможностях и особенностях объектноориентированных СУБД.
Книга будет особенно полезна разработчикам баз данных для различных
систем автоматизации, управления и документооборота.

ББК 32.973.26018.2

Х21

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

ISBN 0123264286 (англ.)
Copyright © 2000 by Academic Press.
All rights reserved
ISBN 5940740979 (рус.)
© Перевод на русский язык, оформление.
ДМК Пресс, 2001

Содержание

Предисловие
.................................................................................... 9

Часть I. Теория ........................................................................... 11

Глава 1. Введение
.......................................................................... 13

Краткая история моделирования данных
..................................... 13
Иерархическая модель данных
......................................................... 13
Сетевые модели данных
.................................................................. 15
Решительный прорыв: реляционная модель данных
............................ 17
Переход к объектноориентированной модели
................................... 18
Роль объектов в базах данных
....................................................... 19
Примеры использования
объектноориентированных баз данных
...................................... 19

Глава 2.Основы
объектноориентированной парадигмы
.............. 23

Составление инструкции
................................................................ 23
Объекты
........................................................................................... 28
Классы
.............................................................................................. 29
Виды классов
................................................................................ 30
Виды методов
................................................................................ 31
Перегрузка методов
....................................................................... 32
Именование классов, атрибутов и методов
........................................ 33
Введение в наследование
.............................................................. 33
Наследование атрибутов
................................................................. 33
Множественное наследование
......................................................... 36
Интерфейсы
.................................................................................. 37
Наследование методов: полиморфизм
............................................. 37
Преимущества объектной ориентированности
........................... 38

Проектирование ООБД

Глава 3. Объектноориентированная
модель данных
............................................................... 39

Объектноориентированные связи
между данными
............................................................................... 39
Идентификаторы объектов
.............................................................. 39
Связи «одинкомногим»
................................................................. 41
Связи «многиекомногим»
.............................................................. 41
Связь «является»
............................................................................ 44
Связь «расширяет»
......................................................................... 44
Связь «целоечасть»
....................................................................... 44
Целостность связей
........................................................................ 45
Представление моделей объектноориентированных связей
на ERдиаграммах
........................................................................... 46

Нотация КоадаЙордана
................................................................. 46
Нотация ШлаераМеллора
.............................................................. 47
Нотация OMT (Рамбо)
..................................................................... 48
Нотация Буча
................................................................................. 49

Унифицированный язык моделирования (UML)
.................................. 52
Включение объектов в реляционную базу данных
....................... 56
Дополнительная литература
.......................................................... 57

Глава 4. Проект стандарта объектных баз данных
........... 58

Основные термины ООСУБД
......................................................... 58
Что такое типы
................................................................................. 59
Внешние спецификации
.................................................................. 59
Реализации
................................................................................... 60
Примитивные типы
......................................................................... 60
Наследование
.................................................................................. 61
Интерфейсы и наследование
........................................................... 61
Классы и расширения
..................................................................... 62
Объекты
........................................................................................... 63
Объектыколлекции
........................................................................ 64
Структурированные объекты
........................................................... 65
Создание и уничтожение объектов
................................................... 65
Представление логических связей
............................................... 65
Дополнительная литература
.......................................................... 66

Содержание

Глава 5. Разработка стандарта языка
для определения ООБД .............................................. 67

Структура описания интерфейса и класса
................................... 67
Объявление атрибутов
................................................................... 70
Задание связей
............................................................................... 72
Добавление сигнатур операций
.................................................... 75
Списки параметров
........................................................................ 76
Возвращаемые значения и выходные параметры
............................... 77
Исключения
................................................................................... 78
Окончательная схема
...................................................................... 78

Часть II. Практикум ................................................................. 83

Глава 6. Пример проектирования базы данных:
компания MightyMite Motors
................................... 85

Обследование компании
................................................................ 85
Каталог
......................................................................................... 86
Конструкторский отдел
................................................................... 89
Производственный отдел
................................................................ 89
Отдел маркетинга и сбыта
............................................................... 89
Текущее состояние дел в сфере информатизации
.............................. 90
План реорганизации
....................................................................... 91
Новый отдел информационных систем
.............................................. 91
Основные цели системы
.................................................................. 92
Текущие бизнеспроцессы
.............................................................. 92
Проектирование базы данных
....................................................... 99
Исследование потоков данных
....................................................... 100
Реляционный проект
..................................................................... 102
Проектирование объектнореляционной базы данных
................ 103
Проектирование объектной базы данных
................................... 109
ERдиаграмма
............................................................................. 109
Описание схемы на языке ODL
....................................................... 114

Глава 7. Пример проектирования базы данных:
«Восточный аквариум»
............................................. 127

Обследование организации
........................................................ 127
Учет животных
............................................................................. 128
Организация волонтеров
.............................................................. 131

Проектирование ООБД

База данных о волонтерах
............................................................ 132
Создание прототипа приложения
................................................... 133
Реляционная база данных
............................................................. 139
Проектирование гибридной базы данных
........................................ 140
Проектирование объектной базы данных
......................................... 142
База данных для учета животных
................................................. 145
Некоторые особенности прототипа приложения
............................... 146
Реляционная база данных
............................................................. 149
Проектирование гибридной базы данных
........................................ 151
Проектирование объектной базы данных
......................................... 151

Глава 8. Пример проектирования базы данных:
Независимое разведывательное агентство ...... 166

Обследование организации
........................................................ 166
Имеющиеся информационные системы
.......................................... 168
Сводка информационных потребностей
.......................................... 170
Спецификации системы
................................................................ 170
Реляционная база данных
............................................................ 175
Проектирование гибридной базы данных
.................................. 176
Проектирование объектной базы данных
................................... 184
ERдиаграмма
............................................................................. 184
Схема базы данных на языке ODL
................................................... 192
Наследование и интерфейсы
......................................................... 192

Глава 9. Пример реализации 1: Oracle
................................ 218

Классы как типы данных
............................................................... 218
Схема базы данных
....................................................................... 222

Глава 10. Пример реализации 2: Jasmine
.......................... 232

Реализация объектноориентированной
модели данных в СУБД Jasmine
................................................... 232
Схема базы данных в Jasmine
...................................................... 233

Глоссарий
....................................................................................... 262
Предметный указатель ................................................................ 267

Предисловие

Хотя на сегодняшний день теория логического проектирования баз данных – одна
из областей информатики, развивающихся наиболее медленно, всетаки некоторые успехи в этой сфере налицо. Как раз теперь проектировщики баз данных
являются свидетелями возникновения новой – объектноориентированной – логической модели данных, а также включения объектноориентированных возможностей в реляционную модель.
Пока еще рано говорить о том, за каким из этих двух подходов будущее. Но
тем не менее уже есть несколько систем управления базами данных, основанных
на объектноориентированной модели, достаточно надежных для эксплуатации
в больших компаниях. В то же время производители давно признанных реляционных СУБД включают в свою продукцию поддержку объектов.
В этой книге представлены оба способа включения объектов в базы данных.
Сначала изложены концепции, лежащие в основе объектноориентированной парадигмы, а затем показано, как эти концепции трансформируются в модель, поддерживаемую «чистыми» объектноориентированными СУБД.
Далее речь пойдет о том, как работают с объектами гибридные объектнореляционные системы. Вы увидите, что рассматриваемые подходы имеют фундаментальные отличия, которые определяют возможности каждой системы.

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

В отличие от ситуации с реляционными базами данных, для объектноориентированных баз нет официального стандарта. Группа по управлению объектными
базами данных (Object Database Management Group, ODMG), которая отвечает за
разработку стандарта, существует вне традиционных органов стандартизации.
Некоторые элементы проекта будут представлены в этой книге, но вы увидите
и примеры конкретных реализаций, не следующих данному стандарту. Для реляционных систем такой разнобой довольно необычен, поскольку в среде теоретиков установилось молчаливое соглашение о том, что представляет собой реляционная база данных, а стандарт SQL в качестве языка манипулирования данными
принят повсеместно.

Предисловие

Настоящее издание представляет собой дополнение к моей книге «Relational
Database Design Clearly Explained», вышедшей в издательстве AP Professional.
Поэтому не случайно, что примеры баз данных, приведенные в главах 6, 7 и 8,
совпадают с рассмотренными в вышеуказанной книге. Это позволит вам сравнить
проект реляционной базы данных с проектом объектной и гибридной объектнореляционной баз и выбрать ту модель, которая в большей степени соответствует
задачам, стоящим перед вашей организацией.

Что необходимо знать

Чтобы извлечь из этой книги максимум пользы, нужно иметь хорошее представление о реляционных базах данных. Необходимо понимать смысл таких терминов, как отношение, домен, потенциальный ключ, первичный ключ, внешний
ключ, целостность сущностей, ссылочная целостность. Следует также знать язык
SQL и основные конструкции, применяемые в ERдиаграммах (диаграммах «сущностьсвязь»).
Никаких знаний об объектноориентированной парадигме, напротив, не требуется; все необходимое объясняется по ходу изложения. Необязательно также
уметь писать программы, но стоит помнить о том, что современные объектноориентированные СУБД тесно связаны с языками программирования, а синтаксис
определения структуры базы данных основан на концепциях, применяемых в программировании. Поэтому знакомство хотя бы с одним из языков – C++ или Java –
не повредит. Так, информация, содержащаяся в главах 9 и 10, где речь идет о конкретных реализациях объектных баз данных, окажется для вас намного ценнее,
если вы умеете программировать.

Благодарности

Хочется поблагодарить людей, которые помогали мне при написании книги:
Кена Мортона (Ken Morton) – редактора, от работы с которым я всегда получала
огромное наслаждение; Габриэль Биллетер (Gabrielle Billeter) – помощника редактора, которая отвечала за все частности; Джули Шампейн (Julie Champagne)
и Шона Гирсбергера (Shawn Girsberger) – выпускающих редакторов; Мэри Прескотт
(Mary Prescott) – корректора. У нее острый глаз и легкая рука; Кэрола Макклендона (Carole McClendon) – моего агента, который и свел меня с издательством
Morgan Kauffman (тогда оно еще называлось AP Professional).
JLH

http://www.blackgryphonltd.com

Глава 1. Введение

Глава 2.     Основы
объектноориентированной
парадигмы

Глава 3.     Объектноориентированная
модель данных

Глава 4.     Проект стандарта
объектных баз данных

Глава 5.     Разработка стандарта языка
для определения ООБД

Часть I

Теория

Теория

В первой части книги рассматриваются теоретические аспекты объектноориентированной парадигмы, а также ее расширение для представления сущностей,
хранящихся в базе данных, и связей между ними. Вы познакомитесь с проектом
стандарта объектноориентированных баз данных (ООБД) и со способами моделирования таких баз посредством ERдиаграмм.

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

Глава 1. Введение

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

Краткая история моделирования данных

До того как была разработана первая система управления базами данных
(СУБД), доступ к данным осуществлялся прикладными программами напрямую,
а сами данные были организованы в виде плоских файлов. Возникавшие при этом
проблемы с логической целостностью данных, а также невозможность представить логические связи между ними в таких системах послужили причиной создания первой модели данных – иерархической.

Иерархическая модель данных

Иерархическая модель данных, реализованная, прежде всего, в системе
Information Management System (IMS) компании IBM, допускает только два вида
связей между сущностями: «одинкодному» и «одинкомногим». Любая сущность со стороны «много» может соотноситься только с одной сущностью со стороны «один».
Взгляните на рис. 1.1. На ERдиаграмме представлены две связи между сущностями Product (Изделие) и Vendor (Поставщик). Первая является связью типа
«многиекомногим», показывающей, кто какой продукт поставляет; вторая предназначена для соотнесения изделий с поставщиками.
Связь типа «многиекомногим» между изделиями и поставщиками требует
наличия композиционной сущности для представления цены изделия, назначенной поставщиком. Логически эта сущность – на рис. 1.1 она названа Catalog Entry
(Элемент Каталога) – связана с обеими сущностями Product и Vendor. Однако
в иерархической модели данных такого рода множественная подчиненность запрещена.

Введение

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

Одно из возможных решений – продублировать сущность, как показано на
рис. 1.1. Вместо этого можно было бы связать ее только с одним из двух родителей;
так происходило со связями Product–Order (Изделие–Заказ) и Order–Order Item
(Заказ–Строка Заказа).
Ни то, ни другое решение не идеально. Дублирование сущностей Catalog Entry
создает возможность рассогласования данных. Одиночный же характер сущностей Order и Order Item накладывает ограничения на виды доступа, поддерживаемые базой данных.
Иерархические базы данных по сути своей являются навигационными. Это означает, что доступ возможен только с помощью заранее определенных связей. Кроме того, доступ, как правило, должен следовать иерархии и производиться начиная с ее вершины (корня). Например, чтобы добраться до экземпляра сущности
Order Item, прикладная программа должна сначала отыскать подходящий
экземпляр сущности Product, а затем обойти все экземпляры Order, связанные
с найденным экземпляром Product, пока не будет обнаружено нужное изделие.
В иерархии прямой доступ к данным крайне ограничен, а обычно и вовсе невозможен. Пользуясь иерархиями, изображенными на рис. 1.1, нереально без
выполнения сложных операций ответить на вопрос: «У какого поставщика

Product

*productNumb
productDescription
quantityOnHand

Order

*orderNumb
vendorNumb
orderDate
orderTotal$

Catalog Entry

*productNumb
*vendorNumb
price

Order Item

*orderNumb
*productNumb
quantityOrdered
priceEach
priceLine

Catalog Entry

*productNumb
*vendorNumb
price

Vendor

*vendorNumb
vendorName
VendorStreet
vendorCity
vendorState
vendorZip
vendorPhone
vendorContactPerson

Рис. 1.1. Две иерархии данных

заказано конкретное изделие?» Единственный способ удовлетворить такой запрос – пройти от Product к Order и затем к Order Item, чтобы найти все строки заказа, в которых фигурирует искомое изделие. После этого приложение должно
было бы отыскать экземпляры Catalog Entry во второй иерархии, чтобы определить поставщика.
Достоинство иерархической базы данных в том, что ее навигационная природа обеспечивает очень быстрый доступ при следовании вдоль заранее определенных связей. Однако негибкость модели данных и, в частности, невозможность
наличия у сущности нескольких родителей, а также отсутствие прямого доступа
к данным делают ее непригодной в условиях частого выполнения запросов, не запланированных заранее.
IMS используется и сегодня в некоторых унаследованных системах на больших ЭВМ, но компания IBM больше не продает этот продукт и рекомендует своим клиентам по возможности переходить на реляционные СУБД.

Сетевые модели данных

Задолго до того, как компьютерные сети стали привычными, проектировщики баз данных создали две модели, описывающие сети связей между данными:
простую и сложную сетевые модели. Они были призваны устранить ограничения,
свойственные иерархической модели данных.

Простая сетевая модель данных
В простой сетевой базе данных все связи имеют тип «одинкодному» или
«одинкомногим» – непосредственные связи «многиекомногим» не допускаются. Однако разрешена множественная подчиненность. Как видно из рис. 1.2, допустимость множественной подчиненности решает проблемы избыточного дублирования и ограничений на виды доступа.
Простые сетевые базы данных сохраняют навигационный характер: по большей части доступ осуществляется с помощью заранее определенных связей. В какойто степени прямой доступ к экземплярам сущностей поддерживается за счет
хэширования, но, поскольку последнее влияет на физическое размещение данных
в файле, на практике быстрый доступ возможен лишь к одной сущности в иерархии. Например, в базе данных изделий и заказов из примера выше сущности
Product и Vendor можно хранить с использованием хэширования для предоставления к их экземплярам прямого доступа. Но остальные сущности, скорее всего, будут доступны только через своих родителей.

Примечание
Хэшированием называется техника, при которой значение ключа, аналогичное первичному ключу отношения, с помощью некоторой процедуры (алгоритма хэширования) преобразуется в адрес экземпляра сущности в файле данных. Когда пользователь
указывает ключ, СУБД может вычислить соответствующее хэшированное значение и использовать его для прямого доступа
к данным, преимущество которого состоит в его скорости.

Краткая история моделирования данных