Проектирование объектно-ориентированных баз данных
Покупка
Тематика:
Проектирование баз и банков данных
Издательство:
ДМК Пресс
Автор:
Харрингтон Джен
Год издания: 2001
Кол-во страниц: 272
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Аспирантура
ISBN: 5-94074-097-9
Артикул: 615995.01.99
В книге описана новая технология, применяющаяся для хранения и обработки больших объемов различной информации. Рассматриваются базовые концепции функционирования БД, сравниваются полностью объектно-ориентированные и гибридные системы управления базами данных. Приводится несколько примеров их разработки, указываются преимущества и недостатки реализаций. Издание адресовано читателям, которые хотят получить общее представление о возможностях и особенностях объектно-ориентированных СУБД. Книга будет особенно полезна разработчикам баз данных для различных систем автоматизации, управления и документооборота.
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Проектирование объектноориентированных баз данных Джен Харрингтон
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 можно хранить с использованием хэширования для предоставления к их экземплярам прямого доступа. Но остальные сущности, скорее всего, будут доступны только через своих родителей. Примечание Хэшированием называется техника, при которой значение ключа, аналогичное первичному ключу отношения, с помощью некоторой процедуры (алгоритма хэширования) преобразуется в адрес экземпляра сущности в файле данных. Когда пользователь указывает ключ, СУБД может вычислить соответствующее хэшированное значение и использовать его для прямого доступа к данным, преимущество которого состоит в его скорости. Краткая история моделирования данных