VisualData

Транзакция

Любое внешнее воздействие, потенциально способное изменить состояние базы данных, в дальнейшем называется транзакция. К транзакционным воздействиям относятся: вызов одной из трех функций вычислительной среды исполнения модели данных: Create, Set или Update; или логически связанная в неразрывное целое группа таких вызовов; а также вызов многочисленных методов конструирования сценария и модели приложения. Все эти вызовы должны быть оформлены и исполнены по определенным правилам.

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

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

Более подробно с внутренними механизмами транзакционной сессии можно ознакомиться здесь.