Топы
Можете ли вы раскрыть смысл всех букв в аббревиатуре ACID?
ACID — это аббревиатура, обозначающая четыре ключевых свойства транзакций в базах данных: атомарность (Atomicity), согласованность (Consistency), изолированность (Isolation) и долговечность (Durability).
Набор требований ACID означает:
ACID используется для обеспечения надежной обработки транзакций данных в базе данных.
Атомарность означает, что транзакция либо выполняется полностью, либо не выполняется вовсе. Если что-то пошло не так в процессе выполнения, все изменения откатываются, и база данных остается в прежнем состоянии.
Пример: Представьте перевод денег между двумя счетами. Если деньги списались с одного счета, но не поступили на другой из-за ошибки, вся операция отменяется, и деньги остаются на первом счете.
Согласованность гарантирует, что данные переходят из одного допустимого состояния в другое. Транзакция не должна нарушать ограничения базы данных, такие как уникальные ключи, внешние ключи или правила проверки данных.
Пример: Если у вас есть правило, что баланс на банковском счете не может быть отрицательным, то транзакция, которая нарушает это правило, не будет завершена. После каждой транзакции база данных должна оставаться в состоянии, удовлетворяющем всем правилам и ограничениям.
Изолированность гарантирует, что параллельные транзакции не влияют друг на друга. Результат выполнения нескольких транзакций будет таким же, как если бы они выполнялись последовательно. Это предотвращает конфликты при одновременном доступе к одним и тем же данным.
Пример: Представьте, что два человека одновременно пытаются изменить баланс на одном счете. Изолированность гарантирует, что одна транзакция завершится раньше, чем вторая начнет менять те же данные, предотвращая ошибку, при которой деньги могут быть зачислены или списаны дважды.
Долговечность означает, что после успешного завершения транзакции ее результаты сохраняются в базе данных, даже если происходит сбой системы. Это значит, что данные не теряются и остаются доступными после любых ошибок, таких как сбой питания.
Пример: После того как вы завершили перевод денег, новая информация о балансах сохраняется и остается доступной, даже если сервер базы данных внезапно выключится. Когда сервер перезапустится, данные будут восстановлены, поскольку транзакция была завершена.
Отметьте свой прогресс