Альда
В SQL для обеспечения целостности данных должны выполняться следующие четыре условия:
Атомарность
Атомарность делает данные согласованными. Дело в том, что либо транзакция должна быть завершена, либо она не должна запускаться вообще, то есть не должна зависать посередине.
Согласованность
Согласованность заключается в том, что когда транзакция происходит с элементом базы данных, доступ к нему не должен быть разрешен другим пользователям во время этой транзакции.
Изоляция
Изоляция заключается в том, что несколько транзакций, выполняемых с одним элементом базы данных, не должны влиять друг на друга.
Долговечность
Долговечность заключается в том, что если через одну транзакцию элемент базы данных обновляется, добавляется или удаляется, он становится доступным для всех. После успешного завершения транзакции это делает эту систему согласованной, и в случае сбоя системы изменение элемента базы данных не теряется.
Если соблюдены только перечисленные выше четыре условия, то есть целостность данных.
В SQL согласованность данных заключается в том, что всякий раз, когда выполняется транзакция, она видит согласованную базу данных. Если во время транзакции база данных не согласована, то это может быть вызвано двумя причинами:
Сбой базы данных
Аппаратный сбой
Программный сбой
Множественный доступ
Целостность и согласованность данных необходимы друг для друга, поскольку целостность данных обеспечивает согласованность данных и наоборот.
Нильс
Согласованность данных
Выполнение транзакции изолированно сохраняет согласованность данных. Значение данных, хранящееся в базе данных, должно удовлетворять определенным ограничениям согласованности. Например, баланс на счете не должен опускаться ниже 100 долларов. Команды DDL предоставляют средства для определения таких ограничений. Системы баз данных проверяют эти ограничения каждый раз при обновлении базы данных. Как правило, это может быть произвольный предикат, относящийся к базе данных. Чтобы проверить непротиворечивость базы данных, большая часть программиста зависит от ограничений, и их тестирование обычно дорого обходится.
Целостность данных
Целостность данных означает «все данные в одном месте». Данные представлены в виде таблиц, и каждая таблица имеет некоторые атрибуты. Это те случаи, когда мы хотим убедиться, что значение, которое появляется в одном отношении для данного набора атрибутов, должно также появляться для определенного набора атрибутов в другом отношении (ссылочная целостность). Модификация базы данных может вызвать нарушение целостности. Когда ограничение целостности нарушено, обычная процедура отклоняет действие, которое фактически вызвало нарушение.