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

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

Покупка
Артикул: 816785.01.99
Доступ онлайн
399 ₽
В корзину
В книге описана новая технология, применяющаяся для хранения и обработки больших объемов различной информации. Рассматриваются базовые концепции функционирования БД, сравниваются полностью объектно-ориентированные и гибридные системы управления базами данных. Приводится несколько примеров их разработки, указываются преимущества и недостатки реализаций. Издание адресовано читателям, которые хотят получить общее представление о возможностях и особенностях объектно-ориентированных СУБД. Книга будет особенно полезна разработчикам баз данных для различных систем автоматизации, управления и документооборота.
Харрингтон, Д. Проектирование объектно-ориентированных баз данных : практическое руководство / Д. Харрингтон ; пер. с англ. ; А. А. Слинкина. - 2-е изд. - Москва : ДМК Пресс, 2023. - 273 с. - (Для программистов). - ISBN 978-5-89818-454-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/2106223 (дата обращения: 07.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Проектирование объектноориентированных баз данных

Джен Харрингтон
ObjectOriented
Database Design
Clearly Explained

Jan L. Harrington

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

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

Москва, 2023

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

2-е издание, электронное
ББК 32.973.26-018.2
Х21

Х21
Харрингтон, Джен.

Проектирование объектно-ориентированных баз данных / Дж. Харрингтон ; пер. 
с англ. ; А. А. Слинкина. — 2-е изд., эл. — 1 файл pdf : 273 с. — Москва : ДМК Пресс, 
2023. — (Для программистов). — Систем. требования: Adobe Reader XI либо Adobe 
Digital Editions 4.5 ; экран 10". — Текст : электронный.

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

ББК 32.973.26-018.2

Электронное издание на основе печатного издания: Проектирование объектно-ориентированных баз 
данных / Дж. Харрингтон ; пер. с англ. ; А. А. Слинкина. — Москва : ДМК Пресс, 2001. — 272 с. — (Для 
программистов). — ISBN 5-94074-097-9. — Текст : непосредственный.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских 
прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-454-4
©  Перевод на русский язык, оформление. 
ДМК Пресс, 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. Две иерархии данных
Доступ онлайн
399 ₽
В корзину