
- •Часть 3 Проектирование базы данных
- •Глава 9. Функциональные зависимости.
- •9.1. Введение
- •9.2. Основные определения
- •9.3. Тривиальные и нетривиальные зависимости
- •9.4. Замыкание множества зависимостей
- •9.5. Замыкание множества атрибутов
- •9.6. Неприводимое множество зависимостей
- •9.7. Резюме
- •Глава 10 Дальнейшая нормализация:
- •1Нф, 2нф, 3нф, нфбк
- •10.1. Введение
- •10.2. Декомпозиция без потерь и функциональные зависимости
- •10.3. Первая, вторая и третья нормальные формы
- •10.4. Сохранение зависимости
- •10.5. Нормальная форма Бойса-Кодда
- •10.6. Резюме
- •Глава 12 Модель типа объект/отношение
- •12.1. Введение
- •12.2. Общий подход
- •12.3. Обзор модели объект/отношение
- •12.4. Диаграммы объект/отношение
- •12.5. Проектирование базы данных на основе модели типа объект/отношение
- •12.6. Краткий анализ
- •12.7. Резюме
12.7. Резюме
Эта глава начиналась с краткого введения в общие идеи семантического моделирования. В целом этот процесс состоит из четырех перечисленных ниже этапов, первый из которых является неформальным, а остальные — формальными.
1. Задать полезные семантические концепции.
2. Вывести соответствующие символические объекты.
3. Вывести соответствующие правила целостности.
4. Вывести соответствующие операторы.
Среди полезных семантических концепций следует упомянуть объект, свойство, отношение и подтип.
Главная цель исследований в области семантического моделирования заключается в том, чтобы сделать СУБД более "разумными". А практическая цель заключается в создании системного подхода к решению проблемы проектирования базы данных. В данной главе было описано применение частной "семантической" модели для решения этой проблемы, а именно предложенной Ченом модели объект/отношение.
В связи со сказанным выше стоит повторить мысль о том, что в оригинальной статье Чена [12.3] на самом деле содержалось два различных, более или менее независимых, предложения: самамодель объект/отношение, а также диаграммная техника.Как было отмечено, популярность модели объект/отношение скорее всего можно объяснить именно наличием этой диаграммной техники, чем какой-либо другой причиной. Однако совсем не обязательно для использованиядиаграммпринимать все идеи этой модели. Диаграммы можно использовать в качестве основы длялюбой методики проектирования, например в [12.6] приводится другая методика. Часто при сравнении удобства использования модели объект/отношение и других моделей, предусмотренных для проектирования базы данных, эта особенность упускается из виду.
Сравним теперь идеи семантического моделирования (и модель объект/отношение в частности) с порядком нормализации, описанным в главах 10 и 11. Порядок нормализации основан на приведении больших отношений к отношениям меньшего размера. При этом предполагается, что на исходном этапе имеется небольшое количество больших отношений и после выполнения нескольких операций приведения на завершающем этапе будет получено большое количество малых отношений, т.е. произойдет отображение больших отношений на малые (это, конечно же, очень приблизительная формулировка). Однако в процедуре нормализации нигде не упоминается, каким образом были получены исходные большие отношения. Нисходящие методики, подобные описанным в настоящей главе, как раз и предназначены для решения именно этой проблемы, т.е. они позволяют отобразить реальный мир в больших отношениях. Иначе говоря, эти два подхода дополняют друг друга. Таким образом, общая процедура проектирования базы данных включает два этапа.
1. Использование подхода на основе модели объект/отношение или другой нисходящей методики для генерации "больших" отношений, представляющих правильные объекты, слабые объекты и т.д.
2. Последующее использование идей дальнейшей нормализации для разбиения "больших" отношений на "малые".
Однако, судя по приведенным в данной главе рассуждениям, изложение основ семантического моделирования не является таким строгим и ясным, как описание порядка дальнейшей нормализации в главах 10 и 11. Дело в том, что (как было указано в начале данной главы) проектирование базы данных все еще является не объективным, а весьма субъективным занятием, поскольку существует сравнительно мало действительно строгих принципов, которые могут использоваться для разрешения этой проблемы (немногие существующие на сегодняшний день принципы в основном являются принципами нормализации). Изложенные в настоящей главе идеи можно рассматривать как рекомендации, которые действительно могут быть весьма полезны на практике.
В заключение следует упомянуть еще один очень важный момент. Несмотря на заявление, что эта область исследований все еще остается очень субъективной, есть в ней одна особая часть, в которой идеи семантического моделирования в настоящее время могут быть весьма уместны и полезны. Речь идет о словаре данных, который в некотором смысле можно рассматривать как "базу данных разработчика для создаваемой им базы данных". В ней разработчик хранит принятые во время проектирования базы данных решения [12.2]. Таким образом, изучение семантического моделирования может оказаться чрезвычайно полезным для проектирования системы управления словарем данных. В нем могут быть указаны типы объектов, которые словарь должен поддерживать и "понимать", например категории объектов (такие как правильные и слабые объекты в модели объект/отношение), правила целостности (такие как полное или частичное участие в отношении модели объект/отношение), супертипы объектов, подтипы и т.д.
Упражнения
12.1. Что означает термин "семантическое моделирование"?
12.2. Перечислите четыре основных этапа, необходимых для задания такой "расширенной" модели, как модель объект/отношение.
12.3. Дайте определение перечисленным терминам модели объект/отношение:
объект; правильный объект; слабый объект; отношение; свойство; ключевое свойство; супертип; подтип; иерархия типов; наследование.
12.4. Приведите примеры для следующих отношений;
а) отношение типа многие-ко-многим, в котором один из участников является слабым объектом;
б) отношение типа многие-ко-многим, в котором один из участников является другим отношением;
в) отношение типа многие-ко-многим, которое имеет подтип;
г) подтип, связанный со слабым объектом, который, в свою очередь, не зависит от супертипа.
12.5. Нарисуйте диаграмму объект/отношение для базы данных учебного процесса из упр. 5.3 главы 5.
12.6. Нарисуйте диаграмму объект/отношение для базы данных, содержащей информацию о персонале компании, из упр. 10.3 главы 10. Используйте эту диаграмму для вывода соответствующего набора базовых отношений.
12.7. Нарисуйте диаграмму объект/отношение для базы данных системы учета заказов из упр. 10.4 главы 10. Используйте эту диаграмму для вывода соответствующего набора базовых отношений.
12.8. Нарисуйте диаграмму объект/отношение для базы данных, содержащей информацию о продажах, из упр. 11.2 главы 11. Используйте эту диаграмму для вывода соответствующего набора базовых отношений.
12.9. Нарисуйте диаграмму объект/отношение для измененной базы данных о продажах из упр. 11.4 главы 11. Используйте эту диаграмму для вывода соответствующего набора базовых отношений.
Список литературы
Сюда следует также отнести некоторые ссылки на работы, приведенные после главы 2, особенно [2.3, 2.6, 2.7].
12.1. Abrial J.R. Data Semantics // J. W. Klimbie and K. L. Koffeman (eds.). Data Base Management. — Amsterdam, Netherlands: North-Holland; New York, N.Y.: Elsevier Science, 1974.
Одна из самых ранних публикаций в области семантического моделирования. Следующая цитата прекрасно передает общий дух изложения материала в этой статье: "Совет читателю: если вы хотите найти в этой статье определение термина семантика, вам следует прекратить чтение, поскольку такого определения в этой статье нет".
12.2. Alien F.W., Loomis M.E.S., Mannino M.V. The Integrated Dictionary-Directory System //ACM Соmр. Surv. — 1982. — 14, № 2.
Введение в словари данных с кратким обзором имеющихся продуктов по состоянию на 1982 год.
12.3. Chen P. P.-S. The Entity-Relationship Model — Toward a Unified View of Data // ACM TODS. — 1976. — 1, № 1. (Переиздано: М. Stonebraker (ed.) Readings in Database Systems. — San Mateo, Calif: Morgan Kaufmann, 1988.)
В статье представлены модель и диаграмма объект/отношение. Как уже говорилось в этой главе, с тех пор эта модель претерпела значительные изменения, поскольку, конечно же, объяснения и определения, данные в этой первой статье были не очень строгими и точными, а потому нуждались в усовершенствовании. (Одно из наиболее часто высказываемых критических замечаний по отношению к модели объект/отношение состоит в том, что термины модели не имеют единого и четкого определения, а интерпретируются несколькими различным способами [12.4, 12.7]. Конечно, вся область изучения баз данных характеризуется наличием неточной и противоречивой терминологии, однако данная область — в наибольшей степени.) Вот несколько примеров этих неточностей.
• В этой главе отмечалось, что объект определяется как "предмет, который может быть четко идентифицирован", а отношение как "соединение объектов". При этом сразу же возникает вопрос, а является ли отношение объектом? Ясно, что отношение является "предметом, который может быть четко идентифицирован", однако из последующих разделов этой статьи следует, что термин "объект" предусмотрен для чего-то, определенно не являющегося "отношением". Если все же допустить, что это так, то почему модель называется "моделью объект/отношение"? В статье это действительно не очень ясно.
• Объекты и отношения могут иметь атрибуты (в этой статье использовался термин "свойство"). В статье снова не дается четкого определения этому термину, поскольку сначала атрибут определяется как свойство, которое не является первичным ключом или его компонентом (в противоположность реляционному определению), а потом он используется в стандартном реляционном смысле.
• Предполагается, что первичный ключ отношения является комбинацией внешних ключей, которые идентифицируют объекты, включенные в состав данного отношения (однако термин "внешний ключ" при этом не используется). Это допущение верно только для отношений типа многие-ко-многими и то не всегда. Например, рассмотрим отношение SPD {S#, P#, DATE, QTY}, представляющее поставки некоторых товаров некоторыми поставщиками по некоторым датам. Предположим, что один и тот же поставщик может поставлять один и тот же товар несколько раз, но только по разным датам. Тогда первичный ключ является комбинацией {S#, Р#, DATE}, причем если поставщиков и товары можно выбрать в качестве объектов, то для дат этого сделать нельзя.
12.4. Chen P. P.-S. A Preliminary Framework for Entity-Relationship Models // P. P.-S. Chen (ed.). Entity-Relationship Approach to Information Modeling and Analysis. — Saugus, Calif, 1981.
12.5. Codd E.F. Extending the Database Relational Model to Capture More Meaning // ACM TODS. — 1979. — 4, № 4.
В статье представлена расширенная реляционная модель RM/T. Можно сразу же отметить несколько различий между RM/T и моделью объект/отношение. Во-первых, в модели RM/T не делается никаких различий между объектами и отношениями (отношение рассматривается всего лишь как особый вид объекта). Во-вторых, структурные и целостные аспекты модели RM/T более обширны и менее четко определены, чем в модели объект/отношение. В-третьих, модель RM/T содержит несколько специальных операторов в дополнение к операторам базовой реляционной модели (хотя в этой области еще предстоит дополнительная работа).
Вкратце модель RM/T функционирует следующим образом.
• Объекты (включая "отношения") представлены Е-отношениями и Р-отношениями, которые являются особыми видами отношения общего типа степени п. Е-отношения используются для указания существования некоторых объектов, а Р-отношения — для указания некоторых свойств этих объектов.
• Среди объектов могут быть заданы разные отношения: например, типы объектов А и В могут образовывать соединение (этот термин принят в модели RM/T для отношения типа многие-ко-многим) или один тип объекта может быть подтипом другого типа объекта. Модель RM/T имеет формальную структуру каталога, который указывает системе на существование таких отношений. Таким образом, система в состоянии привести в действие различные ограничения целостности, которые подразумеваются наличием таких отношений.
• Для управления различными объектами модели RM/T (Е- и Р-отношения, каталог отношений и т.д.) существуют операторы высокого уровня.
В модели RM/T имеются и другие аналоги конструкций модели объект/отношение (объект, свойство, отношение, подтип), которые перечислены на рис. 12.1. Точнее, в ней задана классификационная схема объектов, которая во многих случаях образует наиболее значительный или, по крайней мере, наиболее очевидный аспект всей этой модели. Объекты разделены на три основные категории: ядра, характеристики и соединения.
• Ядра. Это объекты, имеющие независимое существование, они являются тем, из "чего на самом деле состоит база данных". Иначе говоря, ядрами называются объекты, которые не являются ни характеристиками, ни соединениями.
• Характеристики. Это объекты, предназначенные для описания или "составления характеристики" некоторого другого объекта. Характеристики существуют независимо от описываемых ими объектов. Описываемый объект может быть ядром, характеристикой или соединением.
• Соединения. Это объекты, представляющие отношение типа многие-ко-многим (или многие-ко-многим-ко-многим и т.д.) среди двух или более объектов. Среди соединенных объектов могут быть ядра, характеристики или соединения.
Кроме того:
• Объекты (независимо от их классификации) могут также быть свойствами.
• В частности, любой объект (опять-таки независимо от классификации) может иметь свойство, функция которого заключается в том, чтобы указать на некоторый другой объект. Такое указание представляет собой отношение типа многие-к-одному между двумя объектами.
• Поддерживаются супертипы и подтипы объектов. Если В является супертипом А, то В является ядром, характеристикой или соединением в зависимости от того, является ли А ядром, характеристикой или соединением.
Все перечисленные выше концепции можно соотнести с их аналогами в модели объект/отношение (в некотором неформальном виде) следующим образом. Ядро соответствует "правильному объекту" в модели объект/отношение, характеристика — "слабому объекту", а соединение — "отношению" (только для типа многие-ко-многим).
Приведенные выше краткие сведения следует дополнить упоминанием о том, что в модели RM/T предусмотрена поддержка суррогатов (подробнее это описано в [12.12]), временного измерения и различных типов агрегации данных (подробнее это обсуждается в [12.22, 12.23]).
12.6. Date C.J. A Practical Approach to Database Design // C. J. Date. Relational Database: Selected Writings. — Reading, Mass.: Addison-Wesley, 1986.
Описание методики проектирования, основанной на концепциях модели RM/T [12.5].
12.7. Date C.J. Entity/Relationship Modeling and the Relational Model // C. J. Date and Hugh Darwen. Relational. Database Writings: 1989-1991.— Reading, Mass.: Addison-Wesley, 1992.,
12.8. Date C.J. Don't Encode Information into Primary Keys! // Ibid.
Здесь представлены аргументы против того, что порой называется "разумными ключами". Кроме того, также следует упомянуть работы [5.6, 5.7], в которых приведены рекомендации относительно внешних ключей.
12.9. Date C.J. A Note on One-to-One Relationships // C. J. Date. Relational Database Writings 1985-1989. —Reading, Mass.: Addison-Wesley, 1990.
Обширное обсуждение проблемы отношений типа один-к-одному, которые на самом деле гораздо сложнее, чем может показаться на первый взгляд.
12.10. Elmasri R., Navathe S.B. Fundamentals of Database Systems (2nd edition).— Redwood City, Calif: Benjamin/Cummings, 1994.
В этом учебном пособии о проектировании баз данных содержится две главы, посвященные методам объект/отношение.
12.11. Fleming C.C., Von Halle В. Handbook of Relational Database Design. — Reading, Mass.: Addison-Wesley, 1989.
Достаточно обширное и прекрасное в практическом отношении пособие по проектированию баз данных в реляционных системах с некоторыми примерами на основе системы DB2 компании IBM и DBC/1012 компании Teradata (теперь NCR). Описана как логическая, так и физическая структура, хотя, например, для описания "реляционного макета" в книге используется термин "логический макет", а с помощью термина "реляционный макет" описаны по крайней мере некоторые аспекты "физического макета"! Описанная в этой книге особая методика проектирования имеет несколько общих черт с методикой, представленной в [12.6].
12.12.Hall Р., Owlett J., Todd S.J.P. Relations and Entities // G. M. Nijssen (ed.). Modelling in Data Base Management Systems. — Amsterdam, Netherlands:
North-Holland; New York, N.Y.: Elsevier Science, 1975. Это первая статья, в которой была подробно рассмотрена идея суррогатов (позднее суррогаты были введены в состав модели RM/T). Суррогатом называется идентификатор объекта, заданный и поддерживаемый самой системой. В терминах модели RM/T каждое Е- и Р-отношение имеет суррогат в качестве первичного ключа, который в случае Р-отношений служит также внешним ключом (обращаясь к соответствующему Е-отношению). В этой статье подробно обсуждаются некоторые преимущества суррогатов.
Здесь, вероятно, стоит заметить, что суррогаты не являются (как считают некоторые авторы) тем же, что и "идентификаторы кортежей", потому что последние идентифицируют кортежи, а суррогаты идентифицируют объекты, а значит, между ними не может быть никакого отношения типа один-к-одному. На самом деле между объектами и кортежами существует отношение типа один-к-одному только в случае Е-отношений (в терминах модели RM/T). Отсюда следует, что кортежи в базовых отношениях, отличных от Е-отношений, и кортежи в производных отношениях не имеют вовсе никакой очевидной связи с суррогатами.
Более того, идентификаторы кортежей обладают дополнительными преимуществами в производительности, что не свойственно суррогатам, поскольку доступ к кортежу через идентификатор кортежа происходит очень быстро (предполагается, что кортежи [базового отношения] отображаются непосредственно на физическую структуру хранения; это имеет место во многих современных реляционных программных продуктах). Кроме того, идентификаторы кортежа обычно скрыты от пользователя, тогда как суррогаты обычно нет, т.е. идентификатор кортежа нельзя сохранить как значение атрибута, а суррогат можно. Короче говоря, суррогаты являются логической концепцией, а идентификаторы кортежей — физической.
12.13. Hammer M.M., McLeod D. J. The Semantic Data Model: A Modelling Mechanism for Database Applications // Proc. 1978 ACM SIGMOD Intern. Conf. on Management of Data. — Austin, Texas, 1978.
Семантическая модель данных (Semantic Data Model — SDM) представляет собой другой формальный подход проектирования базы данных. Как и в модели объект/отношение, основное внимание в ней уделяется структурным аспектам и аспектам целостности и совсем немного внимания (или вообще никакого) — аспектам манипулирования (операторам). Об этом также можно прочесть в [12.14, 12.16].
12.14. Hammer M., McLeod D. Database Description with SDM: A Semantic Database Model // ACM TODS. — 1981. — 6, № 3. См. комментарий к [12.13].
12.15. Hull R., King R. Semantic Database Modeling: Survey, Applications, and Research Issues // ACM Сотр. Surv. — 1987. — 19, № 3.
Обширное введение в семантическое моделирование и связанные с ним вопросы. Эта статья является прекрасной отправной точкой для изучения семантического моделирования и связанных с ним проблем и тем.
12.16. Jagannathan D. et al. SIM: A Database System Based on the Semantic Data Model // Proc. 1988 ACM SIGMOD Intern. Conf. on Management of Data. — Chicago, 111., 1988.
Описание коммерческой СУБД на основе семантической модели данных, предложенной Хаммером и Мак-Леодом в [12.13].
12.17. Kent W. A Taxonomy of Entity-Relationship Models. — Частное сообщение, 1982.
12.18. Mannila H., Raiha K.-J. The Design of Relational Databases. — Wokingham, UK: Addison-Wesley, 1992.
Согласно предисловию эта книга является учебным пособием для студентов и библиографическим справочником по вопросам проектирования реляционных баз данных. В ней, с одной стороны, описана теория зависимостей и процедура нормализации, а с другой — модель объект/отношение, причем в каждом случае изложение ведется с формальной точки зрения. Ниже перечислены названия глав из этой книги, которые могут дать представление о ее содержании.
• Принципы проектирования.
• Ограничения целостности и зависимости.
• Свойства реляционных схем.
• Аксиоматизация зависимостей.
• Алгоритмы для задач проектирования.
• Отображения между диаграммами объект/отношение и схемами реляционных баз данных.
• Преобразования схем.
• Примеры проектирования баз данных.
Описанные в книге технологии были воплощены ее авторами в виде инструмента под названием Design By Example (макет по образцу).
12.19. 0lle T.W., Sol H.G., Verrijn-Stuart A.A. (eds.). Information Systems Design Methodologies: A Comparative Review. — Amsterdam, Netherlands: North-Holland;
New York, N.Y.: Elsevier Science, 1982.
Доклады конференции IFIP Working Group 8.1, в которых описаны 13 различных методик и результаты их воплощения для решения стандартной тестовой задачи. В книгу также включены обзоры некоторых предложенных подходов.
12.20. Peckham J., Maryanski F. Semantic Data Models // ACM Сотр. Surv. — 1988. — 20, № 3. Еще один вводный обзор.
12.21. Schmid H. A., Swenson J. R. On the Semantics of the Relational Data Base Model // Proc. 1975 ACM SIGMOD Intern. Conf. on Management of Data. — San Jose, Calif, 1975.
В работе представлена "базовая семантическая модель", которая предшествовала работе Чена с описанием модели объект/отношение, но была подобна этой модели (конечно, за исключением используемой терминологии, поскольку Шмид и Свенсон использовали термины независимый объект, зависимый объект и соединение вместо терминов Чена правильный объект, слабый объект и отношение соответственно).
12.22. Smith J.M., Smith D.C.P. Database Abstractions: Aggregation // CACM. — 1977.—20, №6. ^ См. аннотацию к [12.23].
12.23. Smith J.M., Smith D.C.P. Database Abstractions: Aggregation and Generalization // ACM TODS. — 1977. — 2, № 2.
Идеи, высказанные в статьях [12.22, 12.23], оказали значительное влияние на формулировку модели RM/T [12.5], особенно в области подтипов и супертипов.
12.24. Storey V.C. Understanding Semantic Relationships // The VLDB Journal. — 1993.—2, №4.
В аннотации к статье говорится, что семантические модели данных были развиты в сообществе исследователей баз данных с использованием таких абстракций, как подтип и агрегация; помимо хорошо известных понятий, некоторые дополнительные семантические понятия были созданы исследователями в таких дисциплинах, как лингвистика, логика и когнитивная психология. Также отмечается, что в статье исследуются некоторые из последних понятий и обсуждается их влияние на проектирование баз данных.
12.25. Sundgren В. The Infological Approach to Data Bases // J. W. Klimbie and K. L. Koffeman (eds.). Data Base Management. — Amsterdam, Netherlands:
North-Holland; New York, N.Y.: Elsevier Science, 1974.
"Информационно-логическим" ("infological") называется подход в семантическом моделировании, который долгие годы успешно использовался в Скандинавии.
12.26. Tasker D. Fourth Generation Data: A Guide to Data Analysis for New and Old Systems. — Sydney, Australia: Prentice-Hall of Australia Pty., Ltd., 1989.
Прекрасное практическое пособие по проектированию баз данных, в котором внимание главным образом уделяется индивидуальным объектам данных. Объекты данных разделены на три основных типа: именные, количественные и описательные. Именные обозначают объекты и в реляционном смысле относятся к первичным и внешним ключам. Количественные представляют собой меру или расположение согласно какой-то шкале (скорее всего, шкале дата/время) и могут быть подвергнуты обычным арифметическим манипуляциям. Все остальные объекты относятся к описательным. (Конечно, это краткое описание не может дать полного представления обо всей классификационной схеме.) В книге подробно обсуждается каждый из перечисленных типов объектов. Эти описания не всегда можно назвать "чисто реляционными", поскольку, например, использованное Таскером понятие "домена" не вполне отвечает реляционному смыслу этого термина. Однако в книге содержится достаточно материала, имеющего большое практическое значение.
12.27. Teorey T.J., Fry J.P. Design of Database Structures. — Englewood Cliffs, N.J.: Prentice-Hall, 1982.
Учебник по всем вопросам проектирования баз данных, который разделен на пять частей: введение, концептуальное проектирование, практическое проектирование (т.е. преобразование концептуального проектирования в конструкции, которые можно применить для конкретной СУБД), физическое проектирование и вопросы специализированного проектирования.
12.28. Teorey T.J., Yang D., Fry J.P. A Logical Design Methodology for Relational Databases Using the Extended Entity-Relationship Model // ACM Сотр. Surv. — 1986.—18, №2.
В представленную в этой работе "расширенную модель объект/отношение" добавлена поддержка обобщения и иерархий подмножеств (два варианта иерархий типов), обработка пустых значений и отношения, включающие больше двух участников.
12.29. Teorey T.J. Database Modeling and Design: The Entity-Relationship Approach. — San Mateo, Calif: Morgan Kaufmann, 1990.
Более современный учебник с описанием применения концепций модели объект/отношение и "расширенной" модели объект/отношение [12.28] для проектирования базы данных.