с:согласованность_и_целостность_данных
Согласованность и целостность данных
Проще всего с целостностью (integrity). Если все ограничения БД соблюдены, как например:
- столбцы с уникальными значениями содержат только уникальные значения,
- размеры данных не выходят за пределы заявленного диапазона (например, в колонке varchar(10) не строк длиннее 10 символов),
- внешние ключи указывают на реальные поля реальных строк в соседней таблице,
- и т.д.,
то говорят о целостности данных. Обычно СУБД при вставках/изменениях/удалениях следит за целостностью данных.
С согласованностью (consistency) чуть сложнее, так она больше связана с логикой данных. Если, например, мы меняем несколько полей в строке и во время этого изменения произойдёт сбой, то может так случиться, что часть полей обновится, а часть нет. Это сделает данные несогласованными. Во избежание этого СУБД применяют механизм транзакций и ACID подход к транзакциям.
Собственно, механизмы фиксации и отката транзакции и обеспечивают согласованность данных. Мы никогда не видим наполовину обновлённые строки, даже в случае сбоев.