Условия целостности данных

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

Обязательное наличие данных. Некоторые столбцы в базе данных должны содержать значения в каждой строке; строки в таких столбцах не могут включать значения NULL или не содержать никакого значения. Например, в учебной базе данных для каждого заказа должен существовать соответствующий клиент, сделавший этот заказ. Поэтому столбец CUST в таблице ZAKAZY является обязательным. Можно указать СУБД, что запись значения NULL в такие столбцы недопустима.

Условие на значение. У каждого столбца в базе данных есть свой домен, т.е. набор значений, которые допускается хранить в данном столбце. В учебной базе данных заказы нумеруются, начиная с числа 100001, поэтому доменом столбца ID_ORD являются положительные целые числа, больше 100000. Аналогично, идентификаторы служащих в столбце ID_SLZH должны находиться в диапазоне от 101 до 999. Можно указать СУБД, что запись значений, не входящих в определенный диапазон, в такие столбцы недопустима.

Целостность таблицы. Первичный ключ таблицы должен в каждой строке иметь уникальное значение, отличное от значений во всех остальных строках. Например, каждая строка таблицы TOVARY имеет уникальную комбинацию значений в столбцах ID_MFR и ID_PRD, которая однозначно идентифицирует товар, представляемый данной строкой. Повторяющиеся значения в этих строках недопустимы, поскольку тогда база данных не сможет отличать один товар от другого.

Ссылочная целостность. В реляционной базе данных каждая строка таблицы-потомка с помощью внешнего ключа связана со строкой таблицы-предка, содержащей первичный ключ, значение которого равно значению внешнего ключа.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: