36291

Понятие транзакции

Доклад

Информатика, кибернетика и программирование

Понятие транзакции. Транзакции – несколько операторов языка SQL которые либо все выполняются по очереди либо все не выполняются. Согласованность – гарантия что по мере выполнения транзакции данные переходят из одного согласованного состояния в другое.

Русский

2013-09-21

38.5 KB

6 чел.

  1.  Понятие транзакции

Транзакции.

Понятие транзакции.

Транзакции – несколько операторов языка SQL, которые либо все выполняются (по очереди), либо все не выполняются.

Поддержание механизма транзакций – показатель развитости СУБД. Этот механизм является основой обеспечения целостности БД. Он также является основой изолированности пользователей в многопользовательских СУБД.

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

Транзакция характеризуется четырьмя основными свойствами:

  1.  Атомарность – выражается в том, что транзакция должна быть выполнена целиком или не выполнена вообще.
  2.  Согласованность – гарантия, что по мере выполнения транзакции данные переходят из одного согласованного состояния в другое.
  3.  Изолированность. Означает, что конкурирующие за доступ к БД транзакции физически обрабатываются последовательно, изолированно друг от друга. Пока не закончится выполнение одной, не начнется выполнение другой. Однако, для пользователя это выглядит так, как будто они выполняются параллельно. Причем промежуточные результаты незавершенной транзакции не должны быть доступны другим транзакциям.
  4.  Долговечность. Означает, что если транзакция завершена успешно, то те изменения, которые были произведены в данных, не могут быть потеряны в виде каких-либо обстоятельств.

Транзакции и целостность БД.

Возможны 2 варианта завершения транзакции. Если все операторы успешно выполнены и в процессе выполнения транзакции не было сбоев АО или ПО, транзакция фиксируется. В противном случае БД не будет изменена. Все изменения данных будут аннулированы.

Фиксация транзакций COMMIT.

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

В языке SQL определены такие функции, как COMMIT  и ROLLBACK. COMMIT означает фиксацию транзакции, а ROLLBACK – ее откат. Язык SQL предполагает, что транзакция начинается с первого SQL-оператора, инициируемого пользователем или содержащегося в программе. Также транзакция может начинаться с любого SQL-оператора., следующего за COMMIT или ROLLBACK. Если же работа была прервана сбоем, то транзакция не фиксируется.

          А)                                   Б)                                      В)                                       Г)  

Пояснения к рисунку.

  1.  – транзакция заканчивается принудительно функцией COMMIT, т.е. происходит фиксация изменений в БД.
  2.  – транзакция заканчивается принудительно функцией ROLLBACK. При этом происходит откат транзакции. Все изменения, внесенные данной транзакцией, аннулируются. БД на диске остается без изменений.
  3.  – программа завершается без сбоев, что означает фиксацию транзакции. Т.е. все изменения заносятся в БД.
  4.   – программа прервана из-за сбоя. Откат транзакции, БД не изменяется. Все выполненные в рамках транзакции изменения потеряны.

Ограничения целостности могут немедленно проверяться или откладываемые.

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

Откладываемые ограничения – это ограничения на саму БД. Они проверяются в конце транзакции. В случае их нарушения COMMIT автоматически заменяется на ROLLBACK.

Возможности отката и фиксации транзакции обеспечиваются благодаря журнализации -  ведению журнала транзакции (см. далее).

Параллельное выполнение транзакции.

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

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

  1.  Пропавшие изменения.

Предположим, на складе есть 40 мониторов. 2 оператора одновременно работают с клиентами. Первый получил заказ на 30 мониторов. Он выставляет счет на 30 мониторов и оформляет покупку. При этом обновляется запись о количестве товаров на складе и остается 10 штук. В это же время второй оператор оформляет покупку на 20 мониторов. Т.к. на момент  его запроса первая покупка еще не была оформлена, то он также оформляет покупку. Таким образом, продается 50 мониторов вместо реально существующих 40. БД находится в несогласованном состоянии.

  1.  Проблема промежуточных данных.
  2.  Проблемы несогласованных данных.
  3.  Проблема строк-призраков.

Предположим, что надо приготовить 2 отчета за организованный период – стандартный и расширенный. В то время, как формируется для печати первый отчет, оператор получает еще один заказ, укладывающийся в данный период. Во втором отчете новая покупка будет зафиксирована, а в первом нет.


