
- •Часть 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.2. Общий подход
Общий подход к проблеме семантического моделирования характеризуется четырьмя основными этапами.
1. Прежде всего следует попытаться задать множество семантических концепций (понятий), которые могут быть полезны при неформальном обсуждении реального мира.
• Например, можно согласиться с тем, что мир состоит из объектов. (Хотя невозможно с заданной точностью утверждать, что является объектом, а что — нет. Несмотря на это, концепция объектов весьма полезна для описания реального мира, по крайней мере с интуитивной точки зрения.)
• Развивая эту концепцию, можно допустить, что объекты образуют типы объектов. Например, можно предположить, что все отдельные сотрудники являются экземплярами некоторого типа объекта EMPLOYEE (сотрудник). Преимущество такой группировки заключается в том, что все объекты определенного типа будут обладать некоторыми общими свойствами (например, получение сотрудниками зарплаты), а потому такая группировка может привести к некоторой (и совершенно очевидной) экономии представления. В реляционных терминах, например, общность выражается в заголовке отношения.
• Более того, можно согласиться с тем, чтобы каждый объект имел некое особое свойство, которое служит для идентификации этого объекта, т.е. с тем, чтобы каждый объект обладал идентичностью.
• Наконец, можно также предположить, что каждый объект может быть связан с другими объектами с помощью отношений.
И т.д. Однако здесь следует заметить, что все эти термины (экземпляр объекта, тип объекта, свойство, отношение и т.д.) определены не совсем точно или строго, поскольку некоторые из них являются всего лишь семантическими, а не формальными терминами. Например, первый термин не является формальным, а второй, третий и четвертый термины — являются.
2. Далее нужно определить множество соответствующих символических (т.е. формальных) объектов, которые могут быть использованы для представления описанных выше семантических концепций. Например, в расширенной реляционной модели RM/T [12.5] предлагается несколько особых видов отношений, которые называются Е- и Р-отношениями. Грубо говоря, Е-отношения (от entity-relations) представляют объекты, а Р-отношения (от property-relations) — свойства, однако Е- и Р-отношения, конечно, имеют некоторые формальные определения, тогда как объекты и свойства их не имеют.
3. Кроме того, нужно вывести множество формальных правил целостности для работы с такими формальными объектами. Например, модель типа RM/T содержит правило целостности под названием целостность свойств, которое утверждает, что для каждого элемента Р-отношения должен существовать соответствующий ему элемент Е-отношения (таким образом отражается тот факт, что каждое свойство должно быть свойством некоторого объекта).
4. Наконец, следует задать множество формальных операторов для манипулирования этими формальными объектами. Например, в модели RM/T присутствует оператор PROPERTY, который можно использовать с Е-отношением и всеми соответствующими Р-отношениями таким образом, чтобы собрать вместе все свойства данного объекта.
Объекты, правила и операторы, описанные в пунктах 2—4, вместе образуют расширенную модель данных, если эти конструкции действительно являются супермножеством конструкций одной из базовых моделей, таких как, например, базовая реляционная модель. Хотя на самом деле в таком контексте нет четкого различия между расширенной и базовой моделью. Однако здесь следует обратить пристальное внимание на то, что правила и операторы являются такой же частью расширенной модели, как и объекты (точно так же, как это организовано в реляционной модели). Тем не менее, с точки зрения проектирования баз данных операторы являются менее важной частью модели по сравнению с объектами и правилами целостности. Поэтому за исключением нескольких комментариев, посвященных операторам, основное внимание в этой главе уделяется не операторам, а объектам и правилам.
В пункте 1 упоминалась попытка определения множества семантических концепций, которые были бы полезны при описании реального мира. Некоторые из них, а именно объекты, свойства, связи и подтипы, показаны на рис. 12.1. Для каждой из этих концепций на рисунке приведено неформальное определение и несколько типичных примеров. Обратите внимание, что все эти специально подобранные примеры иллюстрируют возможность рассматривать один и тот же предмет реального мира одними пользователями как объект, другими — как свойство, а третьими — как отношение. (Этот пример прекрасно демонстрирует, почему невозможно дать строгое определение такого термина, как "объект".) Основная цель семантического моделирования (еще не совсем достигнутая) как раз и заключается в том, чтобы поддерживать такую гибкость интерпретации.
Понятие |
Неформальное определение |
Примеры |
ОБЪЕКТ |
Различимые объекты |
Поставщик, товар, поставка, сотрудник, отдел, человек, произведение, концерт, оркестр, дирижер, заказ, ассортимент заказов |
СВОЙСТВО |
Информация, описывающая объект
|
Номер поставщика, количество поставок, отдел сотрудника, рост человека, вид концерта, дата заказа
|
ОТНОШЕНИЕ |
Объект, который служит для организации взаимодействия двух или нескольких других объектов
|
Поставка (поставщик-товар), назначение (сотрудник-отдел)
|
ПОДТИП |
Тип объекта Y является подтипом типа объекта Х тогда и только тогда, когда каждый объект типа Y обязательно является объектом типа Х |
Тип "сотрудник" является подтипом типа "человек" |
Рис. 12.1. Некоторые полезные семантические концепции
В заключение следует заметить, что в предыдущих главах отношения рассматривались как своего рода отдельные объекты, причем подчеркивалось, что они таким же образом будут рассматриваться во всей книге. Кроме того, в качестве одного из преимуществ реляционной модели отмечалось единство представления всех объектов, включая зависимости между объектами, на основе отношений. Тем не менее, концепция отношений (так же, как и концепция объектов) действительно интуитивно полезна при описании реального мира; более того, представленный ниже в этой главе подход будет в значительной степени опираться на различия между объектами и отношениями. Поэтому в нескольких следующих разделах будет принята терминология на основе отношений, а некоторые другие более подробные сведения на эту тему будут добавлены позже.