X-PDF

Понятие транзакции. Основные свойства транзакций

Поделиться статьей

Управление транзакциями.

Все современные промышленные СУБД и часть настольных поддерживают работу с транзакциями. Механизм транзакций важен во многих отношениях. Мы в настоящем курсе рассмотрим его с двух точек зрения – как основу для восстановления целостности баз данных и как часть механизма управления одновременной работой с данными нескольких пользователей. Но для того, чтобы понять роль транзакций необходимо рассмотреть транзакции как таковые. В первую очередь, дадим определение понятия «транзакция».

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

То есть, транзакция, вне зависимости от количества входящих в нее операций, рассматривается как единое целое, и может либо целиком завершиться успешно, либо не выполниться вообще, в случае, если в какой-либо из операций произойдет сбой. При успешном завершении транзакция фиксируется, выполняется операция «commit». При возникновении сбоя уже выполненные действия отменяются и транзакция «откатывается», выполняется операция «rollback».

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

Приведем одну из возможных последовательностей действий, нужных для выполнения этой операции:

1. Проверить доступность счета, с которого предполагается списать деньги, и достаточность средств на нём. Это операция чтения данных, возможно, из нескольких таблиц).

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

3. Уменьшить значение остатка на счете-источнике. Это операция модификации данных.

4. Увеличить значение остатка на счете-получателе. Это операция модификации данных.

5. Создать запись о проведенной операции в журнале операций. Это операция создания новой записи.

Представленная информация была полезной?
ДА
56.82%
НЕТ
43.18%
Проголосовало: 88

Можно предложить и другие варианты выполнения этой операции, но главным является то, что вся эта последовательность либо должна выполняться, либо ни одна из операций не должна быть выполнена. Очевидно, что если мы остановимся, скажем, на шаге 4, то средства со счета-источника просто исчезнут – будут списаны «в никуда». То есть, согласованность данных будет нарушена. Кроме того, необходимо гарантировать, что в процессе выполнения транзакции с задействованными в ней счетами не будут выполняться никакие другие операции. В самом деле, если после того, как мы проверили достаточность средств на счете-источнике, эти средства будут с него списаны другой операцией – мы опять-таки скорее всего столкнемся с нарушениями согласованности данных.

Разумеется, поддержка механизма транзакций технически может быть и очень сложной – при наличии десятков и сотен пользователей и тысяч обращений к данным обеспечить независимость этих обращений друг от друга, а также возможность отмены операций и возврата базы данных к исходному состоянию непросто. Для реализации этого механизма могут задействоваться различные средства, но есть свойства, которыми должны обладать транзакции и поддерживающая их система. Обычно для обозначения этих свойств используют аббревиатуру ACID – Atomicity, Consistency, Isolation, Durability. В переводе на русский – Атомарность, Согласованность, Изолированность и Долговечность. Рассмотрим эти свойства подробнее.

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

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

Как уже было сказано, предполагается, что транзакция переводит БД из одного согласованного состояния в другое, но обеспечить это должны программисты, задающие последовательность операций. Роль СУБД здесь – гарантировать, что все операции будут выполнены успешно (или не будут выполнены вообще). Кроме того, в процессе выполнения транзации БД может проходить через ряд несогласованных состояний (скажем, в приведенном выше примере с переводом средств система несогласованна после выполнения операции 3 до выполнения операции 4).

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

Долговечность – это свойство транзакции сохраняться в системе «навсегда» после успешного завершения. Очевидно, что в процессе работы СУБД могут возникать сбои оборудования, отключения питания, иные ошибки, но гарантируется, что если выдано сообщение об успешном завершении транзакции, то изменения, внесенные ей в данные, сохранятся в любом случае и когда состояние базы данных будет восстановлено после сбоя, эти изменения никуда не денутся. Разумеется, речь не идет о случаях, когда полностью вышел из строя носитель информации, на котором находилась база данных, и ее пришлось восстанавливать из резервной копии. Хотя даже и в этих случаях, как будет обсуждаться далее, выполненные транзакции иногда могут быть восстановлены.

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


Поделиться статьей
Автор статьи
Анастасия
Анастасия
Задать вопрос
Эксперт
Представленная информация была полезной?
ДА
56.82%
НЕТ
43.18%
Проголосовало: 88

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram

Лекция 15. Контроль учебного процесса как важный компонент педагогической системы

Поделиться статьей

Поделиться статьейПонятие «педагогический контроль» и его сущность Закон Российской Федерации «Об образовании» провозглашает в качестве одного из основных принципов государственной


Поделиться статьей

Малый бизнес в России и совершенная конкуренция

Поделиться статьей

Поделиться статьейУже приведенный нами простейший, постоянно встречающийся в повседневной жизни пример с торговлей хлебом наводит на мысль, что теория совершенной


Поделиться статьей

Экологическая обстановка, ее влияние на здоровье и продолжительность жизни людей.

Поделиться статьей

Поделиться статьейНаучно-технический прогресс, с одной стороны, позволил значительно расширить возможности удовлетворения материальных и культурных потребностей человечества, но, с другой, —


Поделиться статьей

Экономика Древнего Египта

Поделиться статьей

Поделиться статьейВозникновение государства, развитие экономики История древнего египетского государства интересна и поучительна — тысячелетняя его история позволяет проследить экономические, социальные


Поделиться статьей

Статья 5. Мы, многонациональный народ Российской Федерации,

Поделиться статьей

Поделиться статьейКОНСТИТУЦИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Мы, многонациональный народ Российской Федерации, соединенные общей судьбой на своей земле, утверждая права и свободы человека,


Поделиться статьей

Независимость государства

Поделиться статьей

Поделиться статьейНезависимость государства в международных отношениях предопределяет необходимость регулирования отношений между государствами особой системой права — международным правом. В свою


Поделиться статьей

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram
Заявка
на расчет