Моделирование взаимосвязей между сущностями

       

Сущность


Определение сущности

Сущностью называется имеющее особый смысл, существующее в действительности или воображаемое явление или объект, информация о котором подлежит запоминанию или выяснению.

Рисунок 3-1. Сущность

Изображение сущности

На схемах сущность изображается в виде блока (прямоугольника с закругленными углами) с именем в середине. Именем может быть существительное единственного числа, записываемое заглавными буквами.

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

Имена сущностей

Имя сущности может представлять тип или класс объекта, но не конкретное значение. В нашем примере именем сущности не могут стать ни "Хитроу", ни "Джон Ф. Кеннеди" - конкретные значения сущности АЭРОПОРТ.

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

Рисунок 3-2. Пример сущности



Фэйроукс - небольшой аэродром на юге Англии, на котором, однако, есть контрольно-диспетчерский пункт, таможенный досмотр, иммиграционная служба и т.п.


...ВЕРТОЛЕТ, который является разновидностью САМОЛЕТА, ...

Если сущность является и супертипом, и подтипом одновременно, используйте обе фразы:

...АЭРОПЛАН, который является разновидностью САМОЛЕТА и должен быть либо ПЛАНЕРОМ, либо УПРАВЛЯЕМЫМ АЭРОПЛАНОМ, ...

Проверка правильности задания подтипа

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

Инвертированный синтаксис

Запишем утверждение наоборот, например:

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

Установление различий между подтипами

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

  • На уровне реализации добавляется новый элемент данных, которому присваиваются значения, допустимые для каждого из возможных подтипов. Этот элемент данных можно назвать, например, ПОДТИП СУЩНОСТИ (в нашем случае ПОДТИП САМОЛЕТА).


  • На прикладном уровне вы можете завести атрибут, использующийся для той же цели. Так, например, атрибут "пол" со значениями "мужской" и "женский" дает нам два подтипа сущности ЛИЧНОСТЬ.


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


  • Так, например, сущность ЗАКАЗ может иметь следующие три подтипа:

    Подтип

    Описание условий и/или значений

    ОЖИДАЕМЫЙ ЗАКАЗ

    где индикатор подтверждения = no

    ПОДТВЕРЖДЕННЫЙ ЗАКАЗ

    где индикатор подтверждения = yes

    И дата выполнения неизвестна или находится в будущем

    ВЫПОЛНЕННЫЙ ЗАКАЗ

    где дата выполнения известна И = текущей или находится в прошлом

    Пересечение подтипов. (Ортогональные подтипы)

    Иногда бывает удобно иметь пересекающиеся или т.н. ортогональные подтипы; то есть, если имеется несколько способов разбиения сущностей на подмножества.


    Это имеет смысл тогда, когда сущность может играть несколько ролей; например, такие сущности, как ЛИЧНОСТЬ или ОРГАНИЗАЦИОННАЯ ЕДИНИЦА.

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

    Так, например, две совокупности подтипов для сущности ЛИЧНОСТЬ именуются ВИД ЗАНЯТОСТИ и ПОЛ.

    Вхождение сущности ЛИЧНОСТЬ, идентифицируемое как СОСТОЯЩАЯ НА СЛУЖБЕ, имеет даты начала и окончания службы. ЛИЧНОСТЬ, идентифицируемая как ИСПОЛНЯЮЩАЯ ЗАКАЗЫ, имеет связь с ЗАКАЗЫВАЮЩЕЙ ОРГАНИЗАЦИОННОЙ ЕДИНИЦЕЙ, которая нанимает ее. Поскольку у нас возникают пересекающиеся подтипы, было бы удобнее каждой из совокупностей присвоить наименование. В нашем примере мы выбрали наименование ВИД ЗАНЯТОСТИ.

    Рисунок 7-2. Совокупность подтипов ВИД ЗАНЯТОСТИ



    В зависимости от значения атрибута "пол" вхождение сущности ЛИЧНОСТЬ относится к подтипу МУЖЧИНА или ЖЕНЩИНА. Для удобства этой совокупности подтипов присвоено наименование ПОЛ.

    Рисунок 7-3. Совокупность подтипов ПОЛ



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

    Следует заметить, что дополнительные правила, относящиеся к подтипам, накладывают ограничения на функции, создающие или корректирующие эти сущности, - ссылка делается уже на определение функции для подтипа вместо супертипа.

    Функция "Создать вхождение с именем ИСПОЛНЯЮЩАЯ ЗАКАЗЫ" подразумевает инициализацию всех атрибутов, описанных для данного подтипа, а также всех атрибутов, унаследованных им от сущности ЛИЧНОСТЬ. Мы должны также предусмотреть связь с ЗАКАЗЫВАЮЩЕЙ ОРГАНИЗАЦИОННОЙ ЕДИНИЦЕЙ, которая нанимает ИСПОЛНЯЮЩУЮ ЗАКАЗЫ. Кроме того, у этого подтипа отсутствует атрибут "дата начала службы": этот атрибут присущ только подтипу СОСТОЯЩАЯ НА СЛУЖБЕ.

    Справочная сущность

    Термин "справочная сущность" используется для обозначения такой сущности, в которую не входит ни одна из обязательных линий связи. (Обычно на одной схеме таких сущностей набирается немного.) Эта сущность используется для дополнения описания других сущностей.



    Сущности, описывающие тип объекта (например, ТИП САМОЛЕТА), зачастую выступают в качестве справочных сущностей, так же как и сущности, подобные ОРГАНИЗАЦИОННОЙ ЕДИНИЦЕ и ЛИЧНОСТИ. Вхождения справочной сущности могут существовать самостоятельно, безотносительно к другим объектам.

    Граничная сущность

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

    Рисунок 7-4. Справочные и граничная сущности



    Определение сущности

    Для того, чтобы считать анализ информационного содержимого сущности завершенным, мы должны иметь следующее:

  • имя


  • множественное число


  • синонимы


  • объемы и, если возможно, темпы роста


  • описание


  • примечания/замечания,


  • а также все, что связано с этой сущностью:

  • атрибуты (по меньшей мере два)


  • связи (как минимум одну)


  • уникальный идентификатор (как минимум один)


  • функции, с которыми она связана (как минимум одна).


  • Полностью определение сущности описано в Приложении C.

    Требования к распределенной обработке

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

    Детализация определения

    Полное и детализированное определение вместе со всеми правилами показано в Приложении C, где приводятся стандартные формы, которые вам нужно заполнять.


    Содержание раздела