Управление транзакциями. Транзакция – это последовательность
операций над БД, рассматриваемых СУБД как единое целое. Либо тран-
закция успешно выполняется, и СУБД фиксирует изменения БД, произ-
веденные этой транзакцией, во внешней памяти, либо ни одно из этих
изменений никак не отражается на состоянии БД. Понятие транзакции
необходимо для поддержания логической целостности БД. Таким обра-
зом, существование механизма транзакций является обязательным усло-
вием даже однопользовательских СУБД (если, конечно, такая система
заслуживает названия СУБД). Но понятие транзакции гораздо более
важно в многопользовательских СУБД.
При управлении транзакциями в многопользовательской СУБД необ-
ходимо добиться такого порядка их выполнения (сериализации), при ко-
тором суммарный эффект смеси транзакций был бы эквивалентен эф-
фекту их некоторого последовательного выполнения. Существует не-
сколько базовых алгоритмов сериализации транзакций. В централизо-
ванных СУБД наиболее распространены алгоритмы, основанные на син-
хронизационных захватах объектов БД. При использовании любого ал-
горитма сериализации возможны ситуации конфликтов между двумя или
более транзакциями по доступу к объектам БД. В этом случае для под-
держания сериализации необходимо выполнить откат (ликвидировать
все изменения, произведенные в БД) одной или более транзакций. Это
один из случаев, когда пользователь многопользовательской СУБД мо-
жет реально (и достаточно неприятно) ощутить присутствие в системе
транзакций других пользователей. Более подробно этот вопрос будет
рассмотрен далее.