- •Лабораторная работа №5. Методология er и idef1x
- •1. Идентифицирующая связь (Identifying Relationship)
- •2. Неидентифицирующая связь (Non-Identifying Relationship)
- •3. Категориальная связь (Category Relationship / Subtype-Supertype)
- •4. Неспецифическая связь (Non-specific relationship) — «многие-ко-многим»
- •5. Рекурсивная связь (Recursive / Reflexive Relationship)
- •Разработка логической модели данных, основанной на ключах.
1. Идентифицирующая связь (Identifying Relationship)
Это «жесткая» связь. Родительская сущность передает свой первичный ключ дочерней, и этот ключ становится частью первичного ключа дочерней сущности.
Графически: сплошная линия.
Семантика: дочерняя сущность не может существовать без родительской. Идентификация дочернего экземпляра зависит от родителя.
Пример
Сущность «Строка заказа» не может существовать без сущности «Заказ». Первичный ключ «Строки заказа» = (Номер_заказа, Номер_строки). Здесь «Номер_заказа» — это внешний ключ, полученный от родителя, и он же — часть составного первичного ключа.
В ERwin: при идентифицирующей связи внешний ключ мигрирует в область первичного ключа дочерней таблицы и на диаграмме отображается в верхней секции.
2. Неидентифицирующая связь (Non-Identifying Relationship)
Более мягкая связь. Родитель передает свой ключ дочерней сущности, но этот ключ становится обычным (неключевым) атрибутом дочерней сущности. Первичный ключ дочерней сущности остается независимым.
Графически: пунктирная линия.
Семантика: дочерняя сущность может существовать и без родительской (например, значение внешнего ключа может быть NULL или указывать на необязательного родителя).
Мощность: обычно 0..1, 0..N, 1..N. Обязательность указывается символом на конце у дочерней сущности.
Пример
Сущность «Сотрудник» имеет необязательную связь с сущностью «Начальник» (тот же сотрудник). Внешний ключ «Код_начальника» в таблице «Сотрудник» не входит в первичный ключ.
В ERwin: внешний ключ при неидентифицирующей связи мигрирует в область неключевых атрибутов (нижняя секция). На линии ставится ромб (если связь необязательна со стороны ребенка) или точка (если обязательна) – зависит от настроек нотации.
3. Категориальная связь (Category Relationship / Subtype-Supertype)
Отношение обобщения/специализации. Это не связь между двумя разными сущностями, а иерархия «супертип – подтипы».
Графически: специальный символ – круг с двумя линиями вниз к подтипам.
Семантика: каждый экземпляр супертипа является также экземпляром одного (или нескольких) подтипов. Атрибуты и связи наследуются.
Типы категорий:
Полная (Complete): каждый экземпляр супертипа обязательно относится к какому-то подтипу (дискриминатор не допускает NULL).
Неполная (Incomplete): экземпляр супертипа может не принадлежать ни одному подтипу.
Эксклюзивная (Exclusive): экземпляр может принадлежать только одному подтипу.
Инклюзивная (Inclusive / Non-exclusive): может принадлежать нескольким подтипам одновременно.
Пример
Супертип «Транспортное средство». Подтипы: «Легковой автомобиль», «Грузовик», «Мотоцикл». Идентификатор (дискриминатор) – «Тип_ТС».
В IDEF1X категориальные связи часто реализуются через специальные «категориальные домены» и правила переноса ключей. На уровне БД это обычно две таблицы: одна для супертипа с общими атрибутами, отдельные для подтипов со специфическими.
4. Неспецифическая связь (Non-specific relationship) — «многие-ко-многим»
В классической ER-модели M:N (многие ко многим) допустима. В IDEF1X запрещена на физическом уровне. На концептуальном уровне она может быть изображена, но при автоматической генерации физической модели она раскрывается в ассоциативную сущность (Link / Associative Entity).
Графически: линия с двумя точками или ромбиками на обоих концах (в зависимости от CASE-средства). Часто просто пунктирная линия с подписью Non-specific.
Обязательное преобразование: Создается промежуточная таблица, которая связывает две исходные таблицы связями «один-ко-многим». В этой таблице первичный ключ — составной из внешних ключей обеих исходных таблиц.
Пример
Сущности «Студент» и «Курс». Связь M:N. Превращается в ассоциативную сущность «Регистрация» с ключом (ID_студента, ID_курса).
Важно: в IDEF1X ассоциативная сущность часто показывается как независимая сущность (с прямоугольником с прямыми углами) или специальным символом, но по сути она всегда зависит от обеих родительских сущностей.
