Какво представлява транзакцията с база данни?
А База данни на транзакциите е логическа единица за обработка на СУБД с които е свързано едно или повече работа достъп до база данни. Накратко, транзакциите с бази данни представляват реални събития на всяко предприятие.
Всички типове операции за достъп до база данни, които се провеждат между началните и крайните транзакции, се считат за единична логическа транзакция в СУБД. По време на транзакцията базата данни е несъвместима. Само след като базата данни е ангажирана, състоянието се променя от едно последователно състояние в друго.
В този урок ще научите:
- Факти за транзакциите с база данни
- Защо се нуждаете от едновременност в транзакциите?
- Състояния на транзакции
- Какво представляват ACID свойствата?
- Видове транзакции
- Какво е график?
Факти за транзакциите с база данни
- Транзакцията е програмна единица, чието изпълнение може или не може да промени съдържанието на база данни.
- Концепцията за транзакцията в СУБД се изпълнява като една единица.
- Ако операциите с базата данни не актуализират базата данни, а само извличат данни, този тип транзакция се нарича транзакция само за четене.
- Успешната транзакция може да промени базата данни от едно ПОСТОЯННО СЪСТОЯНИЕ в друго
- Сделките на СУБД трябва да бъдат атомни, последователни, изолирани и трайни
- Ако базата данни е била в противоречиво състояние преди транзакция, тя ще остане в несъответстващо състояние след транзакцията.
Защо се нуждаете от едновременност в транзакциите?
Базата данни е споделен ресурс, до който има достъп. Той се използва от много потребители и едновременно обработва. Например банковата система, железопътната и въздушната резервации, мониторинг на фондовия пазар, инвентаризация на супермаркети и каси и др.
Неуправляването на едновременния достъп може да създаде проблеми като:
- Неизправност на хардуера и сривове на системата
- Едновременно изпълнение на същата транзакция, блокиране или бавно изпълнение
Състояния на транзакции
Различните състояния на концепцията за транзакция в СУБД са изброени по-долу:
Щат | Видове транзакции |
Активно състояние | Транзакцията влиза в активно състояние, когато започне процесът на изпълнение. По време на това състояние могат да се извършват операции за четене или запис. |
Частично ангажиран | Транзакцията преминава в частично ангажирано състояние след края на транзакцията. |
Ангажирана държава | Когато транзакцията е ангажирана със състояние, тя вече е завършила успешно изпълнението си. Освен това всички негови промени се записват в базата данни постоянно. |
Неуспешно състояние | Транзакцията се счита за неуспешна, когато някоя от проверките се провали или ако транзакцията е прекъсната, докато е в активно състояние. |
Прекратена държава | Състоянието на транзакцията достига прекратено състояние, когато определени транзакции, които напускат системата, не могат да бъдат рестартирани. |

