Введение

В системах баз данных, согласованность (или корректность) относится к требованию, чтобы любая операция с базой данных изменяла затронутые данные только допустимыми способами. Любые данные, записанные в базу данных, должны быть валидными в соответствии со всеми определенными правилами, включая ограничения, каскады, триггеры и любые их комбинации. Это не гарантирует корректность транзакции во всех аспектах, которые мог бы ожидать разработчик приложения (это ответственность кода на уровне приложения), а лишь то, что ошибки программирования не приведут к нарушению определенных ограничений базы данных. Согласованность также подразумевает, что после успешной записи, обновления или удаления записи, любой последующий запрос на чтение немедленно вернет последнее значение этой записи.

В качестве гарантии ACID

Последовательность — одна из четырех гарантий, определяющих ACID-транзакции; однако существует значительная неопределенность относительно сути этой гарантии. Она определяется по-разному:
Гарантия того, что ограничения базы данных не нарушаются, особенно после завершения транзакции. Гарантия того, что любые транзакции, начатые в будущем, обязательно увидят результаты транзакций, зафиксированных в прошлом. Поскольку эти различные определения не являются взаимоисключающими, возможно спроектировать систему, гарантирующую "согласованность" во всех смыслах этого слова, что, вероятно, делают большинство реляционных систем управления базами данных, используемых в настоящее время.

Как компромисс в рамках ОСП

Теорема CAP основана на трех компромиссах, один из которых — «атомная согласованность» (сокращенно «согласованность» для аббревиатуры), о которой авторы отмечают: «Обсуждение атомной согласованности несколько отличается от обсуждения ACID-баз данных, поскольку согласованность базы данных относится к транзакциям, а атомная согласованность относится только к свойству единичной последовательности операций запрос/ответ. И она имеет другое значение, чем «Атомарность» в ACID, поскольку охватывает понятия атомарности и согласованности, используемые в базах данных». В теореме CAP можно иметь только два из следующих трех свойств: согласованность, доступность или устойчивость к разделению. Следовательно, в некоторых системах баз данных может потребоваться пожертвовать согласованностью.