Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
348.doc
Скачиваний:
12
Добавлен:
30.04.2022
Размер:
2.67 Mб
Скачать

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

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

<определение ограничений целостности таблицы> ::=

<определение ограничения уникальности>

| <определение ограничения по ссылкам>

| <определение проверочного ограничения>

<определение ограничения уникальности> ::=

<спецификация уникальности> (<список уникальности столбцов>)

<спецификация уникальности> ::= UNIQUE | PRIMARY KEY

<список уникальности столбцов> ::= <имя столбца> [{,<имя столбца>}...]

<определение ограничения по ссылкам > ::=

FOREIGN KEY (<ссылающиеся столбцы>) <спецификация ссылки>

<спецификация ссылки> ::=

REFERENCES <упомянутая таблица и колонки>

<ссылающиеся столбцы> ::= <список столбцов ссылки>

<упомянутая таблица и колонки> ::=

<имя таблицы> [(<список столбцов ссылки>)]

<список столбцов ссылки> ::= <имя столбца> [{,<имя столбца>}...]

<определение проверочного ограничения> ::= CHECK (<условие поиска>)

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

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

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

Каждое имя столбца в списке уникальности должно именовать столбец T и не должно входить в этот список более одного раза. При определении столбца, входящего в список уникальности, должно быть указано ограничение столбца NO NULL. Среди ограничений уникальности T не должно быть более одного определения первичного ключа (ограничения уникальности с ключевым словом RIMARY KEY).

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

Ограничение по ссылкам

Ограничение по ссылкам от заданного набора столбцов CT таблицы T на заданный набор столбцов CT1 некоторой определенной к этому моменту таблицы T1 определяет условие на содержимое обеих этих таблиц, при котором ссылки можно считать корректными.

Если список столбцов CT1 явно специфицирован в определении ограничения по ссылкам, то требуется, чтобы этот список явно входил в какое-либо определение уникальности таблицы T1. Если же список CT1 не специфицирован явно в определении ограничения по ссылкам таблицы T, то требуется, чтобы в определении таблицы T1 присутствовало определение первичного ключа, и список CT1 неявно полагается совпадающим со списком имен столбцов из определения первичного ключа таблицы T1. Имена столбцов списков CT и CT1 должны именовать столбцы таблиц T и T1 соответственно и не должны появляться в списках более одного раза. Списки столбцов CT и CT1 должны содержать одинаковое число элементов, и столбец таблицы T, идентифицируемый i-м элементом списка CT, должен иметь тот же тип, что и столбец таблицы T1, идентифицируемый i-м элементом списка CT1.

Ограничение по ссылкам удовлетворяется, если для каждой корректной ссылки существует объект, на который она ссылается.

Проверочное ограничение

Проверочное ограничение специфицирует условие, которому должна удовлетворять в отдельности каждая строка таблицы T. Это условие не должно содержать подзапросов, спецификаций агрегатных функций, а также ссылок на внешние переменные или параметров. В него могут входить только имена столбцов данной таблицы и литеральные константы.

Таблица удовлетворяет проверочному ограничению целостности в том и только в том случае, когда вычисление условия для каждой строки таблицы дает true.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]