Что означает требование к транзакции "Надежность"?

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

 

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

 

Основные требования к системе, поддерживающей транзакцию,описываются аббревиатурой ACID (которая расшифровывается как Atomicity, Consistency, Isolation, Durability).

  • Atomicity — атомарность. Любые изменения в результате транзакции либо фиксируются (commit), либо откатываются (rollback).
  • Consistency — согласованность. Если до начала транзакции данные не противоречили друг другу, то и после окончания транзакции они не должны быть противоречивыми. Например, если в процессе транзакции выполнялся перевод средств с одного счета на другой, то сумма денег на обоих счетах после выполнения транзакции должна оставаться такой же, как и до начала транзакции. (Следует заметить, что внутри транзакции согласованность не требуется. Возвращаясь к примеру перевода денег со счета на счет, списание средств с одного счета и помещение их на другой счет выполняются последовательно и между этими двумя операциями данные оказываются несогласованными.)
  • Isolation — изолированность. Работающие одновременно транзакции не влияют друг на друга. Другими словами, результат параллельного выполнения двух транзакций должен быть идентичен результату их последовательного выполнения.
  • Durability — надежность. Если транзакция была успешно завершена, никакое внешнее событие (например, аппаратный сбой) не должно привести к потере изменений.

Источники:
Транзакция (информатика) — Википедия
Транзакция — что это такое? Определение, значение, перевод