Распределённые данные

Свойства ACID

Определение

Свойства ACID — четыре требования к транзакции базы данных: атомарность, согласованность, изоляция и долговечность. Каждое отвечает за своё: общий исход изменений, допустимость данных, поведение при параллельной работе и сохранность результата при предусмотренном отказе.

Также ищут: ACID properties · ACID · атомарность согласованность изоляция долговечность

Зачем это знать

Для одного заказа эти свойства дают четыре разные проверки. Запись заказа и резерв должны завершиться вместе; данные должны соблюдать правила продажи; две продажи не должны совместно нарушить эти правила; подтверждённый результат должен пережить оговорённый сбой. Название СУБД или более быстрый сервер ни одну из этих проверок не заменяют.

Доказательная часть

Что подтверждено

  1. ACID объединяет атомарность, согласованность, изоляцию и долговечность. Атомарность связывает общий исход изменений; согласованность — допустимость состояния; изоляция — взаимодействие параллельных транзакций; долговечность — сохранение зафиксированного результата при предусмотренных отказах.

    Граница применимости: Классическая модель транзакций; конкретные уровни изоляции и ослабленные режимы подтверждения требуют отдельного описания.

  2. Заявление об ACID у локальной базы не доказывает атомарность внешней оплаты, согласование реплик большинством или возможность восстановиться до ошибочного удаления. Для этих задач нужны собственные участники, протоколы и материалы восстановления.

    Граница применимости: Граница локальной транзакции, распределённой координации и восстановления истории; вывод из сопоставления моделей.

  3. Для заказа атомарность проверяют на связанных изменениях одной транзакции: при полном откате одновременно отменяются создание заказа и резерв. Успешное завершение каждой команды по отдельности не доказывает общий исход всей операции.

    Граница применимости: Редакторский пример свойства A для двух транзакционно управляемых изменений; цена, остаток и внешний платёж не считаются автоматически включёнными.

  4. Свойство C предполагает заданные правила допустимого состояния и корректную логику перехода. База может отклонить нарушение объявленного ограничения, но не распознаёт неописанное правило скидки, кредитного лимита или адресата платежа.

    Граница применимости: Согласованность ACID и граница ограничений данных; деловые примеры иллюстрируют необходимость явно заданных правил.

  5. Проверка одного заказа без конкурентов не проверяет изоляцию. Две транзакции могут читать только зафиксированные данные и всё же совместно дать результат, который нельзя получить при их последовательном выполнении; PostgreSQL 18 допускает такие аномалии ниже Serializable.

    Граница применимости: Свойство I; аномалия сериализации в модели и уровнях PostgreSQL 18. Не утверждение, что каждая пара конкурентных операций ошибочна.

  6. Для свойства D требуется назвать, какое событие считается подтверждением и какой отказ результат должен пережить. В PostgreSQL 18 ожидание устойчивой локальной записи WAL и ожидание синхронной реплики определяются настройками; сохранность локального носителя не доказывает сохранность после его полной утраты.

    Граница применимости: Модель долговечности и условия подтверждения PostgreSQL 18; отказ носителя рассматривается при отсутствии другой пригодной копии.

  7. Буква C обозначает разные условия в ACID и CAP. В ACID речь о сохранении правил допустимых данных. В формализации CAP — об атомарной согласованности операций, то есть их порядке, совместимом с реальным временем. Доказательство одного условия не доказывает второе.

    Граница применимости: Редакторское сопоставление модели транзакций и формального условия согласованности Gilbert–Lynch; не перечень свойств конкретного продукта.

Граница терминов

Не путать

Свойства ACID Теорема CAP

ACID разбирает четыре свойства транзакций. CAP рассматривает конфликт формальной доступности и атомарной согласованности при разделении сети. Одинаковая буква C не делает это одной проверкой: корректность данных заказа и допустимый порядок сетевых операций проверяют отдельно.

Свойства ACID Проверенное восстановление базы данных

