Что такое транзакция базы данных?
База данных транзакций является логической единицей обработки в СУБД , которая влечет за собой одно или более операции доступа к базе данных. Короче говоря, транзакции базы данных представляют собой реальные события любого предприятия.
Все типы операций доступа к базе данных, которые проводятся между операторами начала и конца транзакции, рассматриваются в СУБД как единая логическая транзакция. Во время транзакции база данных несовместима. Только после того, как база данных зафиксирована, состояние изменяется с одного согласованного состояния на другое.
В этом руководстве вы узнаете:
- Факты о транзакциях с базой данных
- Зачем вам нужен параллелизм в транзакциях?
- Состояния транзакций
- Что такое свойства ACID?
- Типы сделок
- Что такое расписание?
Факты о транзакциях с базой данных
- Транзакция - это программная единица, выполнение которой может изменить или не изменить содержимое базы данных.
- Концепция транзакции в СУБД выполняется как единое целое.
- Если операции с базой данных не обновляют базу данных, а только извлекают данные, этот тип транзакции называется транзакцией только для чтения.
- Успешная транзакция может изменить базу данных с одного СОГЛАСОВАННОГО СОСТОЯНИЯ на другое.
- Транзакции СУБД должны быть атомарными, согласованными, изолированными и надежными.
- Если база данных находилась в несогласованном состоянии до транзакции, она осталась бы в несогласованном состоянии после транзакции.
Зачем вам нужен параллелизм в транзакциях?
База данных - это общий ресурс, к которому осуществляется доступ. Он используется многими пользователями и процессами одновременно. Например, банковская система, железнодорожные и авиационные системы бронирования, мониторинг фондового рынка, инвентарь в супермаркетах, кассы и т. Д.
Отсутствие управления одновременным доступом может вызвать такие проблемы, как:
- Аппаратный сбой и сбои системы
- Одновременное выполнение одной и той же транзакции, тупик или низкая производительность
Состояния транзакций
Ниже перечислены различные состояния концепции транзакции в СУБД:
Состояние | Типы транзакций |
Активное состояние | Транзакция переходит в активное состояние, когда начинается процесс выполнения. В этом состоянии могут выполняться операции чтения или записи. |
Частично совершено | После завершения транзакции транзакция переходит в состояние частичной фиксации. |
Выполненное состояние | Когда транзакция зафиксирована в состоянии, она уже успешно завершила свое выполнение. Более того, все его изменения постоянно фиксируются в базе данных. |
Неудачное состояние | Транзакция считается неудачной, если какая-либо из проверок завершилась ошибкой или если транзакция прервана, пока она находится в активном состоянии. |
Прекращенное состояние | Состояние транзакции переходит в состояние завершения, когда определенные транзакции, покидающие систему, не могут быть перезапущены. |
Давайте изучим диаграмму перехода состояний, которая показывает, как транзакция перемещается между этими различными состояниями.
- Как только транзакция получает статус выполнения, она становится активной. Он может выполнить операцию READ или WRITE.
- После завершения операций READ и WRITE транзакция переходит в состояние частичной фиксации.
- Далее, некоторые протоколы восстановления должны гарантировать, что сбой системы не приведет к невозможности постоянной записи изменений в транзакции. Если эта проверка успешна, транзакция фиксируется и переходит в зафиксированное состояние.
- Если проверка завершилась неудачно, транзакция переходит в состояние Failed.
- Если транзакция прерывается, пока она находится в активном состоянии, она переходит в состояние сбоя. Транзакцию следует откатить, чтобы отменить влияние ее операций записи на базу данных.
- Завершенное состояние относится к транзакции, покидающей систему.
Что такое свойства ACID?
Свойства ACID используются для поддержания целостности базы данных во время обработки транзакции. КИСЛОТА в СУБД означает A tomicity, C onsistency, I solation и D urability.
- Атомарность: транзакция - это единая операция. Вы либо выполняете его полностью, либо не выполняете совсем. Не может быть частичного исполнения.
- Согласованность: после выполнения транзакции она должна перейти из одного согласованного состояния в другое.
- Изоляция: транзакция должна выполняться изолированно от других транзакций (без блокировок). Во время одновременного выполнения транзакции промежуточные результаты транзакций из одновременно выполняемых транзакций не должны быть доступны друг другу. (Уровень 0,1,2,3)
- Долговечность: · После успешного завершения транзакции изменения в базе данных должны сохраняться. Даже в случае сбоев системы.
Свойство ACID в СУБД с примером:
Ниже приведен пример свойства ACID в СУБД:
Transaction 1: Begin X=X+50, Y = Y-50 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END
Транзакция 1 переводит 50 долларов США со счета X на счет Y.
Транзакция 2 - это кредитование каждого счета с выплатой процентов в размере 10%.
Если обе транзакции отправляются вместе, нет гарантии, что транзакция 1 будет выполнена до транзакции 2 или наоборот. Независимо от порядка, результат должен быть таким, как если бы транзакции выполнялись последовательно одна за другой.
Типы сделок
На основе областей применения
- Нераспределенные vs. распределенные
- Компенсационные транзакции
- Время транзакций
- Он-лайн или партия
На основе действий
- Два шага
- Ограниченный
- Модель действия
На основе структуры
- Плоские или простые транзакции: они состоят из последовательности примитивных операций, выполняемых между начальными и конечными операциями.
- Вложенные транзакции: транзакция, содержащая другие транзакции.
- Рабочий процесс
Что такое расписание?
Расписание - это процесс, создающий единую группу из нескольких параллельных транзакций и выполняющий их одну за другой. Он должен сохранять порядок, в котором инструкции появляются в каждой транзакции. Если две транзакции выполняются одновременно, результат одной транзакции может повлиять на вывод другой.
Пример
Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 2: Read Product Quantity
Если Транзакция 2 выполняется до Транзакции 1, будет считана устаревшая информация о количестве товара. Следовательно, графики необходимы.
Параллельное выполнение в базе данных неизбежно. Но параллельное выполнение разрешено, когда между одновременно выполняющимися транзакциями существует отношение эквивалентности. Эта эквивалентность бывает трех типов.
ЭКВИВАЛЕНТНОСТЬ РЕЗУЛЬТАТОВ:
Если два расписания отображают один и тот же результат после выполнения, это называется расписанием эквивалентного результата. Они могут предложить один и тот же результат для одного значения и разные результаты для другого набора значений. Например, одна транзакция обновляет количество продукта, а другая обновляет данные о клиенте.
Просмотр эквивалентности
Эквивалентность представления возникает, когда транзакция в обоих расписаниях выполняет аналогичное действие. Например, одна транзакция вставляет сведения о продукте в таблицу продуктов, а другая транзакция вставляет сведения о продукте в архивную таблицу. Транзакция такая же, но таблицы разные.
КОНФЛИКТНАЯ эквивалентность
В этом случае две транзакции обновляют / просматривают один и тот же набор данных. Между транзакциями существует конфликт, так как порядок выполнения влияет на результат.
Что такое сериализуемость?
Сериализуемость - это процесс поиска параллельного расписания, вывод которого равен последовательному расписанию, в котором транзакции выполняются одна за другой. В зависимости от типа расписаний существует два типа сериализуемости:
- Конфликт
- Вид
Резюме:
- Управление транзакциями - это логическая единица обработки в СУБД, которая влечет за собой одну или несколько операций доступа к базе данных.
- Это транзакция - это программный модуль, выполнение которого может изменить или не изменить содержимое базы данных.
- Отсутствие управления одновременным доступом может вызвать такие проблемы, как отказ оборудования и сбои системы.
- Активный, частично зафиксированный, зафиксированный, неудачный и завершенный - важные состояния транзакции.
- Полная форма свойств ACID в СУБД - это атомарность, согласованность, изоляция и долговечность.
- Три типа транзакций СУБД: «Основа по областям приложения», «Действие» и «Структура».
- Расписание - это процесс, создающий единую группу из нескольких параллельных транзакций и выполняющий их одну за другой.
- Сериализуемость - это процесс поиска параллельного расписания, выходные данные которого равны последовательному расписанию, в котором транзакции выполняются одна за другой.