YourLib.net
Твоя библиотека
Главная arrow Базы данных. Проектирование и создание (С.М. Диго) arrow 4.7.1. Виды связей
4.7.1. Виды связей

4.7.1. Виды связей

   Прежде чем задавать связь между сущностями, необходимо определить тип этой связи. В ERWin, как и в большинстве других систем, можно задавать только бинарные связи (связи между двумя сущностями). Могут быть заданы:
   • Идентифицирующая связь «один-ко-многим»;
   • Неидентифицирующая связь «один-ко-многим»;
   • Связь «многие-ко-многим».
   В нотации IDEF1X для этих типов связей используются следующие условные обозначения:
   • Идентифицирующая связь «один-ко-многим»;
   • Неидентифицирующая связь «один-ко-многим»;
   • Связь «многие-ко-многим».
   Для того чтобы задать связь, надо выбрать соответствующую этой связи кнопку, после чего щелкнуть кнопкой мыши сначала на родительской, а потом - на дочерней сущности. При задании связи М:М направление связи значения не имеет.
   Для того чтобы отредактировать свойства связи, следует, установив указатель мыши на линии связи, щелкнуть правой кнопкой мыши и в появившемся контекстном меню (рис. 4.40) выбрать позицию Relationship Properties.

Рис. 4.40. Контекстное меню для связи 

Рис. 4.40. Контекстное меню для связи

   В появившемся окне (рис. 4.41) следует выбрать подходящие для данной связи характеристики. Кроме выбора/изменения типа связи (Идентифицирующая/ Неидентифицирующая), можно задать подходящее кардинальное число. Смысл каждого из возможных значений кардинальности понятен из их названий.

Рис. 4.41. Окно Relationships 

Рис. 4.41. Окно Relationships

   При задании типа связи (RelationshipType) в нотации ERWin/IDEFIX используются следующие обозначения: идентифицирующая связь изображается сплошной линией, неидентифицирующая - пунктирной. Множественный конец связи обозначается точкой, для единичного конца не используется никакого специального обозначения. Если при описании неидентирующей связи выбрана опция Null Allowed, то на соответствующем конце связи используется символ ромбика.
   Для обозначения кардинального числа (Cardinality) используются символы:
   • P - один или много
   • Z - ноль или один
   • Выбранное при описании связи число - Exactly.
   По умолчанию символ, определяющий кардинальное число, не отображается на схеме. Для его отображения следует в меню Format/Relationship Display отметить соответствующую опцию (рис. 4.42).

Рис. 4.42. Задание параметров отображения связей 

Рис. 4.42. Задание параметров отображения связей

   Связь 1:М
   На рис. 4.41 изображено описание связи между сущностями ПОДРАЗДЕЛЕНИЕ и СОТРУДНИК. В подразделении должен работать хотя бы один сотрудник (Cardinality - One or More (P)); идентификатор сотрудника не зависит от идентификации подразделений (тип связи - Non-Identifying); сотрудник обязательно приписан к какому-либо подразделению (Nulls/No Nulls). Соответствующий фрагмент логической модели в нотации IDEF1X приведен на рис. 4.43.

Рис. 4.43. Пример неидентифицирующей связи с обязательным классом членства 

Рис. 4.43. Пример неидентифицирующей связи с обязательным классом членства

   Если сотрудник может быть не приписан ни к какому отделу, то в окне Relationships (рис. 4.41) следует выбрать радиокнопку Null Allowed. В схеме модели на конце линии связи появится ромбик (рис. 4.44).

Рис. 4.44. Пример неидентифицирующей связи с необязательным классом членства 

Рис. 4.44. Пример неидентифицирующей связи с необязательным классом членства

   Если между объектами задана идентифицирующая связь, то блок Nulls является неактивным.
   При соединении объектов идентифицирующей связью графическое представление целевой сущности автоматически изменяется: вместо прямоугольника используется фигура с закругленными углами; такая сущность называется зависимой по идентификации сущностью (рис. 4.45).

Рис. 4.45. Пример идентифицирующей связи 

Рис. 4.45. Пример идентифицирующей связи

   Различие при использовании идентифицирующей и неидентифицирующей связи заключается в том, что в первом случае ключ исходной сущности становится частью составного ключа зависимой сущности, а во втором - неключевым атрибутом. Миграция ключа исходной сущности в обоих случаях производится при установлении связи автоматически. И в том, и в другом случае ключ исходной сущности по отношению к зависимой сущности является внешним ключом (FK).
   Связь М:М
   Связь «многие-ко-многим» в реляционной модели не поддерживается и обычно реализуется путем создания связующей таблицы1. В ERWin при переходе от логической модели к физической система по умолчанию не преобразует связь М:М к виду, воспринимаемому в реляционной системе. Для того чтобы указанное выше преобразование выполнялось автоматически, надо в меню Model выбрать позицию Model Properties и в появившемся окне (рис. 4.46) отметить позицию Many-to-Many Relationships with Association Table. Если такое преобразование не задать, то связующая таблица создана не будет.

 Рис. 4.46. Задание признака автоматического преобразования связи М:М с использованием связующей таблицы

Рис. 4.46. Задание признака автоматического преобразования связи М:М с использованием связующей таблицы

   На рис. 4.47 приведен пример связи М:М между сущностями ПРЕПОДАВАТЕЛЬ и ПРЕДМЕТ.

Рис. 4.47. Пример связи М:М (логический уровень) 

Рис. 4.47. Пример связи М:М (логический уровень)

 
< Пред.   След. >