Скачиваний:
95
Добавлен:
30.04.2013
Размер:
112.64 Кб
Скачать

Концепции моделирования

Часть I

Рис. 4.5. Включающее типизирующее отношение между сущностью верхнего уровня ПЕРСОНА и двумя подчиненными характеристическими сущностями КЛИЕНТ и СОТРУДНИК.

Обратите внимание на отсутствие символа подтипа X, указывающее, что это включающее типизирующее отношение в нотации IE системы ERwin. Представленное бизнес-правило утверждает, что экземпляр сущности ПЕРСОНА может быть одновременно сущностями КЛИЕНТ и СОТРУДНИК.

Рис. 4.6. Отношение многие-ко-многим между сущностями СЛИВОЧНАЯ ПОМАДКА и МОРОЖЕНОЕ.

В нотации IE, ERwin представляет отношения многие-ко-многим непрерывной линией с "птичьей лапкой" на обоих концах.

Рекурсивные отношения

Рекурсивное отношение - это неидентифицирующее отношение между двумя сущностями, которое указывает, что экземпляр сущности может быть связан с другим экземпляром той же самой сущности. При рекурсивном отношении родительская и подчиненная сущности совпадают. На Рисунке 4.7 показаны примеры двух реализаций рекурсивного отношения для сущности СОТРУДНИК, с использованием названия роли и без него. Обратите внимание, что ERwin "унифицирует" атрибуты внешнего ключа и первичного ключа, когда название роли не используется. Использование имени роли приводит к размещению внешнего ключа в качестве неключевого атрибута.

ПРИМЕЧАНИЕ Поскольку рекурсивные отношения могут оказаться непривычными для пользователей и начинающих разработчиков моделей, хорошей практикой является использование названий ролей для мигрирующих атрибутов. В последующих статьях будет описано использование названий ролей и интересные особенности унификации в ERwin.

Рис. 4.7. Примеры реализации рекурсивных отношений с использованием названия роли и без него в сущности ПЕРСОНА.

Заметьте, что без названия роли ERwin комбинирует атрибуты внешнего и первичного ключей.

Количество элементов отношения

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

  • Один-к-одному (1:1) - один и только один экземпляр сущности связан с одним и только одним экземпляром другой сущности.

  • Один-ко-многим (1:N) - один и только один экземпляр родительской сущности связан со многими экземплярами подчиненной сущности.

  • Многие-ко-многим (M:N) - много экземпляров одной сущности связаны с многими экземплярами другой сущности (также называется неспецифическим отношением).

Один-к-одному

В отношении один-к-одному один и только один экземпляр сущности связан с одним и только одним экземпляром другой сущности.

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

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

Рисунок 4.8 демонстрирует отношение один-к-одному между сущностями ПЕРСОНА и АДРЕС ПЕРСОНЫ.

Рис. 4.8 Пример отношения один-к-одному между сущностями ПЕРСОНА и АДРЕС ПЕРСОНЫ.

Представленное бизнес-правило утверждает, что экземпляр сущности ПЕРСОНА может иметь ровно один адрес. Как и многие другие отношения один-к-одному, это отношение в действительности является некорректно представленным в модели отношением один-ко-многим.