Стандарты языка реляционных баз данных SQL



       

ОПРЕДЕЛЕНИЕ ОГРАНИЧЕНИЙ ЦЕЛОСНОСТИ ТАБЛИЦЫ


Раздел определения ограничений целостности таблицы обладает следующим синтаксисом:

<table constraint definition> ::=

<unique constraint definition>

| <referential constraint definition>

| <check constraint definition>

<unique constraint definition> ::=

<unique specification> (<unique column list>)

<unique specification> ::=

UNIQUE | PRIMARY KEY

<unique column list> ::=

<column name> [{,<column name>}...]

<referential constraint definition> ::=

FOREIGN KEY (<referencing columns>)

<references specification>

<references specification> ::=

REFERENCES <referenced table and columns>

<referencing columns> ::=

<reference column list>

<referenced table and columns> ::=

<table name> [(<reference column list>)]

<reference column list> ::=

<column name> [{,<column name>}...]

<check constraint definition> ::=

CHECK (<search condition>)

Для одной таблицы может быть задано несколько ограничений целостности, в том числе те, которые неявно порождаются ограничениями целостности столбцов. Стандарт SQL/89 устанавливает, что ограничения таблицы фактически проверяются при выполнении каждого оператора SQL.

Замечание: наличие правильно подобранного набора ограничений БД очень важно для надежного функционирования прикладной информационной системы. Вместе с тем в некоторых СУБД ограничения целостности практически не поддерживаются. Поэтому при проектировании прикладной системы необходимо принять решение о том, что более существенно: рассчитывать на поддержку ограничений целостности, но ограничить набор возможных СУБД или отказаться от их использования на уровне SQL, сохранив возможность применения не самых современных СУБД.

Далее T обозначает таблицу, для которой определяются ограничения целостности.



Содержание раздела