Транзакция – блок программ, выполнение которых сохраняет непротиворечивость БД. ТРАНЗАКЦИЯ должна быть неделимой. Для обработки ТРАНЗАКЦИИ требуется, чтобы СУБД поддерживало запись ТРАНЗАКЦИИ для каждого изменения вносимого в БД. Один из способов – применение протоколов – история всех изменений, внесенных в БД и состояние каждой ТРАНЗАКЦИИ. Все выполняемые операции задерживаются, пока не будет выполнено последнее действие ТРАНЗАКЦИИ. Все результаты обновления записываются в протокол. Модели ТРАНЗАКЦИЙ:
1) Плоская – каждый компонент должен успешно завершиться, либо не должен завершиться не один.
2) Контрольные точки – точки в прикладной программе, начиная с которой возможен перезапуск при возникновении проблем. Вводится спец. параметр, указывающий до какой именно точки надо произвести откат.
3) Многозвенная – позволяет отметить какую-либо точку как потенциальное место для начала повторного выполнения части работы и фиксирует ту часть, которая была выполнена программой перед достижением.
4) Вложенная транзакция рассматриваются как иерархическое дерево; ТРАНЗАКЦИЯ нижнего уровня называется субтранзакция. Фиксация ТРАНЗАКЦИИ производится только после фиксации всех ее предков.
Если 2 пользователя одновременно обращаются к БД, используется блокировка – закрытие доступа к БД, пока первая ТРАНЗАКЦИЯ не завершится полностью.