Долговечность сохраняет принятый результат при оговорённом отказе. Проверенное восстановление устанавливает, можно ли получить нужное состояние из сохранённых материалов. Ошибочное удаление может быть надёжно зафиксировано, поэтому требуется история, предшествующая ошибке.

Перед спецификацией

Что проверить

  1. Запишите для заказа конкретные требования A, C, I и D четырьмя отдельными проверяемыми предложениями.
  2. Для A остановите выполнение посередине и убедитесь, что полный откат убирает все изменения внутри заявленной границы.
  3. Для C отправьте неверный остаток, повторный номер и недопустимую скидку; установите, какое ограничение или участок кода отклоняет каждый случай.
  4. Для I одновременно выполните две продажи последнего доступного товара и проверьте совместный результат.
  5. Для D зафиксируйте настройки подтверждения и испытайте предусмотренный сбой на отдельном тестовом контуре.
  6. Проверьте обработку отказа транзакции: приложение должно корректно сообщать результат и повторять только разрешённую операцию.
  7. Отдельно подтвердите план внешней оплаты, сохранённую историю и успешную проверку восстановления до ошибки.
Открытые основания

Первоисточники

  • Исследование3
  • Документация7
  • Первичная публикация
    The Transaction Model — Turing Award Lecture Microsoft Research / ACM · Jim Gray, FCRC 1999 lecture slides · проверено

    Первичный обзор transaction model, ACID, concurrency anomalies, logs и two-phase commit.

    Утверждения: 01 · 02 · 03 · 04 · 05 · 06 · 07

  • Официальная документация
    PostgreSQL 18 Documentation: PREPARE TRANSACTION PostgreSQL Global Development Group · PostgreSQL 18 SQL command reference · проверено

    Описывает prepared transaction, external transaction manager и operational risk forgotten prepared state.

    Утверждения: 02

  • Первичная публикация
    In Search of an Understandable Consensus Algorithm (Extended Version) Stanford University / USENIX · Ongaro and Ousterhout, USENIX ATC 2014 extended paper · проверено

    Первичное описание Raft: leader election, replicated log, commit majority и safety.

    Утверждения: 02

  • Официальная документация
    PostgreSQL 18 Documentation: Continuous Archiving and Point-in-Time Recovery PostgreSQL Global Development Group · PostgreSQL 18, Chapter 25.3 · проверено

    Связывает base backup, непрерывный WAL archive и проверяемый recovery target.

    Утверждения: 02

  • Официальная документация
    PostgreSQL 18 Documentation: Transactions PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года · проверено

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Проверить границы BEGIN/COMMIT/ROLLBACK, отдельные транзакции без BEGIN, точки сохранения и оговорку о поведении клиентских библиотек.

    Утверждения: 03

  • Официальная документация
    PostgreSQL 18 Documentation: Constraints PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года · проверено

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Проверить CHECK и NULL, NOT NULL, UNIQUE и границу проверок одной строки; пример заказа — редакторское применение этих правил.

    Утверждения: 04

  • Официальная документация
    PostgreSQL 18 Documentation: Transaction Isolation PostgreSQL Global Development Group · PostgreSQL 18, Chapter 13.2 · проверено

    Определяет isolation phenomena и фактическое поведение PostgreSQL levels, включая Serializable.

    Утверждения: 05

  • Официальная документация
    PostgreSQL 18 Documentation: Write-Ahead Logging PostgreSQL Global Development Group · PostgreSQL 18, Chapter 28.3 · проверено

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

    Утверждения: 06

  • Официальная документация
    PostgreSQL 18 Documentation: Log-Shipping Standby Servers PostgreSQL Global Development Group · PostgreSQL 18, Chapter 26.2 · проверено

    Фиксирует async default, synchronous commit wait points и связь replication delay с data loss.

    Утверждения: 06

  • Первичная публикация
    Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services MIT Laboratory for Computer Science · Gilbert and Lynch, SIGACT News 33(2), 2002 · проверено

    Формализует CAP impossibility для atomic consistency и availability в asynchronous network model.

    Утверждения: 07

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие