Основы современных баз данных

       

Определение ограничений целостности таблицы


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

<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 обозначает таблицу, для которой определяются ограничения целостности.

Ограничение уникальности

Каждое имя столбца в списке уникальности должно именовать столбец T и не должно входить в этот список более одного раза.

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