КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Транзакции в базах данных. Управление транзакциями (конфликты, блокировка, сериализация).Транзакция – это логическая ед-ца работы (единица пользовательской активности по отношению к БД), посл-ть операций изменения БД, воспринимаемое СУБД как атомарное действие и используемая д/ целостности БД. Это преобразование одного ЦС в другое ЦС. При выполнении транзакции БД в нецелостном состоянии. Поддержка механизма транзакций обязательное условие д/ одно- и много- пользовательских СУБД. Свойства транзакции: атомарность (неделимая, выполняется все или ничего), согласованность (транзакции переводят одно согласованное состояние БД в другое без обязательной поддержки согласованности во всех промежуточных точках), изоляция (транзакции отделены 1 от другой, т. е. если запущено мн-во конкурирующих д/д транзаций, любое обновление определенной из них б. скрыто от остальных до тех пор, пока она выполняется), долговечность (когда транзакция выполнена, ее обновление сохраняется, даже если в следующий момент произойдет сбой системы) Транзакция начинается с выполнения оператора begin transaction и заканчивается - commit (фиксируется новое ЦС) или rollback (возвращается к предыдущему ЦС). С-ма поддерживает файл регистрации (журнал) на диске, где записывает детали всех операций обновления. Т. о. при необходимости отмены нек-ого обновления с-ма м. использовать соответствующий журнал д/ возвращения объекта в начальное состояние. Механизм журнализации (запись об изменении объекта занесена в журнал до того, как б. выполнено и зафиксировано изменение объекта) н. д/ надежности хранения данных. tф – точка фиксации записи состояний; сбой – удаляется (не фиксируется в журнале). Т1 – сохранена полностью, Т2 – откат, Т3 – удалена, т.к. не зафиксирован в журнале. Сериализ-ия Т:перемешивание запросов и операторов изменения БД, поступающих от разных Т. т.о., что рез-т выполнения всего набора б. эквив-н рез-ту из послед-ого выполнения. Сущ-ет проблема многопользовательского режима (неск-ко Т работает с одними и теми же данными) – проблема параллелизма. Для борьбы сущ-ет мех-зм блокировок: жесткая X(эксклюзивная) – сохраняет до полного завершения транзакции; мягкая S– разрешает считывание, не разрешает запись. Блокировка накладываются на кортежи, отношения.
Получили что работа транзакции А вообще не существует. Транзакция В неверно прочитала данное. Решение: 1)мех-м приоритетов кто 1 начал, тот продолжает 2)построение сериального плана-синхронизационного (построить последовательно транзакции, но мах параллельно). Искать жертву (временные метки), к-рая обеспечит мах проведение транзакций. Протокол двухфазной фиксации (подготовительная фаза (адм-р дает указния обработчикам быть готовым), фаза фиксации (адм-р приказывает провести фиксацию)) используется в с-мах, позволяющие транзакциям взаимодействовать с многоуровневыми админист-ресурсами. Если одна транзакция – не удачна, то все откатываются.
|