Обмеження CHECK рівня кортежу

Для визначення обмеження, що регламентує склад кортежів відношення R, в оголошенні CREATE TABLE після списку атрибутів, ключів та зовнішніх ключів слід написати CHECK та умову по правилах WHERE у круглих дужках.

 

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

 

Незважаючи на „діру”, обмеження CHECK потрібні, оскільки, виконуючи перевірку лише при зміні контрольованого компонента або кортежу, вони реалізуються більш ефективно, ніж обмеження загального виду (assertions, у Transact SQL, на жаль, відсутні) або тригери.

 

Приклад 14.7. Розглянемо оголошення відношення MovieStar, в якому передбачається, що в рядку імені актора не повинен бути префікс “Ms.”, якщо він є чоловіком.

Рис.14.10. Простий приклад обмеження CHECK рівня кортежу