4.5.3.     Уникальность как ограничение таблицы

Можно сделать уникальными группу полей, указав UNIQUE в качестве ограничений таблицы. При объединении полей в группу важен порядок, в котором они указываются. Ограни­чение на таблицу UNIQUE является полезным, если требуется поддерживать уникальность группы полей. Например, если в нашей базе данных не допускается, чтобы студент сдавал в один день больше одного экзамена, то можно в таблице объя­вить уникальной комбинацию значений полей STUDENT ID и EXAM_DATE. Для этого следует создать таблицу EXAM_MARKS следующим способом:

CREATE TABLE EXAM_MARKS

(EXAM_ID INTEGER NOT NULL,

STUDENT_ID INTEGER NOT NULL, SUBJ_ID INTEGER NOT NULL,

MARK CHAR    (1),

EXAM_DATE        DATE NOT NULL, UNIQUE     (STUDENT_ID, EKAM_DATE) | ,-

Обратите внимание, что оба поля в ограничении таблицы UNIQUE все еще используют ограничение столбца — NOT NULL. Если бы использовалось ограничение столбца UNIQUE для поля STUDENTID, то такое ограничение таблицы было бы необяза­тельным.

-Если значение поля STUDENT ID должно быть различным для каждой строки в таблице EXAM MARKS, это можно сделать, объявив UNIQUE как ограничение самого поля STUDENT_ID. В этом случае не будет и двух строк с идентичной комбинацией значений полей STUDENT ID, EXAM DATE. Следовательно, указа­ние UNIQUE как ограничение таблицы наиболее полезно исполь­зовать в случаях, когда не требуется уникальность индивидуаль­ных полей, как это имеет место на самом деле в рассматриваемом примере.