Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ERwin_metod.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
538 Кб
Скачать
☆

3.Установка связей между сущностями

Итак, диаграмма содержит 3 сущности. Определим связи между ними. Вернитесь на вкладку «Uroven sushnostei». Как известно, существуют зависимые и независимые сущности. Мы задали для Komplectueshie собственный уникальный ключ «Kod_naimenovaniy». Т.о. сущность «Komplectueshie» является независимой сущностью и связана с сущностью «Vid» неидентифицирующей связью.

Для того чтобы проставить эту связь на диаграмме, щелкните указателем мыши по кнопке «Non-Identifying Relationship» в палитре инструментов, затем щелкните по очереди по прямоугольникам сущностей «Vid» и «Komplectueshie» на диаграмме. Между этими сущностями появится пунктирная линия неидентифицирующей связи. Перейдите на вкладку “Uroven atributov”. Нажав на рабочей области правой кнопкой мыши, выберите Display level\Entity. Посреди линии связи проставляется генерируемая по умолчанию глагольная фраза – «R/1» (см.рис.21).

Рис.22 Сущности объектной области «Компьютерной фирмы»

Рис. 23 Миграция атрибутов

Нажав на рабочей области правой кнопкой мыши, выберите Display level\Attribute.Обратите внимание на то, что у сущности «Komplectueshie» добавился атрибут первичного ключа от сущности «Vid» и помечен буквами «FK» (см.рис.23).

Для идентифицирующей связи внешний ключ всегда входит в первичный ключ дочерней сущности, для неиденти-фицирующей – не входит.

Назначьте связи глагольную фразу. Для этого выделите связь, щелкнув по ней указателем мыши, затем нажмите правую кнопку мыши и в контекстном меню выберите «Relationship Properties …» (см.рис.24). Редактор связей похож на остальные редакторы объектов ER-диаграммы. В верхней части находится выпадающий список с названием связи. В нашем случае осмысленная фраза еще не определена, поэтому в этом поле значится «Vid Komplectueshie».

Рис.24 Редактор связи

Здесь же находится 2 кнопки New… и Delete, с помощью которых можно добавить новую связь или удалить существующую.

В редакторе имеется 5 страниц:

  • General – здесь задаются основные свойства связи – глагольная фраза, тип и степень связи.

    • Verb Phrase содержит 2 поля, в которых вводится глагольная фраза, характеризующая связь. ERwin позволяет задать фразу для прямого и обратного направления связи: Parent-To-Child и Child-To-Parent. Щелкните указателем мыши по полю Parent-To-Child и введите «состоит из».

    • Cardinality позволяет выбрать одну из следующих степеней связи:

      • «Zero One or More» – каждый экземпляр родительской сущности связан с нулем, одним или более экземпляров дочерней сущности.

      • «One or More (P)» – каждый экземпляр родительской сущности связан с одним или более экземпляров дочерней сущности.

      • «Zero or One (Z)» – каждый экземпляр родительской сущности связан с нулем или одним экземпляром дочерней сущности.

      • «Exactly» – каждый экземпляр родительской сущности связан с заданным количеством экземпляров дочерней сущности. Рядом находится поле, где необходимо ввести это поле.

    • Relationship Type – связь может быть идентифицирующей и неидентифицирующей. Кроме того, для неидентифицирующей связи задается обязательность. В нашем примере Komplectueshie не может существовать отдельно от Vid. Поэтому установите переключатель Nulls в позицию «No nulls». Тем самым на отношение накладывается условие, что у существующего экземпляра учебного места всегда должна быть ссылка на класс, в который оно входит.

  • Definition – на этой странице вводится определение связи.

Rolename и R1 Action (имя роли и установка ссылочной целостности). Имя роли – это дополнительная характеристика, которая присваивается мигрирующему атрибуту первичного ключа (см. рис.25 а).

Это удобно в тех случаях, когда сущность связана со многими сущностями или сама с собой циклической связью.

