ACID

Atomicity, Consistency, Isolation, Durability

ACID — это набор свойств, которые гарантируют надежность и корректность транзакций в реляционных базах данных.

Основные свойства

  1. Атомарность (Atomicity):

    • Транзакция рассматривается как единое целое: либо она выполняется полностью, либо не выполняется вообще.
    • Если возникает ошибка, все изменения откатываются.
  2. Согласованность (Consistency):

    • Транзакции переводят базу данных из одного согласованного состояния в другое.
    • Все правила и ограничения (например, внешние ключи) должны соблюдаться после выполнения транзакции.
  3. Изолированность (Isolation):

    • Каждая транзакция выполняется независимо от других.
    • Результаты одной транзакции недоступны другим до ее завершения, что предотвращает конфликты.
  4. Надежность (Durability):

    • После завершения транзакции изменения сохраняются в базе данных, даже в случае сбоя системы.
    • Данные записываются на постоянное хранилище.

Пример

Рассмотрим банковскую транзакцию, переводящую деньги с одного счета на другой:

  • Атомарность: Если операция перевода завершилась неудачей, деньги не должны быть вычтены с одного счета или зачислены на другой.
  • Согласованность: Сумма на счете отправителя должна уменьшиться, а на счете получателя — увеличиться.
  • Изолированность: Если два пользователя одновременно пытаются перевести деньги, каждый должен видеть свои данные и не знать о действиях другого.
  • Надежность: Если система падает после завершения транзакции, состояние счетов остается неизменным.

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

Релиз Tailwind CSS 4.0 ➜Forgejo v10.0 ➜DNS Security Best Practices ➜Релиз OpenTofu 1.9.0 ➜5 альтернатив для Clickhouse ➜Результаты Game Off 2024 ➜Rails: 8.0.0 ➜Релиз Ruby 3.3.6 ➜Game Off 2024 ➜Саммит FreeBSD 2024 ➜Maria DB: 15 лет ➜Firefox: версия 132 ➜HAIKU OS: Не продлили домен ➜Конференция OpenSource ➜Kali Linux: i386 всё ➜