Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
POSOBIE_MORUGIN_AGPU_ch_2-osn.doc
Скачиваний:
7
Добавлен:
01.05.2025
Размер:
3.03 Mб
Скачать

6.3.3.4. Задание связей

В ERWin можно задавать идентифицирующие и неидентифицирующие связи.

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

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

Варианты реализации связей в логической модели показаны на рисунке 6.12-6.14. При задании связи ключ из главной (в примере из стержневой) таблицы мигрирует в зависимую (характеристическую) таблицу.

Рис. 6.12 – Идентифицирующая связь типа один-ко-многим между сущностями «Отдел» и «Сотрудник», ключи мигрируют

в состав ключевых полей

Рис. 6.13 – Неидентифицирующая связь типа один-ко-многим между

сущностями «Отдел» и «Сотрудник», ключи мигрируют в

состав описательных полей. Внешний ключ может

содержать значение NULL (связь необязательная)

Рис. 6.14 – Неидентифицирующая связь типа один-ко-многим между

сущностями «Отдел» и «Сотрудник», ключи мигрируют в

состав описательных полей. Внешний ключ имеет значение

NOT NULL (связь обязательная)

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

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

Рис. 6.15 – Связь типа многие-ко-многим в логической модели между

сущностями «Товар» и «Клиент», ключи не мигрируют

На уровне физической модели связь многие-ко-многим может быть обозначена (рис. 6.26), но реализуется она в виде промежуточной таблицы (рис. 6.27). В промежуточной таблице Товар_Клиент (такое название по умолчанию) можно хранить сведения о том, кто из клиентов какой из товаров заказывал.

Рис. 6.16 – Обозначение связь типа многие-ко-многим в физической

модели данных

Рис. 6.17 – Реализация связи типа многие-ко-многим в физической

модели данных в виде ассоциативной (в частности,

именующей) таблицы Товар_Клиент

Естественно, таблицу Товар_Клиент можно сразу ввести на уровне логической модели данных.

6.3.3.6. Типы сущностей и иерархия наследования

Связи определяют, является ли сущность независимой или зависимой. Зависимые сущности:

Характеристическая - зависимая дочерняя сущность, которая связана только с одной родительской и по смыслу хранит информацию о характеристиках родительской сущности.

Пример. Сущность Сотрудник имеет характеристику – Увлечения.

Ассоциативная - сущность, связанная с несколькими родительскими сущностями. Такая сущность содержит информацию о связях сущностей.

Пример. Таблица связи "Товар-Клиент" на рис 6.17. при дополнении ее атрибутами, например, Количество и Дата_Заказа.

Именующая - частный случай ассоциативной сущности, не имеющей собственных атрибутов (только атрибуты родительских сущностей, мигрирующих в качестве внешнего ключа)

Пример. Таблица связи "Товар-Клиент" на рис 6.17 только с внешними ключами.

Категориальная - дочерняя сущность в иерархии наследования.

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

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

В IDEF1X выделяют два типа иерархии категории (наследования): полная и неполная.

Полная категория означает, что отображены все возможные варианты сущностей-потомков.

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

Возможна также комбинация полной и неполной категорий.

Создание категориальной связи:

  • установить курсор на кнопке категории в палитре инструментов выбрать категорию левой кнопкой мыши;

  • щелкнуть сначала по родовому предку, потом - по потомку;

  • для установления второй связи в иерархии категорий сначала щелкнуть по символу категории, потом по второму потомку.

Редактирование категории - щелкнуть правой кнопкой мыши по символу категории. В контекстном меню - пункт Subtype Relationship Editor. Указать дискриминатор категории (Discriminator Attribute Choice) (например - атрибут Тип в родовом предке) и тип категории - полная/неполная (Complete/Incomplete).

Стадии построения иерархии наследования:

а) Определение сущностей с общими (по определению) атрибутами

Пример 1: Постоянный сотрудник и Совместитель

Пример 2: Транзисторы низкочастотные, транзисторы высокочастотные

б) Перенос общих атрибутов в сущность - родовой предок

Пример 1: Постоянный сотрудник и Совместитель - > Сотрудник

Пример 2: Транзисторы низкочастотные, транзисторы высокочастотные -> транзистор

в) Создание неполной структуры категорий

Создается категориальная связь от новой сущности - родового предка - к старым сущностям - потомкам. Новая сущность дополняется атрибутом-дискриминатором категории – тип.

г) Создание полной структуры категорий

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

Пример 1: консультант

Пример 2: транзисторы сверхвысокочастотные.

д) Комбинация полной и неполной структур категорий

При необходимости создание иерархии категорий можно продолжить.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]