Установка ссылочной целостности – это логические конструкции, которые выражают бизнес-правила использования данных. Они определяют, какие действия должна выполнять СУБД при удалении, вставке или изменении строки таблицы (экземпляра сущности). Заданные таким образом действия могут использоваться впоследствии при автоматической генерации триггеров, поддерживающих целостность данных (см.рис.25 б).

Рис. 25 а Страница «Имя роли» б Страница « Установки ссылочной целостности»

Существуют следующие виды действий или правил, определенных в логической модели:

RESTRICT – запрет удаления, вставки или изменения экземпляра сущности.

CASCADE – при удалении экземпляра родительской сущности удаление всех экземпляров дочерней сущности, ссылающихся на удаляемый экземпляр.

SET NULL – при удалении экземпляра родительской сущности атрибутам внешнего ключа всех экземпляров дочерней сущности присваивается значение NULL.

SET DEFAULT – то же самое, только вместо NULL присваивается значение по умолчанию.

NONE – никаких действий не принимается.

П ри добавлении связи в диаграмму ERwin по умолчанию устанавливает набор правил, которые можно редактировать на вкладке «RI Defaults», выбрав в главном меню Model\ Model Properties вкладка RI Defaults (см. рис. 26).

Рис. 26. Редактор установок ссылочной целостности

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

Каждый тип связи имеет, в зависимости от вида действия, свой набор допустимых правил, приведенный в Табл.5

Установки для связи «Vid – Komplectueshie», присвоенные по умолчанию, запрещают вставку и изменение экземпляра дочерней сущности, а также удаление и изменение родительской сущности. Это означает, что не допускается не допускается удаление или изменение Vid, если в нем имеются Komplectueshie, а также ввод Komplectueshie без указания Vid или со ссылкой на соответствующий Vid.

Таблица 5-Набор допустимых правил для различных типов связей

Тип связи (Relationship Type)

Идентифи-цирующая

Неидентифи-цирующая

Неидентифи-цирующая

Категори- альная связь

Child Delete

(Удаление дочернего объекта)

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

SET NULL

SET DEFAULT

RESTRICT CASCADE

NONE

SET DEFAULT

Child Insert

(Вставка дочернего объекта)

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

SET NULL

SET DEFAULT

RESTRICT CASCADE

NONE

SET DEFAULT

Child Update

(Изменение дочернего объекта)

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

SET NULL

SET DEFAULT

RESTRICT CASCADE

NONE

SET DEFAULT

Parent Delete

(Удаление родительскогого объекта)

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

SET NULL

SET DEFAULT

RESTRICT CASCADE

NONE

SET DEFAULT

Parent Insert

(Вставка родительскогого объекта)

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

SET NULL

SET DEFAULT

RESTRICT CASCADE

NONE

SET DEFAULT

Parent Update

(Изменение родительскогого объекта)

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

RESTRICT CASCADE

NONE

SET NULL

SET DEFAULT

RESTRICT CASCADE

NONE

SET DEFAULT

UDP позволяет присвоить связи свой набор пользовательских свойств. Итак, мы создали неидентифицирующую связь между сущностями «Vid» и «Komplectueshie» с условием «No Nulls».

Рассмотрим сущности Komplectueshie и Zakaz. Между ними связь M:M. Перейдите на вкладку Uroven sushnostei.Т.к. связь между сущностями M:M, то отобразим её в ER-диаграмме, нажав на палитре инструментов Many-to-Many Relationship и выделив сущности Komplectueshie и Zakaz. Если тип связи М:М, то независимо от класса принадлежности сущностей формируются три отношения. Два отношения соответствуют связываемым сущностям и их ключи являются первичными ключами этих отношений. Третье отношение является связным между первыми двумя, а его ключ объединяет ключевые атрибуты связываемых отношений. В нашей ER-диаграмме не хватает 3-го отношения. Его можно создать следующим образом. Выделите связь и нажмите правой кнопкой мыши. Из появившегося меню выберите Create Association Entity.В появившемся окне нажмите Next\Next\Next. Появится третье отношение.

Рис.27 Полученная диаграмма

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