FOREIGN KEY (NOM_ZACH) REFERENCES STUDENTS (NOM_ZACH),
PRIMARY KEY(NOM_ZACH, PKODL)
MARK INTEGER,
UDATE DATE ,
TNUM INTEGER,
PKOD INTEGER,
CREATE TABLE USP
Задание ограничений ссылочной целостности
PRIMARY KEY(NOM_ZACH, PKOD));
MARK INTEGER CHECK (MARK BETWEEN 3 AND 5),
UDATE DATE ,
TNUM INTEGER,
PKOD INTEGER,
CREATE TABLE USP
(NOM_ZACH INTEGER NOT NULL,
При описании таблиц задаются ограничения, обеспечивающие ссылочную целостность данных с помощью средств задания внешних ключей и NULL-ограничений. Например, таблица USP (см. рисунок 9.) подчинена двум другим таблицам: PREDM и STUDENTS. При этом таблица USP связана с таблицей STUDENTS обязательной связью, так как в ней должны быть отражены данные обо всех студентах. Каждому значению атрибута NOM_ZACH в таблице USP должно соответствовать ровно одно значение этого же атрибута в таблице STUDENTS. В таблице USP не может быть значений атрибута NOM_ZACH, которых нет в таблице STUDENTS. В то же время кто-либо из студентов мог не сдавать один или несколько экзаменов, поэтому связь с таблицей PREDM будет не обязательной. Для моделирования этих связей должны быть определены два внешних ключа (FOREIGN KEY) для полей NOM_ZACH и PKOD. Для поля NOM_ZACH должно быть задано значение NOT NULL.
Ключ FOREIGN KEY ограничивает значения, которые можно ввести в БД так, чтобы заставить внешний и родительский ключи соответствовать принципу ссылочной целостности. Одно из действий этого ограничения – отбрасывать такие значения для полей, ограниченных как внешний ключ, которые отсутствуют в родительском ключе. Синтаксис ограничения FORIGN KEY:
Создадим таблицу USP с полем NOM_ZACH, определенном в качестве внешнего ключа, ссылающегося на таблицу STUDENTS.
(NOM_ZACH INTEGER NOT NULL,
Используя ограничения FOREIGN KEY, можно не указывать список полей родительского ключа, если родительский ключ имеет ограничение PRIMARY KEY. При этом в случае употребления ключей со многими полями, обязательно выполнение условия, чтобы порядок полей во внешних и первичных ключах совпадал. То есть, возможно, следующее описание таблицы.
(NOM_ZACH INTEGER NOT NULL FOREIGN KEY REFERENCES STUDENTS,