Целостность данных (целостность информации) - означает, что данные полны, и что соблюдено условие того, что данные не были изменены при выполнении любой операции над ними, будь то передача, хранение или представление.
В криптографии и информационной безопасности целостность данных в общем — это данные в том виде, в каком они были созданы, например, изменение номер аккаунта в банковской транзакции, подделка документа, случайное изменение при передаче информации или при неисправной работе жесткого диска.
Проверка целостности данных может быть осуществлена использованием хеш-функции, к примеру MD5. Такая функция преобразует совокупность данных в последовательность чисел. Если данные изменятся, то и последовательность чисел, генерируемая хеш-функцией тоже изменится.
В теории баз данных целостность данных означает корректность данных и их непротиворечивость. Обычно она также включает целостность связей, которая исключает ошибки связей между первичным и вторичным ключом. К примеру, когда существуют дочерние записи-сироты, которые не имеют связи с родительскими записями.
|
|
Главная особенность SQL-технологий наличие у сервера СУБД специальных средств контроля целостности данных, не зависящих от клиентских программ и привязанных непосредственно к таблицам. Т.е. принципиально не важно, каким образом осуществляется доступ к базе данных: через SQL-консоль, через ODBC-драйвера из приложения Windows, через WWW-connector из Internet-браузера или через DBI-интерфейс Perl. В любом из этих случаев, за контролем целостности данных следит сервер, и при нарушении правил целостности данных сервер известит клиента об ошибке.
Обеспечение целостности данных гарантирует качество данных в таблице. Например, если уникальной записи присвоен идентификатор 123, база данных не должна позволять другим записям иметь такое же значение идентификатора. Если существует столбец, в котором значения должны находиться в диапазоне от 1 до 5, база данных не должна сохранять в нем значения, лежащие вне этого диапазона. Если в таблице есть столбец, в котором хранятся номера, то база данных должна воспринимать только те значения, которые допустимы в качестве номеров.
Целостность данных подразделяется на следующие категории.
- Сущностная целостность
- Доменная целостность
- Ссылочная целостность
- Пользовательская целостность
- Сущностная целостность
Сущностная целостность определяет строку как уникальную сущность в конкретной таблице. Она обеспечивает целостность столбцов идентификаторов или первичного ключа таблицы с помощью индексов и ограничений UNIQUE или PRIMARY KEY.
|
|
Доменная целостность — это достоверность записей в конкретном столбце. Она включает ограничения типа данных, ограничения формата при помощи ограничений CHECK и правил, а также ограничения диапазона возможных значений при помощи ограничений FOREIGN KEY, CHECK, DEFAULT, определений NOT NULL и правил.
Ссылочная целостность сохраняет определенные связи между таблицами при добавлении или удалении строк. В SQL Server ссылочная целостность основана на связи первичных и внешних ключей (либо внешних и уникальных ключей) и обеспечивается с помощью ограничений FOREIGN KEY и CHECK. Ссылочная целостность гарантирует согласованность значений ключей во всех таблицах. Этот вид целостности требует отсутствия ссылок на несуществующие значения, а также обеспечивает согласованное изменение ссылок во всей базе данных при изменении значения ключа.
При обеспечении ссылочной целостности SQL Server не допускает следующих действий пользователей:
- добавления или изменения строк в связанной таблице, если в первичной таблице нет соответствующей строки.
- изменения значений в первичной таблице, которое приводит к появлению потерянных строк в связанной таблице.
- удаления строк из первичной таблицы, если имеются соответствующие ей строки в связанных таблицах.
Пользовательская целостность - сохранение от изменений прав пользователей на модификацию данных и структуры таблиц и базы в целом.