Вложенная транзакция
— Вложенная транзакция это транзакция базы данных , которая запускается инструкцией в рамках уже запущенной транзакции.
Вложенные транзакции реализуются по-разному в разных базах данных. Однако их объединяет то, что изменения не становятся видимыми для несвязанных транзакций до тех пор, пока самая внешняя транзакция не будет зафиксирована. Это означает, что фиксация внутренней транзакции не обязательно сохраняет обновления в системе.
В некоторых базах данных изменения, внесенные вложенной транзакцией, не видны «хостовой» транзакции до тех пор, пока вложенная транзакция не будет зафиксирована. По мнению некоторых, [ ВОЗ? ] это следует из свойства изолированности транзакций.
Возможность правильной обработки вложенных транзакций является обязательным условием для настоящей архитектуры приложений, основанной на компонентах. В инкапсулированной архитектуре на основе компонентов вложенные транзакции могут происходить без ведома программиста. Функция компонента может содержать или не содержать транзакцию базы данных (это инкапсулированный секрет компонента. См. « Скрытие информации »). Если вызов такой функции компонента выполняется внутри скобки BEGIN — COMMIT, возникают вложенные транзакции. Поскольку популярные базы данных, такие как MySQL [1] не разрешайте вложение скобок BEGIN - COMMIT, для этого необходима платформа или монитор транзакций. Когда мы говорим о вложенных транзакциях, следует понимать, что эта функция зависит от СУБД и доступна не для всех баз данных.
Теория вложенных транзакций аналогична теории плоских транзакций. [2]
В банковской сфере финансовые транзакции обычно обрабатываются с использованием открытых вложенных транзакций . [ нужна ссылка ] Это более свободный вариант модели вложенных транзакций, который обеспечивает более высокую производительность, принимая при этом сопутствующие компромиссы в виде несогласованности. [3]
Дальнейшее чтение
[ редактировать ]- Герхард Вейкум, Готфрид Воссен, Транзакционные информационные системы: теория, алгоритмы и практика параллельного управления и восстановления , Морган Кауфманн, 2002 г., ISBN 1-55860-508-8
Ссылки
[ редактировать ]- ^ «Операторы, вызывающие неявную фиксацию» . Справочное руководство MySQL 4.1 . Оракул . Проверено 5 декабря 2010 г.
- ^ Ресенде, РФ; Эль Аббади, А. (25 мая 1994 г.). «О теореме сериализуемости вложенных транзакций». Письма об обработке информации . 50 (4): 177–183. CiteSeerX 10.1.1.43.6470 . дои : 10.1016/0020-0190(94)00033-6 .
- ^ Вейкум, Герхард; Ханс-Дж. Щек (1992). Концепции и приложения многоуровневых транзакций и открытых вложенных транзакций . Морган Кауфманн. стр. 515–553 . CiteSeerX 10.1.1.17.7962 . ISBN 978-1-55860-214-4 .
{{cite book}}
:|journal=
игнорируется ( помогите )