Транзакции обеспечивают механизм для объединения нескольких изменений базы данных в одну логическую операцию. После внесения изменений в базу данных они могут быть совместно зафиксированы или отменены.
Выделяют 4 свойства транзакции:
~ Атамарность – (как единое целое) либо выполняется всё, либо ничего.
~ Согласованность – переводит БД из одного согласованного или целостного состояния в другое. Внутри транзакции согласованность может нарушаться.
~ Изоляция – разные транзакции изолированны друг от друга. Результат 1-ой транзакции будет виден во 2 только по завершению 1-ой.
~ Долговечность. Если транзакция выполнена. то результат сохраняется в БД даже при последующем сборе.
Любая транзакция завершается одним из 2-х возможных способов.
При успешном завершении транзакции результаты фиксируются /*commit*/ в бахе данных. Иначе она отменяется т.е происходит откат (roll back).
В большинстве dml2 для указания границ отдельных транзакций используется оператор
begin transaction
commit
Параллельность.
Современные СУБД – многопользовательские системы и соответсвенно одновременно проходят несколько транзакций.
Набор из нескольких транзакций элементарные операции которые чередуются друг с другом называется смесью транзакций.
При смеси транзакций могут возникнуть следующие проблемы:
- проблема потери результатов обновления
-проблема незафиксированной зависимости
-проблема несогласованной обработки