Целостность реляционных данных

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

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

В РМД существует два вида внутренних ограничений целостности.

1. Целостность по существованию – потенциальный ключ отношения не может иметь пустого значения (NULL).

2. Целостность по связи – определяется понятием внешнего ключа отношения и означает систему правил, используемых для поддержания связей между записями в связанных таблицах. Обеспечивает защиту от случайного удаления или изменения связанных данных, от некорректного изменения ключевых полей.

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

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

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

15 — Базы данных. Правила целостности


Читать еще…

Понравилась статья? Поделиться с друзьями: