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

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

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

ПРИМЕЧАНИЕ Большинство разработчиков моделей согласны с мнением, что логическая модель должна содержать только отношения один-ко-многим.

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

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

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

Многие-ко-многим

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

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

ПРЕДОСТЕРЕЖЕНИЕ Отношения многие-ко-многим являются логическими и не могут быть представлены в физической модели в ERwin. ERwin автоматически создает ассоциативные сущности для разрешения отношений многие-ко-многим когда модель преобразуется из логической в физическую.

Рисунок 4.10 показывает отношение между сущностями ПЕРСОНА и АДРЕС ПЕРСОНЫ, представленное в модели в виде отношения многие-ко-многим.

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

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

Обязательность отношения

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

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

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

Рис. 4.11. Обязательное отношение между сущностями ПЕРСОНА и АДРЕС ПЕРСОНЫ.

Представленное бизнес-правило утверждает, что экземпляр сущности ПЕРСОНА должен иметь хотя бы один адрес. Обратите внимание, что в нотации IE системы ERwin терминальная точка отношения не включает символ ноль (кружок) в основании "птичьей лапки" - символа множественности.

В необязательном неидентифицирующем отношении атрибуты, мигрировавшие в неключевую область подчиненной сущности, не являются обязательными для подчиненной сущности. Это значит, что значение внешнего ключа может быть пустым. Рисунок 4.12 демонстрирует необязательное отношение между сущностями ПЕРСОНА и АДРЕС ПЕРСОНЫ.

Рис. 4.12. Необязательное отношение между сущностями ПЕРСОНА и АДРЕС ПЕРСОНЫ.

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

Распространенные ошибки, связанные с отношениями

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

Отношения являются сердцем реляционной модели. Неправильное представление в модели единственного отношения может нарушить целостность всей модели. ERwin не позволит вам совершить наиболее очевидные ошибки при использовании отношений.

Ненужные отношения

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

Отношения один-к-одному

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

Отношения многие-ко-многим

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

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