Программирование >>  Реализация целостности данных 

1 ... 21 22 23 [ 24 ] 25 26 27 ... 124


многим (рис. 3-13). Такое промежуточное отношение называется промежуточной таблицей Cjunction table); этот термин используется и при создании модели данных, где речь, конечно же, идет об отношениях, а не о

Эта связ огие ко многим

Сущность 1

Сущность 2

будет представлена в модели данных так: \

Сущность 1

Промежуточная таблица

i Сущность 2

Рис. 3-13. Для моделирования связи многие ко многим используется промежуточная таблица

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

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

Унарные связи

Итак, мы подробно рассмотрели различные типы двойных связей, то есть связей, в которых участвуют два отношения. В унарных связях существует только один участник - отношение, связанное с самим собой. Классический пример - связь между сущностями Employee и Manager. Если сотрудники, не являющиеся менеджерами, подчиняются кому-либо мжерон, то менеджер, как правило, подчиняется самому себе, а также вышестоящему менеджеру.



Принципы моделирования унарных связей не отличаются от принципов моделирования связей с двумя участниками - ключ-кандидат ссылочного отногпения добавляется в ссылающееся, Единственное различие в том, что и ссылочное, и ссылающееся отношения в данном случае - это одно и то же отношение. Таким образом, если для отношения Employee существует ключ-кандидат Идентификатор сотрудника), определенный на домене EmployeelD, то вам придется добавить к отногпению атрибут Л/о агег7/)(Идентификатор менеджера), также определенный на домене EmployeelD, как показано на рис. 3-14.

Employees.

EmployeelD LastName FirstName Title

TitleOf Courtesy

BirthDate

Hire Date

Address

City

Region

PostalCode

Country

HomePhone

Extension

Photo

Notes

ManagerlD

Puc. 3-14. Унарная связь существует, когда отношение связано с самим собой

Унарные связ гут иметь любу юсть. Унарные связи один ко многим помогают реализовать иерархии. Пример - орга-низаггионная структура компании, ясно прослеживаемая в связи Employee-Manager. Унарные связи многие ко многим , как и двойные связи этого типа, реализуются с помощью промежуточных таблигг. Такие связи могут быть необязательными для одной из участвующих в них сторож 3-14). Так, в большинстве организаций у генерального директора нет вышестоящего менеджера (акционеров компании мы в расчет не принимаем).

Тройные связи

Как правило, тройные связи представляют собой связи вида Xвыполняет ¥для2. Как и связи многие ко многим , их невозможно непос-



ЧАСТЬ елАцконмых баз данных

редственно в базе данных. Но для трой-

ных связей не существует единых правил моделирования, и в этом их отличие от отношений ко многим .

Рассмотрим пример на рис. 3-15. Продукт Moizarella di GiovannU который закупает компании ins et alcool alier*, поставляют две компании - Formaggi Fortini s.r.l.* и ForeTS derables . Однако невозможно узнать, какой именно из поставщиков поставил определенную партию этого продукта компании Vins et alcools Chevalier . Иными словами, тройная связь в модели данных утеряна. Однако при разработке моделей баз данных следует учитывать, что поставщики не просто поставляют имеющиеся у них в наличии продукты - они поставляют их конкретным клиентам.

VINET

Vins el alcools Chevalier

i:::Pfiift!f*i]

yiNET J ) 0248: QuBso Cab fales ,

VINET10248 sifiaaporesfiHoithiBh Fried Мве VINET 10246: Moiiarelladi Ginvanni

Mozzaralla di Giovanni agiji Fortini s.r.l. Moiiaralla di Gioyanni Forjts derables

Рас. 3-15. Отношения не позволяют лить, у какого поставщика компании 6 Vins et alcools Chevalier приобрела продукты

Чтобы полностью разъяснить ситуацию, рассмотрим отношения в типичной проблемной области (рис. 3-16). На этой диаграмме каждый продукт поставляется только одним поставщиком, и поддерживается тройная связь. Вы всегда можете узнать, какой именно постав-шик поставил определенный продукт.

Suppliers

IProducts

\-4 OrderDetails Ы-

Orders

Customers

Рис. 3-16. Типичная цепочка связей между сущностями, используем1ми для моделирования процесса заказа



1 ... 21 22 23 [ 24 ] 25 26 27 ... 124

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