Уникальный идентификатор

Связи

Разрешение связей многие-ко-многим (resolution of many to many relationship). Связи многие-ко-многим будут весьма часто встречаться на ранних эта­пах - разработки стратегии и анализа. К концу этапа анализа все они должны быть разрешены. Разрешение дости­гается введением новой переходной сущности, разделяющей окончания такой связи, как это показано на рис. 7.32. Рис. 7.32. Разрешение связи многие-ко-многим с помощью переходной сущности.
Взаимоисключаемость (exclusivity). Две или более связей одной и той же сущности могут оказать сявзаимоиск­лю­чаю­щи­ми. Этот факт представляется поперечной дугой, пересекаю­щей окончания всех соответствующих связей, с небольши­ми точками или кружками в местах пересечения (рис. 7.33). Рис. 7.33. Использование исключающей дуги для моделирования ситуации "либо-либо".

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

Свойства взаимоисключающих связей:

· Окончания связей, которые пересекает поперечная дуга, должны быть либо все обязательными, либо все факультативными.

· Окончание связи может пересекать только одна поперечная дуга.

· Почти всегда дуги пересекают окончания "многие".

· Поперечные дуги не могут пересекать связи, идущие от разных сущностей, а также связи, исходящие из подтипа и его супертипа.

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

Непереместимые связи (non-transferable). Как правило, экземпляр сущности может быть соединен той или иной связью с некото­рым экземпляром другой сущности. В дальнейшем, однако, это соединение может быть разорвано, и исходный экземпляр может быть соединен с другим экземпляром того же типа, что и раньше.

Если это недопустимо, говорят, что связь (сторо­на связи) является непереместимой. Непереместимая связь поме­ча­ет­ся ромбиком у окончания (см. рис. 7.34). Нет никакого смысла перемещать купон из одного билета в другой, однако вполне может потребоваться переписать его на другой рейс, например, если число пассажиров превысит количество посадочных мест. Рис. 7.34. Пример непереместимой связи.
Квалифицированная степень (qualified degree). Иногда бывает очень важно иметь возможность указать пределы для степени связи, ее стандартное, максимальное, среднее и максимальное значение. В дальнейшем, эта информация может оказаться крайне необходимой для проектиров­щиков. Используйте необходимые символы =, >, >=, <, <=. Рис. 7. 35.Квалифицированная степень.

Избыточные связи (redundant relationship). ER-диаграмма не должна содержать связей, которые всегда, при любых обстоятельствах, могут быть выведены из других связей. В базах данных избыточность является распрос­тра­ненным средством достижения необходимого быстродействия системы. Однако решения такого рода должны приниматься проектировщиком и не должны предопределяться (возможно, некорректно) системным аналитиком.

Каскадное удаление (cascade delete). В реальном мире мы, когда теряем о чем-то все сведения, часто неявно теряем и все сведе­ния о каких-то других взаимосвязанных вещах. Например, если мы удалим все сведения о БИЛЕТЕ, мы неявно удалим и все сведения о его КУПОНАХ. КУПОНЫ (дети) существуют исключительно в контек­сте их связей с БИЛЕТАМИ (родителями). Это явление известно как каскадное удаление и имеет место для неко­то­рых сущностей, расположенных у окончания "многие". В ситу­а­ци­ях, когда каскадное удаление неприменимо, часто действует неявное правило, запрещающее удаление независимых сущностей (родителей). Например, нельзя удалить ЭКИПАЖ до тех пор, пока существуют его ЧЛЕНЫ.

Для представления различных правил удаления сущностей используется указатель каскадного удаления:

· X = удалить всех детей при удалении родителя;

· C = запретить удаление родителя, если существуют какие-либо дети;

· N = удаление родителей и детей может осуществляться независимо.

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

Каскадное обновление (cascade update). Каскадное обновление заключается оно в следующем: при изменении уникального идентификатора (первичного ключа) родителя его новое значение автоматически используется для замены всех внешних ключей, которые он образует.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: