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