Найти в Дзене

Транзакция

Транзакция - это совокупность операций над базой данных, которые вместе образуют логически целостную процедуру, и могут быть либо выполнены вместе, либо не будет выполнена ни одна из них. Транзакции являются одним из средств обеспечения согласованности (непротиворечивости) базы данных, напряду с ограничениями целостности, накладываемыми на таблицы. Транзакция переводидит базу данных из одного согласованного состояния в другое согласованное состояние. Транзакция может иметь два исхода: первый - изменения данных, произведеные в ходе ее выполнения, успешно зафиксированы и базе данных второй - транзакция отменяется, и отменяются все ее изменения, выполняемые в ее рамках. Откат(rollback) - отмена транзакции. Реализация транзакций в СУБД основана на многоверсионной модели (Multiversion Concurrency Control, MVCC). Эта модель предполагает, что каждый SQL-оператор видит снимок данных(snapshot), согласованное состояние (версию) базы данных, которое она имела на определенный момент времени.

Транзакция - это совокупность операций над базой данных, которые вместе образуют логически целостную процедуру, и могут быть либо выполнены вместе, либо не будет выполнена ни одна из них.

Транзакции являются одним из средств обеспечения согласованности (непротиворечивости) базы данных, напряду с ограничениями целостности, накладываемыми на таблицы.

Транзакция переводидит базу данных из одного согласованного состояния в другое согласованное состояние.

Транзакция может иметь два исхода:

первый - изменения данных, произведеные в ходе ее выполнения, успешно зафиксированы и базе данных

второй - транзакция отменяется, и отменяются все ее изменения, выполняемые в ее рамках.

Откат(rollback) - отмена транзакции.

Реализация транзакций в СУБД основана на многоверсионной модели (Multiversion Concurrency Control, MVCC). Эта модель предполагает, что каждый SQL-оператор видит снимок данных(snapshot), согласованное состояние (версию) базы данных, которое она имела на определенный момент времени.

Снимок - это не физическая копия всей базы данных, это несколько чисел, которые идентифицируют текущую транзакцию и те транзакции, которые уже выполнялись в момент начала текущей.

При параллельно исполняемых транзакциях не нарушают согласованности данных снимка.

При применении MVCC операции чтения никогда не блокируются операциями записи, а операции записи никогда не блокируются операциями чтения

Свойства транзакций

Атомарность(Atomicity). Это свойство означает, что либо транзакция будет зафиксирована в базе данных полностью, т.е. будут зафиксированы результаты выполнения всех ее операций, либо не будет зафиксирована ниодна операция транзакции.

Согласованность(Consistency). Это свойство предписывает, чтобы в результате успешного выполнения транзакции база данных была переведенна из одного согласованного состояния в другое согласованное состояние.

Изолированности(Isolation). Во время выполнения транзакции другие транзакции должны оказывать по возможности минимальное влияние на нее.

Долговечности(Durability). После успешной фиксации транзакции пользователь должен быть уверен, что данные надежно сохранены в базе данных и в последствии могут быть извлечены из нее, не зависимо от последующих возможных сбоев в работе системы.