Ну как тебе сказать, что
такое транзакция... Вот
представь: тебе надо дать
взятку трём каким-то важным
людям. Ты дал первому, второму,
а третий не взял. Все, полный
облом. А если бы у тебя были
транзакции, то как только
третий не взял деньги, первые
двое отдали бы. По мотивам bash.org.ru |
Несмотря на то, что сегодня этот термин активно используется даже в достаточно далеких от информационных технологий областях человеческой деятельности, все равно, как показывает практика, не все представляют себе, что именно за ним скрывается. Именно по этой причине в нашей традиционной рубрике FAQ поговорим о том, что такое транзакция.
Транзакцией (применительно к ИТ) называется группа операций с данными, представляющая собой единую логическую единицу. Особенностью транзакции является работа по принципу "все или ничего", то есть, если все операции, входящие в состав транзакции, выполняются успешно, то и сама транзакция считается успешной, и все изменения в данных сохраняются. Если же хотя бы одна из входящих в транзакцию операций оказывается проваленной, то и результаты всех предшествующих ей операций отменяются, и транзакция в целом также не считается выполненной успешно. Каждая транзакция при этом выполняется независимо от всех предыдущих транзакций, но для входящих в конкретную транзакцию операций это условие не обязательно - они вполне могут быть связаны друг с другом и зависеть от результатов выполнения предыдущих.
Термин "транзакция" также часто используется в банковской отрасли. Здесь он обозначает преимущественно набор операций, необходимых для перевода денежных средств с одного счета на другой. Как и в случае с данными, банковская транзакция также считается успешной только после того, как успешно выполнены все входящие в неё операции.
Наиболее часто транзакции используются в СУБД. Тем не менее, обычно, когда говорят о транзакциях не в практическом, а в теоретическом аспекте, вместо термина "СУБД" используют термин "транзакционная система".
Стандартным требованием к транзакционной системе является широко известное требование A.C.I.D. - акроним от Atomicity, Consistency, Isolation, Durability (Атомарность, Согласованность, Изоляция и Долговечность). Атомарность подразумевает, что транзакция является наименьшим неделимым элементом для фиксации результатов, и результаты отдельных подопераций фиксироваться системой не будут. Согласованность - требование внутренней правильности и целостности до и после транзакции. Изоляция говорит об условии не показывать пользователю никаких изменений до успешного завершения транзакции, а долговечность подразумевает необходимость сохранения результатов успешно выполненной транзакции.
Впрочем, стоит отметить, что A.C.I.D. - достаточно комплексная система требований, заслуживающая отдельного рассмотрения в рубрике FAQ.
Вадим СТАНКЕВИЧ,
[email protected]
Горячие темы