Транзакция (информатика): различия между версиями

м
Бот: удалил заголовок-ссылку в тексте. см. ; косметические изменения
м (Бот: удалил заголовок-ссылку в тексте. см. ; косметические изменения)
'''Транза́кция''' ({{lang-en|transaction}}) — группа последовательных операций с [[база данных|базой данных]], которая представляет собой логическую единицу работы с данными. Транзакция может быть выполнена либо целиком и успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще и тогда она не должна произвести никакого эффекта. Транзакции обрабатываются [[Транзакционная система|транзакционными системами]], в процессе работы которых создаётся [[Журнализация изменений|история транзакций]].
 
Различают последовательные (обычные), [[Параллельная транзакция|параллельные]] и [[распределённая транзакция|распределённые транзакции]]. Распределённые транзакции подразумевают использование больше чем одной транзакционной системы и требуют намного более сложной логики (например, two-phase commit — [[Двухфазный протокол фиксации транзакции|двухфазный протокол фиксации транзакции]]). Также, в некоторых системах реализованы [[автономные транзакции]], или под-транзакции, которые являются автономной частью родительской транзакции.
 
== Пример транзакции ==
{{main|Атомарность}}
 
Атомарность гарантирует, что никакая [[Транзакция (информатика)|транзакция]] не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной. Поскольку на практике невозможно одновременно и атомарно выполнить всю последовательность операций внутри транзакции, вводится понятие «отката» (rollback): если транзакцию не удаётся полностью завершить, результаты всех её до сих пор произведённых действий будут отменены и система вернётся в исходное состояние.
 
=== Consistency — Согласованность ===