Базы данных. Основы SQL реляционных баз данных. Копейкин М.В - 63 стр.

UptoLike

Пример создания таблицы ОТДЕЛ_ СОТРУДНИК (рис. 2.3) с помощью оператора
CREATE TABLE:
CREATE TABLE Отдел_ Сотрудники
(Ид_Сотр SMALLINT Ид_Сотр NOT NULL,
Ид_Отдела CHAR (3) Ид_Отдела NOT NULL,
Должность CHAR (15) Должность NOT NULL,
Оклад INT (4) Оклад NOT NULL,
Дата_ приема INT (4) Дата_ приема NOT NULL,
Дата_ увольнения INT (4) NULL,
PRIMARY KEY (Ид_Отдела, Ид_Сотр),
FOREIGN KEY (Ид_Отдела) REFERENCES Отдел
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY (Ид_Сотр) REFERENCES Сотрудник
ON DELETE CASCADE
ON UPDATE CASCADE,
CHECK (Оклад >0 AND Оклад < 30000));
Попытка добавить в таблицу ОТДЕЛ_СОТРУДНИК информацию о Сотруднике
или Отделе, которые отсутствуют в базовых таблицах ОТДЕЛ (рис. 2.2) или
СОТРУДНИК (рис. 2.1) приведет к сообщению системы о некорректности операции
(сработает ссылочная целостность REFERENCES либо по таблице ОТДЕЛ, либо
СОТРУДНИК). Удаление же какого-то сотрудника или отдела приведет к
автоматическому удалению информации в
таблице ОТДЕЛ_СОТРУДНИК (сработает
ссылочная целостность по операции ON DELETE). Подробно этот вопрос рассмотрен в
главе 6. Заметьте, что оператор CREATE TABLE для таблицы ОТДЕЛ_ СОТРУДНИК
(рис. 2.3) запрещает (или, как говорят, накладывает явное ограничение целостности)