Что такое транзакция?

Ну как тебе сказать, что такое транзакция... Вот представь: тебе надо дать взятку трём каким-то важным людям. Ты дал первому, второму, а третий не взял. Все, полный облом. А если бы у тебя были транзакции, то как только третий не взял деньги, первые двое отдали бы.

По мотивам bash.org.ru

Несмотря на то, что сегодня этот термин активно используется даже в достаточно далеких от информационных технологий областях человеческой деятельности, все равно, как показывает практика, не все представляют себе, что именно за ним скрывается. Именно по этой причине в нашей традиционной рубрике FAQ поговорим о том, что такое транзакция.

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

Термин "транзакция" также часто используется в банковской отрасли. Здесь он обозначает преимущественно набор операций, необходимых для перевода денежных средств с одного счета на другой. Как и в случае с данными, банковская транзакция также считается успешной только после того, как успешно выполнены все входящие в неё операции.

Наиболее часто транзакции используются в СУБД. Тем не менее, обычно, когда говорят о транзакциях не в практическом, а в теоретическом аспекте, вместо термина "СУБД" используют термин "транзакционная система".

Стандартным требованием к транзакционной системе является широко известное требование A.C.I.D. - акроним от Atomicity, Consistency, Isolation, Durability (Атомарность, Согласованность, Изоляция и Долговечность). Атомарность подразумевает, что транзакция является наименьшим неделимым элементом для фиксации результатов, и результаты отдельных подопераций фиксироваться системой не будут. Согласованность - требование внутренней правильности и целостности до и после транзакции. Изоляция говорит об условии не показывать пользователю никаких изменений до успешного завершения транзакции, а долговечность подразумевает необходимость сохранения результатов успешно выполненной транзакции.

Впрочем, стоит отметить, что A.C.I.D. - достаточно комплексная система требований, заслуживающая отдельного рассмотрения в рубрике FAQ.

Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by

Версия для печатиВерсия для печати

Номер: 

15 за 2010 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!