Название: Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML (Токмаков Г. П.)

Жанр: Информационные системы и технологии

Просмотров: 1410


2.3.1. условия  целостности  данных

 

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

– Обязательное наличие данных. Некоторые столбцы в базе данных должны содержать значения в каждой строке; строки в таких столбцах не могут включать

псевдозначения NULL или не содержать никакого значения. Например, в учебной базе данных для каждого заказа должен обязательно существовать клиент, сде- лавший этот заказ. Поэтому столбец ID_CLN в таблице ZAKAZY является обязатель-

ным. Для реализации этого условия необходимо указать СУБД, что запись значе-

ния NULL в такие столбцы недопустима;

– Условие на значение. У каждого столбца в базе данных есть свой домен,

т. е. набор значений, которые допускается хранить в данном столбце. В учебной базе данных заказы нумеруются, начиная с числа 100001, поэтому доменом столб-

ца ID_ORD являются положительные целые числа, больше 100000. Аналогично,

идентификаторы служащих в столбце ID_SLZH должны находиться в диапазоне от

101 до 999. Для реализации этого условия необходимо указать СУБД, что запись значений, не входящих в заданный диапазон, недопустима;

– Целостность таблицы. Первичный ключ таблицы должен в каждой стро-

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

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