пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Программирование в интернет:
» ПИ
» ОКГТМ
» КИНФС

Управління паралельним доступом. Поняття транзакції, оператори COMMIT, ROLLBACK та SAVEPOINT. Властивості транзакцій.

 

Транзакция ­ неделимая, с точки зрения воздействия на БД, последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации). При фиксации изменений в базе данных гарантируется сохранение либо всех изменений, либо ни одного. Поддержание механизма транзакций ­ показатель уровня развитости СУБД. Корректный механизм поддержания транзакций одновременно является основой обеспечения целостности баз данных.

У транзакций есть свои свойства – сокращенно ACID (Atomicity, Consistency, Isolation, Durability)

  • Неделимость – транзакции либо выполняются полностью, либо не выполняются.
  • Согласованность – транзакция переводит базу данных из одного согласованного состояния в другое.
  • Изолированность – результаты транзакции становятся доступны для других транзакций только после её фиксации.
  • Продолжительность – после фиксации транзакции изменения становятся постоянными.

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

  1. Явные – по умолчанию, каждая команда выполняется как отдельная транзакция. Пользователь может объединить несколько команд в одну транзакцию, явно указав начало и конец.
  2. Неявные – не существует оператора транзакции. Транзакция начинается с началом сеанса работы с БД. Завершается транзакция при следующих событиях:
  • Явно выполненный оператор завершения транзакции – rollback или commit.
  • Оператор DDL.
  • Завершение сеанса.

После окончания транзакции сразу неявно начинается новая транзакция.

Операторы управления транзакцией: 

  • COMMIT. Оператор COMMIT завершает транзакцию и делает любые выполненные в ней изменения постоянными (продолжительными). В распределенных транзакциях используются расширения оператора COMMIT. Эти расширения позволяют пометить оператор COMMIT (точнее, пометить транзакцию), задав для него комментарий, а также принудительно зафиксировать сомнительную распределенную транзакцию.
  • ROLLBACK. Простой оператор отката завершает транзакцию и отменяет все выполненные в ней и незафиксированные изменения. Для этого он читает информацию из сегментов отката и восстанавливает блоки данных в состояние, в котором они находились до начала транзакции.
  • SAVEPOINT. Оператор SAVEPOINT позволяет создать в транзакции "метку", или точку сохранения. В одной транзакции можно выполнять оператор SAVEPOINT несколько раз, устанавливая несколько точек сохранения. 
  • ROLLBACK TO <точка сохранения>. Этот оператор используется совместно с представленным выше оператором SAVEPOINT. Транзакцию можно откатить до указанной точки сохранения, не отменяя все сделанные до нее изменения.
  • SET TRANSACTION. Этот оператор позволяет устанавливать атрибуты транзакции, такие как уровень изолированности и то, будет ли она использоваться только для чтения данных или для чтения и записи. Этот оператор также позволяет привязать транзакцию к определенному сегменту отката.

21.01.2016; 22:59
хиты: 78
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь