Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_KL_2010_14.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
28.97 Mб
Скачать

2.3.Целостность данных

Термин целостность относится к правильности и полноте информации, содержащейся в базе данных. При изменении содержимого базы данных с помощью инструкций INSERT, DELETE или UPDATE может произойти нарушение целостности содержащихся в ней данных:

  • в базу могут быть внесены неправильные данные, например, заказ, в котором указан не существующий товар;

  • в результате изменения имеющихся данных им могут быть присвоены некорректные значения, например, назначение служащего в несуществующий офис;

  • изменения, внесенные в базу данных, могут быть утеряны из-за системной ошибки или сбоя в электропитании;

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

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

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

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

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

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

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

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