Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dbbook(2010.04.15).pdf
Скачиваний:
51
Добавлен:
09.06.2015
Размер:
2.14 Mб
Скачать

веден на рис. 5.17. В примере на все документы имеются ссылки. Поэтому какой-либо документ можно будет удалить, если предварительно из отношения Ссылки удалить ссылки на него.

Рис. 5.17.: Сетевая рекурсия. Пример в табличной форме (см. 5.5.4)

Построения в данном примере укладываются с точностью до наименований в схему абстрактных построений в терминах «Узлы – КодУ – Дуги – КодУ-Из – КодУ-На» : эти термины заменяются на «Документы – МнемоД – Ссылки – МнемоД-Из – МнемоД-На».

5.6. Ассоциация

Ассоциация реализуется как взаимосвязь между несколькими родительскими и одним дочерним классом, описываемая связями различных видов – полностью или неполностью идентифицирующими, обязательными или необязательными неидентифицирующими. Родительский класс может быть и один, как, например, в сетевой рекурсии, но число связей, идущих от дочернего класса, должно

быть не менее двух (иначе теряется смысл ассоциации как «объединения»). Дочерний класс в ассоциации в общем случае называется классом ассоциативных сущностей. В частном случае, когда класс ассоциативных сущностей не имеет собственных дополнительных атрибутов и содержит только атрибуты, мигрировавшие вместе с ключами из родительских классов, такой класс называется классом именующих сущностей. Ассоциация называется n-арной, если число определяемых в ней связей равно n (n > 2).

Примечание. При n = 2 ассоциация называется бинарной, при n = 3 – тернарной

Ассоциации используются, в частности, для детализации (разрешения) связей многие-ко-многим (0 : : : 1 : 0 : : : 1).

5.6.1. Детализация связей многие-ко-многим

Построим абстрактные диаграммы (рис. 5.18, 5.19), детализирующие связь многие-ко-многим (0 : : : 1 : 0 : : : 1) в реляционной модели.

Рис. 5.18.: Детализация связей многие-ко-многим. Абстрактная презентационная диаграмма

Приведенной схемой описывается двудольный граф (рис. 5.20), и потому для обозначения связи между узлами используется термин «ребро».

Рис. 5.19.: Детализация связей многие-ко-многим. Абстрактная ключевая диаграмма

Примечание. Здесь, разумеется, собственные Атрибуты классов сущностей УзлыA и УзлыB не обязаны совпадать

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

Как прийти к подобным построениям? Пусть есть некоторые множества узлов, соответствующие долям графа:

УзлыA(КодУA, Атрибуты) primary key(КодУA)

УзлыB(КодУB, Атрибуты) primary key(КодУB)

Ребра, связывающие эти узлы, описываются парой ссылок (КодУA, КодУВ). Из этих элементар-

Рис. 5.20.: Пример двудольного графа

ных соображений возникает класс ассоциативных (в данном случае именующих) сущностей Ребра:

Ребра(КодУA, КодУB) primary key(КодУA, КодУB)

foreign key(КодУA) references УзлыA(КодУA) foreign key(КодУB) references УзлыB(КодУB)

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]