Консистентность в ACID означает сохранение заданных инвариантов: успешная транзакция переводит базу из одного допустимого состояния в другое.
Что означает консистентность в ACID?
Консистентность в ACID означает сохранение заданных инвариантов: успешная транзакция переводит базу из одного допустимого состояния в другое.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Консистентность в ACID означает сохранение заданных инвариантов: успешная транзакция переводит базу из одного допустимого состояния в другое.
Например, внешние ключи не должны ссылаться на отсутствующие строки, уникальные значения — дублироваться, а сумма проводок должна удовлетворять бизнес-правилу. Часть ограничений обеспечивает СУБД, часть — корректная транзакционная логика приложения.
Это не то же самое, что согласованность реплик в CAP. ACID не делает произвольную ошибочную бизнес-логику правильной: если инвариант не выражен ограничениями или алгоритмом, СУБД не может автоматически его угадать.