
- •Часть 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 Модель типа объект/отношение
12.1. Введение
Основной предмет обсуждения этой главы, а именно модель типа объект/отношение, по-видимому, является наилучшим примером класса моделей данных, которые называются "расширенными" или семантическими моделями. Семантическое моделирование было предметом интенсивных исследований в конце 1970-х и начале 1980-х годов, причем основным побудительным мотивом таких исследований (и формулировки проблемы, которую исследователи пытались разрешить) был следующий факт. Дело в том, что системы управления базами данных (реляционные или какие-либо другие) обладают весьма ограниченными сведениями о смысловом значении данных, хранящихся в некоторой базе данных. Обычно они "понимают" некоторые простые ограничения целостности, наложенные на некоторые простые атомарные значения (при этом всякая более сложная интерпретация возлагается на пользователя). Однако было бы замечательно, если бы системы могли чуть больше "понимать" и несколько разумнее отвечать на запросы пользователя, а также поддерживать более сложные (т.е. более высокоуровневые) интерфейсы пользователя. Например, было бы прекрасно, если бы язык SQL мог "понимать", что вес товара и количество поставок являются хотя и числовыми, но все же семантически разными величинами. При этом необходимо, чтобы соединение товаров и поставок на основе соответствия веса товара и количества поставок могло быть подвергнуто сомнению, если не отвергнуто совсем.
Конечно, понятие доменов в значительной степени относится к приведенному выше примеру, который служит прекрасной иллюстрацией того, что существующие модели данных не совсем избавлены ото всех семантических аспектов. Например, домены, потенциальные ключи и внешние ключи являются семантическими аспектами существующей реляционной. В качестве другого способа реализации семантики были разработаны различные "расширенные" модели, которые несут большую смысловую нагрузку, чем предложенные ранее модели. Перефразировав Кодда [12.5], можно сказать, что задача извлечения смыслового значения данных может выполняться бесконечно и углубление понимания этой проблемы будет сопровождаться постепенным прогрессом в этом направлении. Термин "семантическая модель", который часто используется по отношению к той или иной "расширенной" модели, в данном случае не совсем подходящий, поскольку предполагает, что модель построена таким образом, чтобы выявить всю семантику заданной ситуации. С другой стороны, понятие "семантическое моделирование" является довольно удачным названием целой области исследований, посвященных способам представления смыслового значения. В данной главе представлено краткое введение в некоторые базовые идеи этой области исследований, а затем более подробно описан подход на основе модели типа объект/отношение.
Замечание. Семантическое моделирование (особенно в тех случаях, когда исследования выполняются в контексте некоторого макета базы данных для некоторого особого предприятия или приложения — подробнее это будет описано ниже) имеет также несколько других названий: например, "моделирование данных", "моделирование типа объект/отношение" и "объектное моделирование". Здесь по некоторым причинам предпочтение отдается термину "семантическое моделирование".
• Термин "моделирование данных" не подходит, поскольку, во-первых, он перекликается с уже определенным ранее термином "модель данных", который обозначает формальную систему, состоящую из объектов, правил целостности и операторов, а во-вторых, такое название будет способствовать закреплению популярного заблуждения (см., например, [4.12]) о том, что модель данных (в приведенном выше смысле) включает только структуру данных.
• Также неудачным является термин "моделирование типа объект/отношение", поскольку в нем подразумевается существование только одного подхода к данной проблеме, тогда как на практике возможно несколько различных подходов. Тем не менее, термин "моделирование типа объект/отношение" хорошо известен, весьма популярен и принят в широком кругу специалистов.
• Относительно термина "объектное моделирование" нет никаких существенных возражений за исключением того, что он кажется более специализированным по сравнению с термином "семантическое моделирование" и предполагает некоторое смысловое ударение, которое не совсем подходит в данном случае.
Возвращаясь к главной теме нашего обсуждения, следует выделить причину включения данного материала в книгу. Идеи семантического моделирования могут быть полезны при систематическом проектировании базы данных даже при отсутствии непосредственной поддержки этих идей в СУБД. Идеи исходной реляционной модели использовались в качестве примитивного вспомогательного средства при проектировании макета базы данных задолго до появления любых коммерческих воплощений этой модели. Точно также идеи некоторой данной "расширенной" модели могут быть полезны в качестве вспомогательного средства при проектировании макета базы данных, несмотря на то что никаких коммерческих воплощений этих идей еще не существует. Действительно, было бы справедливо отметить, что на момент написания этой книги основное влияние идеи семантического моделирования оказали на проектирование баз данных, поскольку было предложено несколько технологий проектирования, основанных на том или ином семантическом подходе. Поэтому в данной главе акцент будет сделан на приложении идей семантического моделирования к задаче проектирования базы данных.
Замечание. Методологии проектирования, основанные на идеях семантического моделирования, часто называют нисходящими методологиями, поскольку они начинаются на высшем уровне абстракции с конструкций "реального мира" ("объектов" и т.д.) и заканчиваются на сравнительно низком уровне абстракции, представленном конкретной структурой макета базы данных.
Весь материал этой главы упорядочен следующим образом. Сначала приводится описание основных терминов, используемых в семантическом моделировании. Потом обсуждается наиболее известная из "расширенных" моделей — предложенная Ченом (Chen) модель типа объект/отношение (О/О), а затем рассматривается применение этой модели для проектирования базы данных. После этого предлагается краткий анализ некоторых аспектов модели О/О. И наконец, приводится резюме.