Обмеження CHECK рівня атрибуту

Більш складне обмеження рівня атрибуту задається службовим словом CHECK, за яким у круглих дужках іде умова, така ж, як у реченні WHERE. Можливе використання підзапитів. Зазвичай так задаються перелічувані множини значень або їхні межі.

 

Обмеження CHECK перевіряється, коли компонент, для якого установлене обмеження, отримує нове значення (шляхом INSERT або UPDATE). Якщо нове значення атрибуту порушує обмеження, операція відміняється.

 

Приклад 14.5. Нехай у відношенні

(приклад 14.3) виникла вимога: номери президентів мають містити не менше 6 цифр. Замінимо рядок 4 рядком

 

Приклад 14.6. Нехай ми передбачаємо, що атрибут gender схеми відношення

не лише відноситься до типу CHAR(1), але й приймає одне з двох значень: ‘F’ – жінка, або ‘M’ – чоловік. В обмеженні виразимо це так:

 

Можливості порушення обмеження CHECK рівня атрибуту.

В умові CHECK можна використати інші компоненти кортежу і навіть підзапити. Оскільки перевірка виконується лише для атрибуту під CHECK, зміни значень інших атрибутів та зміни в інших залучених відношеннях не контролюються цим обмеженням, що може привести до його порушення.