Својства трансакције
Трансакције, често познате под тим појмом КИСЕЛИНА, имају четири главна општа својства.
- Атомицити: Ово гарантује да ће сви задаци унутар радне јединице бити успешно завршени; у супротном, само на месту квара, процес се завршава и претходни процеси се враћају у своје старо стање.
- Доследност: То значи да се након довољно ангажованог процеса база података ажурира на одговарајући начин.
- Изолација: Помаже трансакцијама да раде међусобно, појединачно и транспарентно.
- Трајност: Ово осигурава да се у случају квара система задржи исход или последица почињене трансакције.
МиСКЛ трансакције раде:
Унутар МиСКЛ-а, два појма „Обвези“ и „Враћање уназад“ примарно се користе само за МиСКЛ трансакције. Трансакције почињу само са БЕГИН ВОРК декларацијом и завршавају се ЦОММИТ декларацијом или РОЛЛБАЦК декларацијом. СКЛ упуте чине већину трансакција и између наредби за покретање и заустављање. Такве серије догађаја су без обзира на специфични програмски језик који се користи. Направит ћете одговарајућу путању на било којем језику који користите за изградњу апликације. Доле наведени СКЛ изрази могу се имплементирати помоћу функције мискл куери ().
- ПОЧЕТИ: Започните свој процес или трансакцију давањем упутства БЕГИН ВОРК СКЛ.
- Додајте СКЛ ЗАПОВЕД: један или чак више СКЛ израза као што су СЕЛЕЦТ, ИНСЕРТ, УПДАТЕ и ДЕЛЕТЕ, респективно. Потврдите чак и ако нема грешке и ако је све у складу са вашим очекивањима.
- УРАДИТИ: Наредба ЦОММИТ мора се наметнути након што се изврши успјешна трансакција, тако да измјене свих придружених таблица могу имати пуни ефекат.
- РОЛБАЦК: Ако се догоди квар, заиста је прикладно послати РОЛЛБАЦК упуту за враћање сваке табеле наведене у трансакцији у њено претходно стање.
- АУТОЦОММИТ: МиСКЛ подразумевано примењује модификације трајно на базу података. Ако је АУТОЦОММИТ постављено на 1 (стандардно), тада се претпоставља да је сваки СКЛ упит (без обзира да ли је унутар трансакције) довршена трансакција и извршен док не буде завршен по дефаулту. Да бисте избегли аутоматско урезивање, поставите АУТОЦОММИТ на 0.
Пример 01: Укључен режим аутоматског предавања:
МиСКЛ ради са фазом Аутоцоммит која је дозвољена по подразумеваној вредности. Осигурава да МиСКЛ чува промене на диску како би га непрестано креирао све док покренемо упит који прилагођава (мења) табелу. Није потребно вратити потез. Покушајмо са АУТОЦОММИТ он моде. Отворите шкољку МиСКЛ командне линије и унесите лозинку да бисте започели.
Узмимо пример табеле „књига“ која је креирана у бази података „подаци“. Тренутно још нисмо извршили ниједан упит за то.
>> ОДАБЕРИ * ИЗ података.књига;
Корак 2: Овај процес је ажурирање табеле „књига“. Ажурирајмо вредност колоне „Аутор“ где је „Име“ књиге „Почетна“. Видите да су промене извршене успешно.
>> АЖУРИРАЈ податке.књига СЕТ Аутор = 'Цристиан Стевард' ВХЕРЕ Име = 'Почетна';
Увидом у ажурирану табелу имамо модификовану вредност аутора где је „име“ „Почетна“.
>> ОДАБЕРИ * ИЗ података.књига;
Употријебимо наредбу РОЛЛБАЦК да вратимо промјене једноставним додавањем упита у наставку. Можете видети да упит РОЛЛБАЦК овде не ради, јер показује да је „0 редова погођено“.
>> РОЛББАЦК;
Можете видети и табелу. Табела до сада није имала промена након извршавања РОЛЛБАЦК израза. То значи да РОЛЛБАЦК не ради када имамо подразумевано укључен АУТОЦОММИТ.
>> ОДАБЕРИ * ИЗ података.књига;
Пример 02: Искључен режим аутоматског предавања:
Да вратимо извршене промене, покушајмо са искљученим АУТОЦОММИТ режимом. Користећи исти пример табеле „књига“, извршићемо неке промене на њој. Користићемо декларацију СТАРТ ТРАНСАЦТИОН да деактивирамо њену фазу аутоматског урезивања или једноставно откуцамо наредбу испод да искључимо АУТОЦОММИТ.
>> СЕТ АУТОЦОММИТ = 0;Рецимо да имамо исту табелу „књига“ у нашој бази података и морамо да је изменимо. Затим вратите те промене на старе.
>> ОДАБЕРИ * ИЗ података.књига;
Ако нисте искључили режим АУТОЦОММИТ, започните са упитом СТАРТ ТРАНСАЦТИОН у љусци командне линије као испод.
>> ЗАПОЧНИ ТРАНСАКЦИЈУ;
Ажурираћемо исту табелу помоћу команде УПДАТЕ постављањем „Аутор“ као „Алиана“ где је „Име“ књиге „Сан“. Урадите то помоћу наредбе у наставку. Видећете да ће промене бити извршене успешно и ефикасно.
>> АЖУРИРАЈ податке.књига СЕТ Аутхо = 'Алиана' ВХЕРЕ Име = 'Сан';
Проверимо да ли је горњи упит савршено функционисао и унео промене у табелу или не. Ажурирану табелу можете проверити помоћу доле наведене наредбе СЕЛЕЦТ као и увек.
>> ОДАБЕРИ * ИЗ података.књига;Можете видети да је упит одлично функционисао, као што је приказано у наставку.
Сада је ред да наредба РОЛЛБАЦК изврши своју функцију. Испробајте наредбу РОЛЛБАЦК у командној линији да бисте вратили недавно ажурирање у табелу.
>> РОЛБАЦК;
Проверимо да ли је упит РОЛЛБАЦК обрађен онако како треба или не. Да бисте то урадили, морате поново да проверите табелу 'књига' помоћу команде 'СЕЛЕЦТ' као и увек.
>> ОДАБЕРИ * ИЗ података.књига;Из доњег резултата можете видети да је РОЛЛБАЦК коначно успео. Вратио је промене направљене упитом УПДАТЕ у овој табели.
Закључак:
То је све за МиСКЛ трансакције. Надам се да ће вам овај водич помоћи да угодно обављате МиСКЛ трансакције.