Дополнительные характеристики связей. Группировка связей. Неперемещаемые связи

Обобщенные сущности.

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

Обобщенная сущность включает в себя несколько вложенных сущностей. Выглядит это так, как показано на рисунке 4.6.

Рис. 4.6 Обобщенная сущность и вложенные сущности.

На рисунке мы видим результат более подробного анализа сущности «Студент». В результате этого анализа мы выяснили, что у нас имеется три разновидности студентов – обучающиеся на дневном отделении, на заочном отделении и на вечернем отделении. У каждой разновидности есть свои специфические атрибуты (пример условный, поэтому атрибуты приведены также условно). То есть, имеет смысл показать эти три разновидности при помощи вложенных сущностей, чтобы подчеркнуть отличие между ними и в явном виде распределить атрибуты.

Вложенные сущности обладают атрибутами обобщенной сущности и добавляют к ним свои, присущие только ей. Очевидно, что у каждой вложенной сущности должны быть такие атрибуты, иначе ее выделение ничем не оправдано.

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

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

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

Рис. 4.7 Группировка связей.

В приведенном примере мы анализируем разные варианты заключения договора на обучение. Нам удалось выделить три возможных варианта. Их количество и атрибуты в данный момент не принципиальны и показаны условно. Важно, что студент может заключить только один из них, то есть каждый экземпляр сущности «Студент» может участвовать только в одной из трех связей. Такие связи образуют группу, и чтобы это показать, на диаграмме они объединяются дугой.

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

Рис. 4.8 Неперемещаемая связь.

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


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



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