ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 7740
Скачиваний: 53
96
внешних ключей может быть значительным, а потому для проектировщика
важно понимать какие атрибуты участвуют в одних связях, а какие – в других.
Более подробное описание видов связей и их обозначений на ER-
диаграммах приведено далее.
4.3.2 Виды связей между сущностями
Все связи между сущностями в ER-модели можно классифицировать по
нескольким критериям:
1) количество участвующих в связи сущностей;
2) мощность;
3) обязательность;
4) зависимость.
По количеству участвующих в связи сущностей все связи можно разде-
лить на бинарные, т. е. связи между двумя различными сущностями, и рекур-
сивные, когда сущность связана сама с собой. Все рассмотренные выше связи
между сущностями являются бинарными. Тем не менее, в БД иногда встреча-
ются и рекурсивные связи, когда один из неключевых атрибутов сущности свя-
зан с первичным ключом этой же сущности. Пример рекурсивной связи приве-
дён на рисунке 4.10.
Рис. 4.10 – Пример рекурсивной связи
Для хранения сведений обо всех сотрудниках организации создана сущ-
ность «Сотрудник». При этом у каждого сотрудника имеется начальник, кото-
рым очевидно является другой сотрудник организации. В подобных ситуациях
и возникает рекурсивная связь, приведенная на рисунке.
Также все связи можно разделить по критерию мощности.
Сотрудник
Номер (ПК)
ФИО
Дата рождения
Телефон
Должность
Начальник (ВК)
Подчиняется
97
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Мощность связи – количество экземпляров дочерней сущно-
сти, которое может существовать для каждого экземпляра ро-
дительской сущности.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Ранее нами уже были рассмотрены такие виды связей как «один-к-
одному», «один-ко-многим» и «многие-ко-многим», которые являются наибо-
лее простыми и понятными для классификации связей. Однако в различных но-
тациях классификация связей по мощности производится на более детализиро-
ванном уровне. Например, в IDEF1X связи по мощности делятся на следующие:
1) каждый экземпляр родительской сущности может иметь 0, 1 или бо-
лее связанных с ним экземпляров дочерней сущности;
2) каждый экземпляр родительской сущности должен иметь не менее
одного связанного с ним экземпляра дочерней сущности;
3) каждый экземпляр родительской сущности должен иметь не более од-
ного связанного с ним экземпляра дочерней сущности;
4) каждый экземпляр родительской сущности связан с фиксированным
числом экземпляров дочерней сущности [7].
В данном пособии подобная классификация приведена в качестве приме-
ра и использоваться на практике не будет. Для любой связи будет просто ука-
зываться 1 или М для каждой из участвующих в связи сущностей, как это пока-
зано на рисунке 4.9.
По признаку обязательности связь может быть обязательной, если в
данной связи должен участвовать каждый экземпляр сущности, или необяза-
тельной, если не каждый экземпляр сущности должен участвовать в связи.
Кроме того, связь может быть обязательной с одной стороны и необязатель-
ной – с другой.
По признаку зависимости сущностей связи делятся на идентифицирую-
щие и неидентифицирующие.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Идентифицирующая связь устанавливается между незави-
симой (родительский конец связи) и зависимой (дочерний конец свя-
зи) сущностями.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Экземпляр зависимой (дочерней) сущности определяется только через
отношение к родительской сущности. При установлении идентифицирующей
98
связи первичный ключ родительской сущности мигрирует в состав первичного
ключа дочерней сущности. В этом и есть смысл термина «зависимая сущ-
ность» – поскольку внешний ключ становится частью первичного, то сущность
просто не может существовать без указания значения внешнего ключа.
Классическим примером идентифицирующей связи является связь между
сущностями «Заказ» и «Заказ Товаров», изображенная на рисунке 4.11, а также
на рисунке 4.4, где связь и сущности уже реализованы в виде связанных реля-
ционных таблиц. В данном примере связывается информация о заказе клиента с
информацией о том, какие товары и в каком количестве входят в этот заказ.
Рис. 4.11 – Пример идентифицирующей связи
Как видно из рисунка, идентифицирующая связь изображается сплошной
линией. Сущность «Заказ Товаров» в данном примере является «зависимой», и
во многих нотациях изображается прямоугольником со скругленными углами.
Очевидно, что экземпляры зависимой сущности определяются только через от-
ношение к родительской сущности, т. е. не могут существовать сами по себе,
если не существует связанных с ними экземпляров-родителей. В данном случае
товары в заказ не могут быть добавлены, пока не существует самого заказа, т. е.
первичный ключ дочерней сущности не может быть определён, поскольку в его
состав входит внешний ключ.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
При установлении неидентифицирующей связи дочерняя
сущность остается независимой, а атрибуты первичного ключа
родительской сущности мигрируют в состав неключевых атрибу-
тов дочерней сущности.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Неидентифицирующая связь изображается пунктирной линией и встреча-
ется намного чаще, чем идентифицирующая. В неидентифицирующей связи эк-
земпляры дочерней сущности могут существовать независимо от родительской,
Заказ
Номер (ПК)
ФИО Клиента
Телефон
Дата
Заказ Товаров
Номер (ПК, ВК)
Товар (ПК)
Кол-во
Состоит
1
М
99
поскольку мигрировавшие атрибуты родительской сущности не входят в состав
первичного ключа.
На рисунке 4.12 изображен пример неидентифицирующей связи между
сущностями «Заказ» и «Клиент». Сущность «Заказ» является независимой, по-
скольку атрибут «КодКлиента» является простым внешним ключом, который
мигрировал из родительской сущности.
Рис. 4.12 – Пример неидентифицирующей связи
Кроме приведенных в классификации видов связи выделим ещё несколь-
ко важных терминов, которые в большей степени относятся к нотации IDEF1X,
но могут встретиться в литературе в ситуациях проектирования предметной об-
ласти на основе ER-моделей.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Определенной связью называется отношение между сущно-
стями, в котором каждый экземпляр родительской сущности свя-
зан с 0, 1 или более экземплярами дочерней сущности и каждый эк-
земпляр дочерней сущности связан с 0 или 1 экземпляром
родительской сущности. Другими словами, определенной называ-
ется связь типа 1:1 или 1:М.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Определенные связи между сущностями реализуются посредством ми-
грации первичного ключа родительской сущности в дочернюю, т. е. в дочерней
сущности появляется атрибут – внешний ключ. Пример определенной связи
приведен на рисунке 4.12.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Неопределенной связью называется отношение между двумя
сущностями, при котором каждый экземпляр первой сущности
связан с 0, 1 или более экземплярами второй сущности и каждый
экземпляр второй сущности связан с 0, 1 или более экземплярами
Заказ
Номер (ПК)
Дата
Адрес доставки
КодКлиента (ВК)
Клиент
КодКлиента (ПК)
ФИО Клиента
Телефон
Делает
1
М
100
первой сущности. Другими словами, определенной называется связь
типа М:М.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Неопределенные связи между сущностями реализуются на практике с
помощью добавления новой сущности и связывания двух имеющихся с новой с
помощью определенных связей (рис. 4.13). Механизм преобразования неопре-
деленных связей в определенные заключается в следующем:
1) каждая неопределенная связь преобразуется в одну новую сущность,
которая является дочерней по отношению к связываемым сущностям;
2) новой сущности присваивается уникальное имя;
3) между новой сущностью и каждой из связываемых сущностей уста-
навливается идентифицирующая определенная связь; каждой из этих
связей назначается имя;
4) первичные ключи обеих родительских сущностей мигрируют в об-
ласть первичного ключа новой сущности.
Рис. 4.13 – Реализация неопределенной связи
между сущностями «Заказ» и «Товар»
Связь типа «Категория» встречается в реальном мире, когда некоторые
сущности являются определенными категориями других сущностей. Например,
«Преподаватель» – это определенная категория сущности «Сотрудник». Такие
сущности, которые называются сущностями подтипа, хорошо использовать для
хранения информации, относящейся только к какому-то конкретному подтипу.
Сущность, на основе которой строятся подтипы, называется супертипом и со-
держит в себе атрибуты общие для всех подтипов.
Заказ
НомерЗаказа (ПК)
Клиент
Дата
Сумма
Товары Заказа
НомерЗаказа (ПК, ВК)
НомерТовара (ПК, ВК)
Цена
1
М
Товар
НомерТовара (ПК)
Наименование
Категория
Цена
Кол-во
М
1