Нека изучим диаграма на прехода на състоянието, която подчертава как една транзакция се движи между тези различни състояния.
- След като транзакцията посочва изпълнение, тя става активна. Той може да издаде операция ЧЕТЕ или ПИШЕ.
- След като операциите READ и WRITE завършат, транзакциите стават частично ангажирани.
- На следващо място, някои протоколи за възстановяване трябва да гарантират, че отказ на системата няма да доведе до невъзможност за постоянно записване на промените в транзакцията. Ако тази проверка е успешна, транзакцията се фиксира и влиза в ангажирано състояние.
- Ако проверката е неуспешна, транзакцията преминава в състояние Failed.
- Ако транзакцията е прекъсната, докато е в активно състояние, тя преминава в неуспешно състояние. Транзакцията трябва да се върне обратно, за да се отмени ефектът от нейните операции по запис върху базата данни.
- Прекратеното състояние се отнася до транзакцията, напускаща системата.
Какво представляват ACID свойствата?
ACID свойствата се използват за поддържане целостта на базата данни по време на обработката на транзакциите. ACID в СУБД означава A tomicity, C постоянство, I изолация и D rability.
- Атомност: Транзакцията е единична единица на действие. Или го изпълнявате изцяло, или изобщо не го изпълнявате. Не може да има частично изпълнение.
- Последователност: След като транзакцията бъде изпълнена, тя трябва да премине от едно последователно състояние в друго.
- Изолация: Транзакцията трябва да се изпълнява изолирано от други транзакции (без заключвания). По време на едновременно изпълнение на транзакции, междинните резултати от транзакции от едновременно изпълнени транзакции не трябва да се предоставят един на друг. (Ниво 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 или обратно. Независимо от поръчката, резултатът трябва да бъде така, сякаш транзакциите се извършват последователно една след друга.
Видове транзакции
Въз основа на областите на приложение
- Неразпределено срещу разпределено
- Компенсиращи транзакции
- Време на транзакции
- Онлайн срещу партида
Въз основа на Действия
- Две стъпки
- Ограничен
- Модел на действие
Въз основа на структурата
- Плоски или прости транзакции: Състои се от последователност от примитивни операции, изпълнявани между начална и крайна операция.
- Вложени транзакции: Транзакция, която съдържа други транзакции.
- Работния процес
Какво е график?
Графикът е процес, създаващ единична група от множество паралелни транзакции и изпълняващ ги една по една. Той трябва да запази реда, в който инструкциите се показват във всяка транзакция. Ако две транзакции се изпълняват едновременно, резултатът от една транзакция може да повлияе на изхода на други.
Пример
Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 2: Read Product Quantity
Ако Транзакция 2 се изпълни преди Транзакция 1, ще се прочете остаряла информация за количеството на продукта. Следователно са необходими графици.
Паралелното изпълнение в база данни е неизбежно. Но паралелното изпълнение е разрешено, когато има връзка на еквивалентност между едновременно изпълняваните транзакции. Тази еквивалентност е от 3 вида.
РАВНОСТ НА РЕЗУЛТАТА:
Ако два графика показват един и същ резултат след изпълнение, той се нарича график, еквивалентен на резултата. Те могат да предложат един и същ резултат за някаква стойност и различни резултати за друг набор от стойности. Например една транзакция актуализира количеството на продукта, докато друга актуализира подробности за клиента.
Вижте еквивалентност
Преглед на еквивалентността възниква, когато транзакцията в двата графика изпълнява подобно действие. Например една транзакция вмъква подробности за продукта в продуктовата таблица, докато друга транзакция вмъква подробности за продукта в архивната таблица. Транзакцията е една и съща, но таблиците са различни.
КОНФЛИКТ Еквивалентност
В този случай две транзакции актуализират / преглеждат един и същ набор от данни. Има конфликт между транзакциите, тъй като редът на изпълнение ще повлияе на резултата.
Какво е сериализуемост?
Сериализуемостта е процес на търсене на едновременен график, който изходът е равен на сериен график, при който транзакцията се изпълнява една след друга. В зависимост от типа графици има два вида сериализуемост:
- Конфликт
- Изглед
Резюме:
- Управлението на транзакциите е логическа единица за обработка в СУБД, която включва една или повече операции за достъп до база данни
- Това е транзакция е програмна единица, чието изпълнение може или не може да промени съдържанието на база данни.
- Неуправляването на едновременния достъп може да създаде проблеми като отказ на хардуер и сривове на системата.
- Активни, частично ангажирани, ангажирани, неуспешни и прекратени са важни състояния на транзакциите.
- Пълната форма на свойствата на ACID в СУБД е атомност, последователност, изолираност и трайност
- Три типа транзакции на СУБД са базирани на области на приложение, действие и структура.
- Графикът е процес, създаващ единична група от множество паралелни транзакции и изпълняващ ги една по една.
- Сериализацията е процес на търсене на едновременен график, чийто изход е равен на сериен график, при който транзакциите се изпълняват една след друга.