|
Программирование >> Реляционные базы данных
(a) В модели E/R одно имя приписывается связи в обоих направлениях, а в ODL отдельно определяются связь и ее обращение. Например, обратные связи Movie ;: Stars и Star:: starredin на рис. 2.6 а модели E/R были бы представлены единственной связью, (b) Связи в E/R могут соединять более двух множеств сущностей, а связи ODL - максимум два класса. Пример 2.7. На рис. 2.8 изображена диаграмма E/R, представляющая ту же самую информацию о реальном мире, что и описание ODL на рис. 2.6. Множествами сущностей являются Movies, Stars и Studios. Чтобы выразить небольщое различие между множествами сущностей и классами, имена первых пишутся во множествен-1ЮМ числе, имена вторых в единственном. Put. 2.8. Диогроммо су1цнос -сввзи дли БД филылое М1Южество сущностей Movies имеет те же четыре атрибута, что и класс Movie на рис. 2.6: название, год, длину и тип фильма. Аналогично, два других множества имеют атрибуты имени и адреса, которые были описаны для соответствующих классов ODL. На рис. 2.8 видны также связи, соответствующие связям из ODL-опнсания на рис. 2.6. Одно из них Stars-in содержит информацию пары обратных связей stars и starredin между ODL-классами Movie и Star, E/R-связь Owns на рис. 2.8 представляет обратные связи Movie:: ownedBy и Studio:: Owns. Стрелка, указывающая на множество Studios, означает, что каждым фильмом владеет единственная студия. □ 2.2.1 Множественность E/R-связей Как было показано в примере 2.7, для выражения множественности связей в E/R диаграммах можно применять стрелки. Если между множествами Е и f есть связь типа многие-к одному , используется стрелка, указывающая на F. Она означает, что каждая сущность из множества Е связана только с одной сущностью из множества F. Однако сущность из Сможет Ъъпъ связана с многими сущностями в £ Согласно такому принципу, связь типа олин-к-одиому между множествами Е и F выражается стрелками, указывающими и на f, и на F. Например, на рис. 2.9 показаны два множества Studios и Presidents, а также связь между ними Runs (атрибуты не показаны). Предполагается, что президент может возглавлять только одну студию, а у студии может быть только один президент, что и выражено стрелками, указывающими на оба мьюжества. Studios Рис. 2.9. Сеязь типе один-к-одноллу Визуализация E/R-связей Зачастую Е/Я-связи удобно изображать таблицей, каждая строка которой представляет пару сущностей, вовлеченных в данную связь. Например, связь Siors-in можно представить так:
Конкретного способа, которым должны реализовываться связи, не существует ни U E/R-моделях, ни в ODL. Такая таблица иногда называется множеством отношений для конкретной связи. Элементы этого множества - строки таблицы. Их можно представить в виде кортежей с компонентами для каждого множества сущностей. Например, кортежем во множестве отношений для связи Stars-in является пара (Основной инстинкт, Шерон Стоун) 2.2.2 Многосторонние связи в отличие от ODL в E/R-моделях удобно определять связи между несколькими множествами. Однако на практике тернарные (трехсторонние) связи или связи еше более высокого порядка встречаются довольно редко. Многосторонние связи в E/R-моделях изображаются линиями, соединяющими ро.мб (связь) с каждым из участвующих в данной связи множеств. Рис. 2.10. Трехсторонняя связь Пример 2.8. На рис. 2.10 изображена связь Contracts между студией, кинозвездой и фильмом. Она означает, что студия заключает с кинозвездой контракт на участие в фильме. В общем случае значением E/R связи можно считать множество кортежей, компонентами которых являются сущности, вовлеченные в данную связь, как было показано выше в тексте Визуализация E/R-связей , выделенном рамкой. Например, связь Contracts можно описать трехмерными кортежами вида (сгудия. кинозвезда, фильм) Огранзйгчсенные возможности применения стрелок для выражения многосторонних связей Для выражения связи между тремя или более участниками недостаточно ставить или не ставить стрелки на линиях, идущих к ромбу связи. Вполне реальную ситуацию с помощью стрелок описать Невозможно. Например, согласно рис. 2.10, стУДия является функцией только фильма, а не кинозвезды и фильма, вместе взятых, так как фильм производится единственной студией. В принятой нотации такую ситуацию невозможно отличить от случая трехсторонней связи, когда множество, на которое указывает стрелка, является функцией двух других множеств. В разделе 3.5 будут введены формальные обозначения - функциональные зависимости, позволяющие описать все возможные альтернативы. 2.2.3 Роли в связях Одно множество сущностей может многократно фигурировать в одной и той же связи. Поэтому от символа связи к множеству проводится столько линий, сколько раз это множество участвует в данной связи. Каждая из таких линий обозначает радь, которую множество играет в связи. Пример 2.9. На рис. 2.11 изображена связь Seguel-of ииожестт Movies с самим собой. Каждая связь - это связь между двумя фильмами, один из которых является продолжением другого. Для различения этих двух фильмов в рамках данной связи одна линия отмечена ролью Original, а другая ролью Sequel, которые обозначают исходный фильм и его продолжение соответственно. Предполагается, что у фильма может быть много продолжений, но для каждого продолжения есть только один исходный фильм. Таким образом, стрелка E/R-диаграммы на рис. 2.11 показывает связь типа многие-к-одному множества Sequel с множеством Original. □ Original Sequel Pw. 2.П. Связь с ролями В многосторонних связях стрелка, указывающая на множество Е, означает, что из всех других вовлеченных п эту связь множеств выбирается по одной сущности, связанной с единственной сущностью в Е. (Заметим, что такое определение - это обобщение понятия множественности, применявшегося для дву.хсторонних связей.) На рис. 2.10 стрелка, указывающая на множество Studios, означает, что каждая кинозвезда может иметь контракт иа участие в конкретном фильме только с одной ст>Дией. Однако здесь нет стрелок, указывающих на Srors или Movies. Студия может заключать контракт иа участие в фильме со многими звездами, а кинозвезда может заключить со студией контракт на участие в нескольких фильмах. □
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |