Связи в IDEF1X

Связь один-к-одному


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

Обычно, связь один-к-одному не используется, потому что большую часть данных, которые связаны таким образом, можно хранить в одном отношении. Этот вид связи можно использовать для следующих целей:
  • Изоляция части отношения из соображений безопасности (супер-пупер секретные персональные данные);
  • Хранение временных/кратковременных данных, которые в дальнейшем можно легко удалить вместе со всем отношением, не опасаясь за целостность БД;
  • Хранения данных, которые относятся только к части отношения.
Использование связи один-к-одному является нарушением требований к приведению модели данных БД к третьей нормальной форме, поэтому следует применять как средство денормализации для решения технических задач и оптимизации технических проблем.
1. Отношение один-к-одному
*кортеж - это запись(строка) в таблице базы данных.
*отношение - таблица в базе данных.

Связь один-ко-многим


Связь один-ко-многим описывается как: кортежу отношения А может соответстовать несколько кортежей отношения Б, но каждому кортежу отношения Б может соответствовать только один кортеж из отношения А.

Данный вид связи - это единственно возможная связь отношений в рамках требований приведения модели данных БД к третьей нормальной форме. Физически этот вид связи выглядит так: несколько кортежей из отношения Б ссылаются на один кортеж отношения А.
Так же внешний ключ отношения Б не может принимать значение null - это главное правило, которое определяет направление внешней связи.
2. Отношение один-ко-многим
Примером связи один-ко-многим могут служить таблица сотрудников и таблица их заработной платы по месяцам (один сотрудник получает в течение года двенадцать раз зарплату).

Связь многие-ко-многие


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

Такой вид связи устраняется несколькими способами:
  • Определяется третье отношение, которое называется отношением соединения, первичный(он же составной) ключ которого состоит из внешних ключей отношений А и Б (см. рисунок 3);
  • Пересматриваются все связи отношений.
3. Отношение многие-ко-многим
Примером связи многие-ко-многим может служить реализация библиотечного каталога. Один автор может написать несколько книг, но и одна книга может принадлежать нескольким авторам. Таким образом, должны существовать таблица авторов, таблица книг и третья таблица с названиями книг и именами авторов.

Комментарии