Увод у Трансакције у СКЛ-у
Трансакција у СКЛ-у опћенито позната као плаћање (слање, примање, куповина итд.), Али када је ријеч о техничким пољима онда је то начин ажурирања логичке јединице података у бази података.
Трансакција је примена једне или више промена у бази података. Можемо груписати више СКЛ упита и покренути се одједном у трансакцији. Сви СКЛ упити би се извршили у једном потезу или би се сви вратили назад. Имала би само два исхода или успех или неуспех.
Трансакција једном извршена не може бити повратна веза, може се вратити само ако трансакција није извршена. МИСКЛ аутоматски врши промене у бази података ако се сви упити успешно изврше. Да бисте експлицитно извршили промене у бази података, прво морате да онемогућите аутоматско преузимање преко наредбе -
Синтакса: СЕТ аутоцоммит = 0;
Својства трансакције
Следе важне особине трансакција, свака трансакција мора следити ове особине
1. Атомицити
Трансакција мора бити атомска, за одређену логичку јединицу треба завршити средњу манипулацију подацима. Ова особина осигурава да се промене података изврше у потпуности на други начин.
2. Доследност
Једном када се Трансакција заврши, све доступне евиденције биће у складу током целе трансакције. Ово својство осигурава пребацивање стања својства базе података након успјешног извршавања или не.
3. Изолација
Изолација се односи на промене података на одређеној логичкој јединици које не би требало да утичу на другу јединицу. Омогућује да се трансакција изврши независно.
4. Трајност
Промене извршене током трансакција треба да буду трајне у систему. У случају системске грешке, ово својство такође обезбеђује да се промене података десе или не.
Горе наведена својина трансакције позната је и као АЦИД својство.
Кораци Трансакције
1. Почните
Трансакција се може догодити у више СКЛ извршавања, али сви СКЛ треба да се покрену одједном. Ако било која од трансакција пропадне, тада би се цела трансакција поништила. Изјава за започињање трансакције је „СТАРТ ТРАНСАЦТИОН“. Почиње кратицом за СТАРТ ТРАНСАЦТИОН.
Синтакса: ПОЧЕТНА ТРАНСАКЦИЈА;
2. Предајте се
Поједини трајно одражавају промене у бази података. Изјава за започињање трансакције је „ЦОММИТ“.
Синтакса: ЦОММИТ;
3. Повратак
Роллбацк се користи за враћање промена, тј. Запис се неће мењати, био би у претходном стању. Изјава за започињање трансакције је „РОЛЛБАЦК“.
Синтакса: РОЛЛБАЦК;
4. Савепоинт
САВЕПОИНТ је такође извод о трансакцији. Ова изјава је коришћена за креирање тачке складишта у систему како би операција РОЛЛБАЦК постигла стање тачке чувања.
5. Отпустите Савепоинт
РЕЛЕАСЕ САВЕПОИНТ је изјава за ослобађање тачке чувања и меморије коју систем користи приликом креирања тачке чувања.
Синтакса: РЕЛЕАСЕ САВЕПОИНТ СП
Напомене - СП је име сачуване тачке када је та тачка спремања креирана пре почетка трансакције.
6. Подесите трансакцију
Наредба СЕТ ТРАНСАЦТИОН користи се за одређивање атрибута трансакције, као што је дата трансакција, само за читање или за читање-писање.
Синтакса : СЕТ ТРАНСАЦТИОН (ПРОЧИТАЈ-ПИСАТИ | ПРОЧИТАЈ САМО);
Трансакција се користи за извршавање сложених промена у бази података. Највише се користи у банкарским информацијама које се мењају у релацијску базу података.
Трансакцију подржава МИСКЛ енгине ИнноДБ. Подразумевано, аутоматско преузимање остаје омогућено, зато се сваки пут када се изврши било који СКЛ аутоматски извршава.
Трансакције помоћу СКЛ-а
Пример # 1
Банковна трансакција: Рачун задужен за 50000 износа са лица штедног рачуна и тај износ предао на кредитни рачун А.
Старт Трансацтион: Ова почетна трансакција ће претворити све СКЛ упите у једну јединицу трансакције.
UPDATE `account` SET `balance` = `balance` - 50000 WHERE user_id = 7387438;
Овај СКЛ упит одузима износ од постојећег стања на рачуну.
UPDATE `loan_account` SET `paid_amount` = `paid_amount` + 50000 WHERE user_id = 7387438;
Овај СКЛ упит додаје износ на рачун корисничког кредита.
Insert into `transaction_details`(`user_id`, 'amount') values (7387438, '50000');
Овај СКЛ упит убацује нови запис у таблицу података о трансакцијама, а ова табела садржи детаље свих трансакција корисника. Ако се сви упити успешно изврше, тада треба извршити наредбу ЦОММИТ јер промене морају бити трајно похрањене у бази података.
Обавеза: Ова изјава о обавези спрема измене које је позвала трансакција у базу података. Ако било која од трансакција не успе током извршења, тада треба извршити наредбу РОЛЛБАЦК за повратак комплетне трансакције
Повратни повратак: Повратни поступак се дешава када било који упит не успе током извођења.
Пример бр. 2
Трансакција залиха: У датој табели ставки доступно је 6 ставки.
Извођење следеће изјаве СТАРТ ТРАНСАЦТИОН за започињање трансакције.
Сада покрените наредбу СЕТ АУТОЦОММИТ = 0 ; да бисте онемогућили аутоматско преузимање
Сада извршите следећу изјаву како бисте уклонили запис из табеле ставки
Сад доступан запис у табели је 4, односно записи су привремено уклоњени из ставки табеле
Сада извршавајући наредбу РОЛЛБАЦК за поништавање промена, избрисани запис ће бити доступан у ставкама табеле, као што је претходно пре почетка трансакције
Поновно ако примените исту операцију брисања, затим рад ЦОММИТ након промене биће трајно сачуван у бази података
Сада можемо видети да је и даље након наредбе РОЛЛБАЦК запис у новом стању. То значи да након што је радња ЦОММИТ извршила промене не може бити враћена јер трајно врши промене у бази података;
Предности коришћења Трансакције у СКЛ-у
а) Кориштење Трансакције побољшава перформансе , када би уметање 1000 записа помоћу трансакција у том случају трајало мање од уобичајеног уметања. Као и у уобичајеној трансакцији, сваки пут би се ЦОММИТ одвијао након сваког извршавања упита и повећавао би време извршења сваки пут, док у трансакцији нема потребе за извршавањем ЦОММИТ израза након сваког СКЛ упита. ЦОММИТ би на крају одражавао све промене у бази података трајно одједном. Такође ако користите трансакцију, повраћај промена би био много лакши од уобичајене трансакције. РОЛЛБАЦК ће вратити све промене одједном и задржати систем у претходном стању.
б) Трансакција осигурава интегритет података у релацијској бази података. Већина база података користи више таблица за одржавање података, а за време ажурирања може доћи до промена у више табела у то време ако било који од СКЛ упита не успе, а трансакција би податке задржала непромењенима.
Закључак
Употреба трансакција је најбоља пракса у ажурирању података за логичку јединицу у релацијској бази података. За имплементацију трансакција мотор базе података требао би подржати трансакцију попут ИнноДБ мотора. Трансакција, као јединица СКЛ израза, може бити враћена одједном користећи једну РОЛЛБАЦК изјаву. Трансакција осигурава интегритет података и побољшава рад базе података.
Препоручени чланци
Ово је водич за Трансакције у СКЛ-у. Овде смо расправљали о уводу, својствима, корацима, примерима трансакција у СКЛ-у, као и предностима коришћења трансакција у СКЛ-у.
- Шта је СКЛ
- СКЛ Алати за управљање
- СКЛ Виевс
- Врсте придруживања у СКЛ Серверу
- Топ 6 врста придруживања у МиСКЛ-у са примерима