Разработка приложений баз данных для СУБД Sybase SQL Anywhere


Определение внешних ключей - часть 4


Рис. 67. Определение условий ссылочной целостности

Вопрос 1. Какие действия должны предприниматься для поддержания ссылочной целостности?

Для ответа на этот вопрос используются переключатели Update Action и Delete Action. Первый из них, Update Action, определяет действие, выполняемое при модификации значений полей родительской таблицы, на которые ссылаются поля внешнего ключа дочерней таблицы. Назовем эти поля родительской таблицы адресуемыми полями. Второй переключатель Delete Action предназначен для выбора действия, выполняемого при удалении записей родительской таблицы.

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

  • Restrict Update - запрещение модификацию адресуемых полей;
  • Cascade - (каскадное обновление) изменение значений полей внешнего ключа в записях, ссылающихся на модифицируемую запись родительской таблицы, на новое значение адресуемых полей;
  • Set NULL- изменение значений полей внешнего ключа в записях, ссылающихся на модифицируемую запись родительской таблицы, на значение NULL;
  • Set Default - изменение значений полей внешнего ключа в записях, ссылающихся на модифицируемую запись родительской таблицы, на значение присваиваемое полю по умолчанию.

Для указания действий, которые надлежит выполнить при удалении записей родительской таблицы используется переключатель Delete Action. Он следующие положения:

  • Restrict Delete- запрещение удаления;
  • Cascade - (каскадное удаление) удаление записей дочерней таблицы, ссылающихся на удаляемую запись родительской таблицы;
  • Set NULL- изменение значений полей внешнего ключа в записях, ссылающихся на удаляемую запись родительской таблицы, на значение NULL;
  • Set Default - изменение значений полей внешнего ключа в записях, ссылающихся на удаляемую запись родительской таблицы, на значение присваиваемое полю по умолчанию.

Как показано на рис. 67 для создаваемого внешнего ключа определено каскадное обновление полей внешнего ключа дочерней таблицы (поле Copies.Code_book) при изменение адресуемых полей родительской таблицы (поле Books.Code_book) - (Update Action/ Cascade) и запрещение удаления записей родительской таблицы Books, на которую имеются ссылки из дочерей таблицы Copies. (Delete Action / Restrict Delete).

После определения условий ссылочной целостности приступаем к заключительному шагу.

Шаг 6. Подтверждение готовности к созданию нового внешнего ключа (рис. 68).

Рис. 68. Подтверждение готовности к созданию нового внешнего ключа




    - Начало -  - Назад -  - Вперед -



    Книжный магазин