Базы данных. Учебное пособие


Обработка транзакций


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

Если  БД  непротиворечива  до  выполнения  транзакции,  то  она  должна  оставаться  непротиворечивой  и  после  ее  выполнения.  Для  того  чтобы  обеспечить  выполнение  этих  условий,  транзакции  должны  быть  неделимыми,  что  означает,  что  либо  все  действия,  связанные  с  транзакцией,  выполняются  до  конца,  либо  ни  одно  из  них  не  выполняется.  Например,  транзакция  записи  взноса  клиента  на  сумму  500 $  включает  следующие  действия:

1. Изменение записи клиента: уменьшение суммы счета на 500 $.

2. Изменение  кассовой  записи:  увеличение  суммы  на  500 $.    

 

Предположим,  что  второй  шаг  не  выполняется.  Тогда  баланс  счетов  не  будет  сходиться.  На  рис.5.1  показано,  что  происходит,  когда  эти  действия  выполняются  как  последовательность  независимых  шагов  (а)  и  когда  они  выполняются  как  единая  неделимая  транзакция  (б).

 

Для  обработки  транзакций  требуется,  чтобы  СУБД  поддерживала  запись  транзакции  для  каждого  изменения,  вносимого  в  БД.  Один  из  способов – применение  протокола.  Когда  клиент  платит  500 $  по  счету,  транзакция  включает  1) уменьшение  счета  клиента  и  2) увеличение  кассового  счета.  Во  время  выполнения  транзакции  все  записанные  операции  задерживаются  до  тех  пор,  пока  не  будет  выполнено  последнее  действие  транзакции.  Результаты  обновления  записываются  в  протокол  транзакций.  Когда  все  действия  выполнены,  информация  об  обновлении  из  протокола  используется  для  переноса  обновленной  информации  в  соответствующие  записи  данных.


                                                   ДЕЙСТВИЯ                                                         РЕЗУЛЬТАТ

 

СЧЕТ  КЛИЕНТА                        1.


Начало  Назад  Вперед



Книжный магазин