![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
При описании связи можно задать ограничения целостности связи. Для этого следует воспользоваться вкладкой RI Actions (рис. 4.3) в окне редактора связей (Relationship Editor). В этой секции для каждой связи можно задать действия, которые будут выполняться при удалении (Delete), вставке (Insert) и обновлении (Update) как порожденной (Child), так и родительской (Parent) сущности.
Для каждой корректирующей операции можно выбрать действие, которое представлено в ниспадающих списках. Каждый список имеет четыре возможных значения: NONE (никакой), RESTRICT (ограничивать),
CASCADE (каскад), SET DEFAULT (значение по умолчанию).
На рис. 4.3 показаны значения RI Actions, задаваемые по умолчанию. В рассматриваемом примере для операции Parent Delete следует выбрать действие CASCADE. Если «Код_сотрудника» может изменяться, то для операции Parent Update также следует выбрать действие CASCADE.
Так как связь «многие ко многим» в реляционной модели не поддерживается, то на уровне логической модели нет смысла (и, как следствие, нет возможности) задавать действия при корректировке сущностей, связанных таким типом связи. При необходимости можно перейти к уровню физической модели и скорректировать ограничения связи для связей, появляющихся в физической модели взамен связи «многие ко многим».
Естественно, что выбор режима действий при выполнении корректирующих операций будет зависеть от типа связи между сущностями. В табл. 4.1 приведены возможные режимы для каждого вида связи. Значения по умолчанию выделены полужирным курсивом с подчеркиванием.
Таблица 4.1
Действие | Идентифицирующая связь | Неидентифици-рующая связь (Nulls Allowed) | Неидентифици- рующая связь (No Nulls) | Категориальная связь |
Child Delete | NONE, RESTRICT, CASCADE | NONE, RESTRICT, CASCADE, SET DEFAULT, SET Null | NONE, RESTRICT, CASCADE, SET DEFAULT | NONE, RESTRICT, CASCADE |
Child Insert | NONE, RESTRICT, CASCADE | NONE, RESTRICT, CASCADE, SET DEFAULT, SETNull | NONE, RESTRICT, CASCADE, SET DEFAULT | NONE, RESTRICT, CASCADE |
Child Update | NONE, RESTRICT, CASCADE | NONE, RESTRICT, CASCADE, SET DEFAULT, SETNull | NONE, RESTRICT, CASCADE, SET DEFAULT | NONE, RESTRICT, CASCADE |
Parent Delete | NONE, RESTRICT, CASCADE, | NONE, RESTRICT, CASCADE, SET DEFAULT, SETNull | NONE, RESTRICT CASCADE, SET DEFAULT | NONE, RESTRICT, CASCADE |
Parent Insert | NONE, RESTRICT, CASCADE | NONE, RESTRICT, CASCADE, SET DEFAULT, SET Null | NONE, RESTRICT, CASCADE, SET DEFAULT | NONE, RESTRICT, CASCADE |
Parent Update | NONE, RESTRICT, CASCADE | NONE, RESTRICT, CASCADE, SET DEFAULT, SETNull | NONE, RESTRICT, CASCADE, SET DEFAULT | NONE, RESTRICT, CASCADE |
Значения ограничений означают следующее:
· NONE - действие не оказывает влияния на связанные записи;
· RESTRICT - действие запрещено (при определенных условиях);
· CASCADE - действие вызывает изменения в связанных записях;
· SET DEFAULT - устанавливается значение по умолчанию для поля связи;
· SET Null - устанавливается по умолчанию значение Null для поля связи.
Так называемая категориальная связь является особой связью: с одной стороны, она является идентифицирующей связью, а с другой - связывает не два разных объекта, а информацию об одном и том же объекте. Для обобщенного объекта хорошо бы иметь специальный инструмент, который позволял бы рассматривать его как единое целое. В ERWin можно задавать ограничения целостности только для каждой отдельной связи, соединяющей родовой объект с каждым из видовых объектов.
Дата публикования: 2015-02-03; Прочитано: 337 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!