Под целостностью данных базы данных понимают согласованность данных в базе данных. В реляционной модели Кодда есть несколько ограничительных условий, используемых для проверки данных в базе данных, а также для придания данным осмысленной структуры. Они поддерживают целостность данных.
Ограничительное условие – правило, ограничивающее возможные значения данных в базе данных. Ограничительные условия обеспечивают логическую основу для поддержания правильных значений данных в базе данных, предупреждая ошибки при обновлении и обработке данных. Такие возможности обладают очевидной ценностью, поскольку основная цель базы данных – обеспечивать точную информацию для менеджмента и принятия решений. Обычно рассматриваются следующие ограничения: категорная целостность; целостность на уровне ссылок; функциональные зависимости.
Строки реляционной таблицы представляют в базе данных элементы конкретных объектов реального мира или, в соответствии с реляционной терминологией, категорий. Ключ реляционной таблицы однозначно определяет каждую строку и, следовательно, каждый элемент категории. Таким образом, если пользователи хотят извлекать данные конкретной строки, они должны знать значение ключа этой строки. То есть элемент не должен записываться в базу данных до тех пор, пока значения его ключевых атрибутов не будут полностью определены. Таким образом, ключу или любой части ключа не позволяется иметь пустое значение.
Правило категорной целостности: никакой ключевой атрибут любой строки реляционной таблицы не может иметь пустого значения.
При построении реляционных таблиц для связывания строк одной таблицы со строками другой таблицы используются внешние ключи. База данных, в которой все непустые внешние ключи ссылаются на текущие значения ключей другой реляционной таблицы, обладает целостностью на уровне ссылок.
Правило целостности на уровне ссылок:значение непустого внешнего ключа должно быть равно одному из текущих значений ключа другой таблицы.
Прежде чем перейти к третьему виду ограничений, необходимо рассмотреть правила нормализции базы данных.