...
- Неделимость (Atomicity). Транзакция либо выполняется полностью, либо не выполняется.
- Согласованность (Consistency). Транзакция переводит базу данных из одного согласованного состояния в другое.
- Изолированность (Isolation). Результаты транзакции становятся доступны для других транзакций только после ее фиксации.
- Продолжительность (Durability). После фиксации транзакции изменения становятся постоянными.
Все команды, выполняемые пользователями на сервере, производятся в теле транзакций. Однако существует два подхода к указанию границ транзакций в потоке команд - явные и неявные транзакции.
Явные транзакции. По умолчанию, каждая команда выполняется как отдельная транзакция. Пользователь может объединить несколько команд в одну транзакцию, явно указав ее начало и конец.
Неявные транзакции. Не существует оператора начала транзакции. Транзакция начинается с началом сеанса работы с БД. Завершается транзакция при следующих событиях:
- Явно выполненный оператор завершения транзакции - rollback или commit
- Оператор DDL
- Завершение сеанса.
После окончания транзакции сразу неявно начинается новая транзакция