Программирование >>  Хронологические базы данных 

1 ... 157 158 159 [ 160 ] 161 162 163 ... 348


важной частью модели по сравнению с объектами и правилами целостности. Поэтому за исключением нескольких посвященных операторам комментариев основное внимание в этой главе уделяется именно объектам и правилам.

Напомним, что на первом этапе была предпринята попытка выявить множество семантических концепций, которые были бы полезны для описания реального мира. Некоторые из этих концепций, а именно - сущности, свойства, связи и подтипы, представлены в табл. 13.1 с указанием неформального определения и приведением нескольких типичных примеров. Обратите внимание, что все эти специально подобранные примеры иллюстрируют возможность рассмотрения одного и того же объекта реального мира одними пользователями в качестве сущности, другими- в качестве свойства, а третьими - в качестве связи. (Этот пример прекрасно демонстрирует, почему невозможно дать строгое определение такого термина, как сущность .) Одна из целей семантического моделирования (несомненно, полностью достигнутая) как раз и заключается в поддержке такой гибкости интерпретации.

Таблица 13.1. Некоторые полезные семантические концепции

Понятие

Неформальное определение Примеры

СУЩНОСТЬ (Entity)

Некоторый отличимый объект

Поставщик, деталь, поставка

Работник, отдел, человек

Произведение, концерт, оркестр, дирижер

Заказ на поставку, серия заказов

СВОЙСТВО Элемент информации, описы-(Property) вающий сущность

Номер поставщика, поставляемое количество

Отдел работника, рост человека Тип концерта Дата заказа

СВЯЗЬ Сущность, которая служит для

(Relationship) обеспечения взаимодействия между двумя или более другими сущностями

Поставка (поставщик - деталь)

Должность (работник - отдел)

Запись (произведение - оркестр - дирижер)

ПОДТИП Сущность типа Y является (Subtype) подтипом сущности типа X

тогда и только тогда, когда каждый экземпляр сущности типа Y обязательно является экземпляром сущности типа X

Работник является подтипом сущности Человек

Концерт является подтипом сущности Произведение

Кроме того, следует отметить, что вполне возможно возникновение конфликтов между терминами, которые представлены в табл. 13.1 и используются на семантическом уровне, и терминами, которые используются в рамках выбранного формального подхода, например в реляционной модели. В частности, во многих схемах семантического моделирования вместо термина свойство используется термин атрибут, но при этом совсем не обязательно подразумевается, что такой атрибут представляет (или отображается на)



то же самое, что и атрибут реляционного уровня. Еще одним (важным!) примером может быть то, что концепция типа сущности, как она понимается в семантическом моделировании, отличается от концепции типа, которая рассматривалась в главе 5. Точнее говоря, подобным типам сущностей в реляционном проекте соответствуют переменные-отношения, а потому они, очевидно, не соответствуют реляционными типам атрибута (доменам). Однако по перечисленным ниже причинам они не полностью соответствуют и типам отношений.

l.Ha семантическом уровне некоторые базовые типы отношений, вероятно, будут соответствовать типам связей, а не типам сущностей.

2. Говоря упрощенно, производные типы отношений могут вообще ничему не соответствовать на семантическом уровне.

Путаница при определении этих уровней (в частности, вследствие несогласованности используемой терминологии) как в прошлом, так и в настоящем часто служит причиной дорогостоящих ошибок (см. раздел 25.2 главы 25).

В заключение следует заметить, что в главе 1 связи рассматривались как сущности особого рода, причем подчеркивалось, что подобным же образом они будут рассматриваться во всей книге. Кроме того, в главе 3 как одно из преимуществ реляционной модели отмечалось единство представления всех типов сущностей, включая связи, посредством переменных-отношений. Тем не менее концепция связей (так же, как и концепция сущностей) действительно интуитивно полезна при описании реального мира. Более того, представленный ниже, в разделах 13.3-13.5, подход к проектированию базы данных будет в значительной степени опираться на различия между сущностями и связями. Поэтому в нескольких следующих разделах будет принята терминология, предусматривающая разделение понятий сущностей и связей, однако в разделе 13.6 по этому вопросу будут представлены некоторые дополнительные замечания.

13.3. Модель сущность/связь

Как уже упоминалось в разделе 13.1, одним из наиболее известных и получивших широкое распространение методов семантического моделирования является построение модели сущность/связь (или ER-модели). Этот подход строится на использовании модели сущность/связь , предложенной Ченом в 1976 году [13.5] и с тех пор неоднократно усовершенствовавшейся как самим Ченом, так и многими другими исследователями (об этом можно прочесть, например, в [13.13], [13.40]-[ 13.42]). Дальнейшее обсуждение в настоящей главе, в основном, посвящено именно данному подходу. (Следует подчеркнуть, что модель сущность/связь является далеко не единственной расширенной моделью- их было предложено достаточно много. В частности, в [13.5], [13.13], [13.25] и особенно в [13.19] приведены общие вводные сведения по некоторым из них, а в [13.22], [13.31] - вводные обзоры по данной теме.)

ER-модель включает аналоги всех семантических объектов, представленных в табл. 13.1, каждый из которых подробно рассматривается далее в этой главе. Прежде всего отметим, что в [13.5] была предложена не только сама ER-модель как таковая, но и соответствующая ей технология построения диаграмм, получивших название ER-диаграммы . Более подробно ER-диаграммы описываются в следующем разделе, а на рис. 13.1 показан простой пример подобной диаграммы, взятый из [13.5]. Это



пример представления структуры данных некоторой производственной компании (KnowWare, Inc.). Он будет полезен при изучении последующего материала этой главы и подробно описывается ниже. (Это расширенная версия ER-диаграммы, приведенной на рис. 1.5 в главе 1.)

department


part


dependent

Рис. 13.}. Диаграмма модели сущность/связь (сокращенная версия для рассматри-вае.мого примера)

Замечание. Большинство рассматриваемых в следующих подразделах идей хорошо известно тем, кто знаком с реляционной моделью. Но, как будет показано, между используемыми в этих двух моделях терминами существуют определенные различия.

Сущности

Работа [13.5] начинается с определения сущности (entity) как предмета, который может быть четко идентифицирован . При этом сущности подразделяются на сильные и слабые. Слабой называется такая сущность, существование которой зависит от другой сущности, т.е. она не может существовать, если этой другой сущности не существует. Например, на рис. 13.1 сущность DEPENDENT (подчиненный работник) является слабой, поскольку она не может существовать (в контексте данной базы данных), если не существует соответствующей сущности EMPLOYEE (работник). В частности, если сведения о некотором работнике (сущность EMPLOYEE) будут удалены, то и сведения обо всех зависящих от него работниках (сущности DEPENDENT) также будут удалены. Сильной называется сущность, которая не является слабой. В нашем примере сущность EMPLOYEE - сильная.

Замечание. Некоторые авторы вместо термина сильная сущность используют термин нормальная (regular) сущность .



1 ... 157 158 159 [ 160 ] 161 162 163 ... 348

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика