...
- Явно выполненный оператор завершения транзакции - rollback или commit
- Оператор DDL
- Завершение сеанса.
После окончания транзакции сразу неявно начинается новая транзакция.
Уровни изолированности транзакций, отличия реализации Oracle от других СУБД.
Проблемы организации параллельной работы
1. Проблема потерянного обновления.
2. Проблема зависимости от незафиксированных результатов.
3. Несогласованная обработка данных
Соответственно определяют четыре сценария взаимовлияния нескольких транзакций с точки зрения обработки одних и тех же данных.
- Грязное чтение (dirty read). Допускается чтение незафиксированных ("грязных") данных. При этом нарушается как целостность данных, так и требования внешнего ключа, а требования уникальности игнорируются.
- Неповторяемость при чтении (non-REPEATABLE READ). Это означает, что если строка читается в момент времени T1, а затем перечитывается в момент времени T2, то за этот период она может измениться. Строка может исчезнуть, может быть обновлена и так далее.
- Чтение фантомов (phantom read). Это означает, что если выполнить запрос в момент времени T1, а затем выполнить его повторно в момент времени Т2, в базе данных могут появиться дополнительные строки, влияющие на результаты. От неповторяемости при чтении это явление отличается тем, что прочитанные данные не изменились, но критериям запроса стало удовлетворять больше данных, чем прежде.
Вводится четыре уровня изолированности транзакций, характеризующихся степенью взаимовлияния нескольких транзакций, обрабатывающих одни и те же данные.