Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Что такое транзакция. Журнал транзакций.






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

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

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

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

Когда пользователь выполняет запрос на изменение базы данных, СУБД автоматически вносит в журнал транзакций одну запись для каждой строки, измененной данным оператором. Эта запись содержит две копии строки. Одна копия представляет собой строку до изменения, а другая ­ после изменения. Только после того, как в журнале будет сделана запись, СУБД изменит физическую строку на диске. Затем, если пользователь выполняет оператор СОММIТ, в журнале отмечается конец транзакции. Если пользователь выполняет оператор ROLLBACK, СУБД обращается к журналу и извлекает из него " исходные" копии строк, измененных во время транзакции. Используя эти копии, СУБД возвращает строки в прежнее состояние и таким образом отменяет изменения, внесенные в базу данных во время выполнения транзакции.

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.