БД

Д

БД

БД

БД

БД

INSERT

COMMIT

INSERT

ROLLBACK

INSERT

Программа завершена

INSERT

Программа прервана


 

А также другие работы, которые могут Вас заинтересовать

74345. РАСЧЕТ И АНАЛИЗ УСТАНОВИВШЕГОСЯ РЕЖИМА УЧАСТКА ЭЛЕКТРИЧЕСКОЙ СЕТИ 1.09 MB
  В качестве участка может рассматриваться любой элемент трехфазной электрической сети (линия электропередачи, трансформатор и т.д.), в дальнейшем именуемый также общим термином — электропередача. Предварительно рассмотрим участок — электропередачу, схема замещения которого состоит из одной продольной ветви с сопротивлением
74346. ПРЕДСТАВЛЕНИЕ КОМПЕНСИРУЮЩИХ УСТРОЙСТВ 158 KB
  Создаются возможности регулирования напряжения в узлах сети и на зажимах электропотребителей: Реактивная мощность передаваемая от электростанции и других центральных источников загружает все элементы электрической сети уменьшая возможность передачи активной мощности. Поэтому по экономическим соображениям потребность в реактивной мощности в большей ее части необходимо удовлетворять за счет установки местных источников реактивной мощности. В этом случае уменьшается передача реактивной мощности по участкам сетей: снижаются потери...
74347. Составление схем замещения сетей одного или нескольких напряжений. Учет трансформации 64 KB
  Схема имеет 5 линий различного класса напряжения и 5 подстанций ступеней трансформации. Например если подстанция ПС1 соединяет выводы генератора с ЛЭП 500кВ то возможными напряжениями линий последующих ступеней будут 220 110 и т. Чем ниже напряжение сети тем большее количество линий она имеет и тем меньшая мощность передается по каждой из них.
74348. Электрические параметры режима и параметры схемы замещения. Виды режимов и их характеристика 51 KB
  Электрические параметры режима и параметры схемы замещения. Исходными данными для расчета установившихся режимов служат: схема электрического соединения и параметры сети электроэнергетической системы данные о потребителях и источниках электроэнергии. Нагрузки реальных электрических сетей при их проэктировании и эксплуатации обычно задают значениями потребляемых ими мощностей или токов ЭЭС представляется схемой замещения параметры которой обычно разделяют на продольные входящие в последовательную цепь передачи и распределения...
74349. Виды записи и составляющие полной мощности при сопряженном векторе тока. Векторные диаграммы комплексов мощности и тока 1.21 MB
  Виды записи и составляющие полной мощности при сопряженном векторе тока. Векторные диаграммы комплексов мощности и тока запись мощности при сопряженном токе Рассмотри общий случай при активноиндуктивной нагрузки источник синусоидального тока. Смещение тока относительно напряжения и определяет соотнощение между активной и реактивной составляющими мощности. Это соотношение известно как коэффициент мощности.
74350. Закон Ома для участка электрической цепи. Математическая запись. Падение и потери напряжения. Векторная диаграмма токов и напряжений 525 KB
  Падение и потери напряжения. Закон Ома для участка электрической сети: Ток на участке сети при неизменном сопротивлении пропорционален падению напряжения на участке сети. При неизменном падении напряжения ток на участке сети обратно пропорционален сопротивлению сети Математическая запись: Падение и потери напряжения: Если взять разность показаний вольтметров V1 и V2: эта разность компенсируется потерей или перепадом напряжения. эта величина называется падением напряжения Протекание электрического тока обусловлено...
74351. Характеристика и определение потерь мощности в ЛЭП напряжением 6-500 кВ. Баланс мощности ЛЭП 33.5 KB
  Баланс мощностей является следствием закона сохранения энергии и может служить критерием правильности расчета электрической цепи. а Постоянный ток Для любой цепи постоянного тока выполняется соотношение: 14 Это уравнение представляет собой математическую форму записи баланса мощностей: суммарная мощность генерируемая источниками электрической энергии равна суммарной мощности потребляемой в цепи. Из закона сохранения энергии следует что сумма всех отдаваемых активных мощностей равна сумме всех потребляемых активных мощностей т. 15В...