В компьютерных науках ACID (атомарность, непротиворечивость, изоляция, устойчивость) то есть (atomicity, consistency, isolation, durability) — это набор свойств транзакций базы данных, призванных гарантировать достоверность данных, несмотря на ошибки, сбои питания и другие сбои. В контексте баз данных последовательность операций с базой данных, удовлетворяющая свойствам ACID (которые можно рассматривать как одну логическую операцию над данными), называется транзакцией. Например, перевод средств с одного банковского счета на другой, даже включающий несколько изменений, таких как дебетование одного счета и зачисление на другой, является одной транзакцией.
Атомарность (системы баз данных)
Транзакции часто состоят из нескольких операторов. Атомарность гарантирует, что каждая транзакция рассматривается как отдельная «единица», которая либо полностью завершается успешно, либо полностью терпит неудачу: если какое-либо из операторов, составляющих транзакцию, не завершается, вся транзакция завершается неудачно, а база данных остается неизменной. Атомарная система должна гарантировать атомарность в любой ситуации, включая сбои питания, ошибки и сбои.Гарантия атомарности предотвращает только частичное обновление базы данных, что может вызвать более серьезные проблемы, чем полное отклонение всей серии. Как следствие, другой клиент базы данных не может наблюдать выполнение транзакции. В один момент времени это еще не произошло, а в следующий уже произошло целиком (или ничего не произошло, если транзакция была отменена в процессе).
Согласованность (системы баз данных)
Непротиворечивость гарантирует, что транзакция может перевести базу данных только из одного допустимого состояния в другое, поддерживая инварианты базы данных: любые данные, записанные в базу данных, должны быть действительными в соответствии со всеми определенными правилами, включая ограничения, каскады, триггеры и любую их комбинацию. Это предотвращает повреждение базы данных нелегальной транзакцией, но не гарантирует правильность транзакции. Ссылочная целостность гарантирует отношение первичного ключа к внешнему ключу.
Изоляция (системы баз данных)
Транзакции часто выполняются одновременно (например, несколько транзакций одновременно читают и пишут в таблицу). Изоляция гарантирует, что параллельное выполнение транзакций оставляет базу данных в том же состоянии, которое было бы получено, если бы транзакции выполнялись последовательно. Изоляция — основная цель управления параллелизмом; в зависимости от используемого метода последствия незавершенной транзакции могут быть даже невидимы для других транзакций.
Долговечность (системы баз данных)
Надежность гарантирует, что после того, как транзакция была зафиксирована, она останется зафиксированной даже в случае сбоя системы (например, отключения питания или сбоя). Обычно это означает, что завершенные транзакции (или их последствия) записываются в энергонезависимую память.
Именно статус ACID отличает элитные сервера баз данных особенно в режиме нескольких сотен , а иногда и нескольких тысяч транзакции в секунду . Например, Multi-master everywhere replications (Informix Enterprise Replication) при добавлении нового Мастера возникает явление на сленге называемое OLTP удар. Я, например, не видел ничего эффективней Sun/Solaris (KAIO)