Аппараттық және бағдарламалық қамтамасыз етуді орнату

Сома үшін транзакция орындалады - бұл SMS нені білдіреді. Банктік карта операциясы дегеніміз не

Ағымдағы жылдың 1 қаңтарынан бастап заң банктерді өз клиенттеріне жасалған әрбір транзакция туралы хабардар етуге міндеттеді. Сонымен қатар, клиентті хабардар ету тәсілі заңмен белгіленбеген. Өз клиенттеріне қамқорлық жасайтын банктер ең қолайлы және пайдаланады операциялық әдісхабарламалар - SMS. Қалғандары өздері үшін арзанырақ құралдарды пайдаланады - хабарлама арқылы электрондық поштанемесе хабарламалар жеке шотбанктің веб-сайтында.

Банк қандай әдісті таңдаса да, ескертулерді мұқият орындаңыз, өйткені алаяқтық транзакциялар туралы сөз болғанда, әр минут сайын сіздің қолыңызда ойнауы мүмкін немесе ұрланған соманы қайтару мүмкін емес.

Есіңізде болсын, алаяқтық сіздің картаңызбен сіз жасамаған кез келген транзакция болып табылады. Алаяқтықтың бірнеше түрі бар:

  • Сіздің картаңыз ұрланған немесе жоғалған, содан кейін сіздің рұқсатыңызсыз пайдаланылған.
  • Сіз эмитенттен жаңа картаны (немесе ауыстыру картасын) алмадыңыз және сіз жасамаған транзакциялар туралы құжаттарды алғанға дейін оның дұрыс емес адамдардың қолына түскенін білмедіңіз.Сіздің жеке мәліметтеріңізді басқа тұлға өтініш беру үшін пайдаланады. карта үшін. Егер эмитент банк клиенттен шағым алмаса немесе ашылғаннан кейін көп ұзамай шот тексерілмесе, алаяқтықтың бұл түрін тану өте қиын. Егер сіз осы банктің клиенті болмасаңыз, сіз несие алуға өтініш бергенге дейін және нашар несие тарихына байланысты сізге бас тартылмайынша, біреу сіздің атыңызға карта алғанын білмеуіңіз мүмкін.
  • Шот бойынша үзінді көшірмеде сіз жасамаған транзакциялар туралы деректер бар, бұл айналымда сіздікі сияқты жалған карта бар дегенді білдіруі мүмкін.
  • Жалған құжаттармен шабуылдаушы өзін карта ұстаушысы ретінде танытып, картаны сол шотқа ауыстыруды талап етіп, карта ұстаушысының шотына бақылау жасайды. Әдетте олар картаны басқа мекенжайға жіберуді сұрайды. Сіз бұл туралы әдетте шот бойынша үзінді көшірме алған кезде немесе сіздің мекенжайыңызға шоттардың түсуін тоқтатқанда біле аласыз.
  • Сізде картаңыз бар, бірақ шабуылдаушы карта нөмірін пайдаланып транзакциялар жасайды, мысалы, пошта, телефон немесе Интернет арқылы тауарларға тапсырыс береді

Егер сіз осындай жағдайлардың кез келгеніне тап болсаңыз, алдымен банкке хабарласыңыз. Заң бойынша, егер ақша есептен шығарылғаннан кейінгі бірінші күн ішінде заңсыз транзакция туралы шағым түскен болса, банк картадағы жетіспейтін ақшаны өтеуі керек.

Карточка бизнесін дамыту жөніндегі басшының орынбасары Степан Зайцевтің айтуынша, егер клиент 24 сағат ішінде даулы транзакция туралы хабарламаса, оны кейінірек жасай алады. Сіз банктің кез келген бөлімшесіне шағым жаза аласыз. Одан әрі қарау банк белгілеген тәртіппен жүзеге асырылады. Клиенттің сұранысына жауап беру мерзімі 30 жұмыс күнін құрайды (операцияға шетелдік эквайринг-банктер қатысқан жағдайда 60-қа дейін). Барлық жағдайды түсіндіру үшін банк клиенттен қосымша құжаттар мен ақпаратты талап ете алады.

1. Мәмілелержәне блоктау

2. Мәміле туралы түсінік

Мәліметтер қорымен жұмыс істегенде қателер мен сәтсіздіктер жоққа шығарылмайды. Олар ДҚБЖ-мен әрекеттесетін пайдаланушы қателерінен немесе тұрақсыз компьютерлерден туындауы мүмкін. Сондықтан ДҚБЖ пайдаланады ерекше тәсілдерқателерді тудырған әрекеттерді болдырмау. Мәліметтер қорының мазмұны мен құрылымына әсер ететін SQL пәрмені қайтымсыз емес. Пайдаланушы өз әрекеттері аяқталғаннан кейін не болатынын белгілей алады: дерекқорға енгізілген өзгерістер қалады ма, әлде олар еленбейді ме. Ол үшін мәліметтер қорындағы операциялардың реттілігі топтарға – транзакцияларға біріктіріледі.

транзакциядеректер қорында орындалатын және оны бір тұрақты күйден екінші тұрақты күйге көшіретін әрекеттер тізбегі болып табылады.

Транзакция деректер базасындағы кейбір бөлінбейтін әрекет ретінде қарастырылады, пайдаланушының көзқарасы бойынша мағыналы, яғни ол жүйенің логикалық бірлігі болып табылады. Транзакция дерекқор сеансы орын алған сайын басталады.

Транзакцияның мысалы ретінде банкомат арқылы ақша аударуды келтіруге болады. Сомасы 100 тр. ағымдағы шоттан карточкалық шотқа аударылады. Бағдарлама ағымдағы шоттан соманы алып тастайды, содан кейін оны карта шотына қосады. Бірінші модификациядан кейін бағдарламаның жұмыс істеуі кезінде электр қуатының үзілуі орын алады, ал карталық шоттың ұлғаюы болмайды. Бұл жағдайды болдырмау үшін екі команда да транзакцияға біріктірілуі керек. Транзакцияның барлық командалары орындалмаған жағдайда транзакция кері қайтарылады.

Кітапханаға жаңадан түскен кітаптар туралы мәліметтерді енгізу транзакциясын анықтайық. Бұл операцияны қатарынан 2 операцияға бөлуге болады: біріншіден, кітап туралы деректерді енгізу жаңа жолкестеде Кітаптар. Содан кейін кітаптың барлық даналары туралы деректерді енгізу керек - бұл кестеге жаңа жолдар жинағын енгізу даналары.Егер бұл әрекеттер тізбегі үзілсе, онда деректер базасы нақты нысанға сәйкес келмейді, сондықтан оны келесідей орындаған жөн. жалғыз жұмысдерекқор арқылы.

3. Транзакция қасиеттері. Транзакцияларды аяқтау жолдары

Бар әртүрлі модельдертранзакция құрылымы, транзакция ішіндегі параллельділік, ұзақтығы және т.б.

Қазіргі уақытта транзакциялардың келесі түрлері бөлінеді: тегіс немесе классикалық операциялар, тізбекті операциялар және кірістірілген операциялар.

Тегіс транзакциялар атомдылықтың, консистенцияның, оқшауланудың және ұзақ мерзімділіктің классикалық қасиеттерімен сипатталады.

· Атомдық қасиеті мәміленің тұтас аяқталуы немесе мүлде аяқталмауынан көрінеді.

· Консистенция сипаты транзакцияның орындалу барысында деректердің бір тұрақты күйден басқа дәйекті күйге ауысуын қамтамасыз етеді - транзакция деректердің өзара сәйкестігін бұзбайды.

· Оқшаулау қасиеті дерекқорға кіру үшін бәсекелес транзакциялардың физикалық түрде дәйекті түрде өңделетінін, бір-бірінен оқшауланғанын білдіреді, бірақ пайдаланушылар үшін олар параллель орындалатын сияқты.

· Төзімділік қасиеті транзакция сәтті аяқталса, онда жасалған деректер өзгерістері ешбір жағдайда, тіпті кейінгі қателер болған жағдайда да жойылмайтынын білдіреді.

Транзакцияны аяқтаудың 2 нұсқасы бар:

· егер барлық мәлімдемелер сәтті аяқталса және транзакция кезінде бағдарламалық құрал немесе бағдарламалық құрал ақаулары орын алмаса аппараттық құрал, транзакция жасалды. (Міндеттеме – бұл транзакцияны орындау кезінде жасалған мәліметтер базасына өзгерістерді дискіге жазу). Транзакция жасалмағанша, бұл өзгерістерді кері қайтаруға және дерекқорды транзакция басталған кездегі күйге қайтаруға болады. Мәміле жасау мәміленің барлық нәтижелерінің тұрақты болуын білдіреді. Олар ағымдағы транзакция жасалғаннан кейін ғана басқа транзакцияларға көрінетін болады.

· Егер транзакция сәтсіз болса, дерекқорды қайтару керек бастапқы күй. Транзакцияны кері қайтару - жасалған барлық деректер өзгерістерін қайтаратын әрекет SQL мәлімдемелеріағымдағы күтудегі транзакцияның негізгі бөлігінде.

4. ОператорларМәмілеSQLтранзакциялармен жұмыс істеу

ANSI/ISO стандартында операторлары анықталған МІНДЕТТЕУжәне ҚАЙТАРУ,стандартта транзакцияның басталуы деректерді бірінші модификациялау операторымен жанама түрде беріледі; Оператор МІНДЕТТЕУ транзакцияның сәтті аяқталуын білдіреді, транзакция нәтижелері сыртқы жадқа жазылады; операцияны оператор аяқтаған кезде ҚАЙТАРУ мәміленің нәтижелері жойылады. Мәміле басталған бағдарламаның сәтті аяқталуы транзакцияның сәтті аяқталуын білдіреді (өтініш сияқтыМІНДЕТТЕУ ), сәтсіз аяқталу - транзакцияны тоқтатады (өтініш сияқтыҚАЙТАРУ ). Бұл үлгіде деректердің күйін өзгертетін әрбір мәлімдеме транзакция ретінде қарастырылады. Бұл модель коммерциялық ДҚБЖ бірінші нұсқаларында жүзеге асырылды. Кейіннен SYBASE ДҚБЖ кеңейтілген транзакция үлгісі іске асырылды.

Кеңейтілген транзакция үлгісі (мысалы, SQL SERVER ДҚБЖ) бірқатар қосымша операцияларды қамтамасыз етеді:

· оператор ТАМАНАЦИЯНЫ БАСТАУмәміленің басталуы туралы хабарлайды;

· оператор Операцияны жасаутранзакцияның сәтті аяқталғаны туралы хабарлайды. Бұл оператор, сонымен қатар ANSI/ISO стандартты үлгісіндегі COMMIT транзакция кезінде дерекқорда жасалған барлық өзгерістерді түзетеді;

· оператор ТРАНАКЦИЯНЫ САҚТАУоператор орындалған кезде сақталған деректер қорының аралық күйіне сәйкес келетін транзакция ішінде сақтау нүктесін жасайды. Операторда ТРАНАКЦИЯНЫ САҚТАУсақтау нүктесінің атауы болуы мүмкін, сондықтан транзакцияны орындау кезінде бірнеше аралық күйге сәйкес келетін бірнеше сақтау нүктелері сақталуы мүмкін;

· оператор ҚАЙТАРУ 2 нұсқасы бар. Егер ол қосымша параметрсіз пайдаланылса, онда ол параметрі болса, бүкіл транзакция үшін кері қайтару операторы ретінде түсіндіріледі. ROLLACKn, содан кейін ол n сақтау нүктесіне транзакцияны ішінара кері қайтару мәлімдемесі ретінде түсіндіріледі.

Сақтау нүктелері ұзақ және күрделі транзакцияларда белгілі бір мәлімдемелер жасаған өзгерістерді қайтаруға болатынын қамтамасыз ету үшін пайдалы.

Көп жағдайда шақырылатын параметрді орнатуға болады АВТОКОМИТЕТ , ол орындалатын барлық пәрмендерді автоматты түрде есте сақтайды және қатеге әкелген әрекеттер әрқашан автоматты түрде жойылады. Әдетте, бұл режим келесідей пәрменмен орнатылады:

ОРНАТУ АВТОКОМИТЕТ ҚОСУЛЫ ;

және қалыпты диалогтық сұрауды өңдеуге оралыңыз:

ОРНАТУ АВТОКОМИТЕТ ӨШІРУЛІ ;

Сонымен қатар, орнату мүмкіндігі бар АВТОКОМИТЕТ , оны ДҚБЖ тіркеу кезінде автоматты түрде орындайды.Егер пайдаланушы сеансы әдеттен тыс аяқталса, мысалы, жүйенің бұзылуы болса, ағымдағы транзакция автоматты түрде өзгертулерді кері қайтарады. Жұмысты жеке транзакцияларда көптеген командалар, әсіресе өзара байланысы жоқ болатындай етіп ұйымдастыру ұсынылмайды. Бұл өзгертулерден бас тартқан кезде тым көп әрекеттер, соның ішінде қажет және қателер тудырмаған әрекеттер орындалатынына әкелуі мүмкін. Ең жақсы нұсқатранзакция бір командадан немесе бір-бірімен тығыз байланысты бірнеше командалардан тұратын кезде.

Триггер жасырын түрде анықталған транзакция ретінде орындалады, сондықтан транзакцияны басқару пәрмендерін триггер ішінде пайдалануға болады. Атап айтқанда, тұтастық шектеулерінің бұзылуы анықталған кезде, триггердің орындалуын тоқтату және пайдаланушы жасауға тырысқан барлық өзгерістерден бас тарту үшін пәрменді пайдалану керек. КЕРЕКТІК ТРАНАКЦИЯ . Триггер сәтті аяқталған жағдайда пәрменді пайдалануға болады МІНДЕТТЕУ ТРАНАКЦИЯ .
Команданың орындалуы КЕРЕКТІК ТРАНАКЦИЯ немесе МІНДЕТТЕУ ТРАНАКЦИЯ триггердің жұмысын тоқтатпайды, сондықтан әртүрлі жағдайларда транзакцияны бірнеше рет кері қайтару әрекеттерін мұқият бақылау керек.

Транзакция мысалы:

БАСТАУ ТРАН

Тіркелгіні ЖАҢАРТУ

SET балансы= баланс- 100

@@error=0 болса

БАСТА

ҚАЙТАРУ ТРАН

ҚАЙТАРУ

СОҢЫ

карта_есептік жазбасын ЖАҢАРТУ

SET балансы=баланс+100

ҚАЙДА [электрондық пошта қорғалған] _шот

@@error=0 болса

БАСТА

ҚАЙТАРУ ТРАН

ҚАЙТАРУ

СОҢЫ

TRAN

Команда БАСТА TRAN серверге транзакцияның басталуы туралы хабарлайды. Бұл сервер пәрменді алғанға дейін дегенді білдіредіМІНДЕТТЕУ TRAN барлық өзгерістер уақытша. Сондықтан бірінші жаңартудан кейін сервер сәтсіз болса, транзакция кері қайтарылады. Транзакция аяқталмайынша, ешбір процесс деректерге қол жеткізе алмайды.

5. Транзакция журналы.

Аралық күйлерді сақтау, транзакцияны растау немесе кері қайтару принципін жүзеге асыру арнайы механизммен қамтамасыз етіледі, оны қолдау үшін транзакциялар журналы деп аталатын жүйелік құрылым құрылған. Транзакциялар журналы дерекқордағы өзгерістер туралы жазбалар тізбегін қамтиды. Ол дерекқорда сенімді деректерді сақтауды қамтамасыз етуге арналған. Бұл кез келген аппараттық және бағдарламалық құрал ақауларынан кейін деректер қорының тұрақты күйін қалпына келтіру мүмкіндігін білдіреді. Жалпы принциптертіркеу және қалпына келтіру:

· жасалған транзакциялардың нәтижелері деректер қорының қалпына келтірілген күйінде сақталуы тиіс;

· жасалмаған транзакциялардың нәтижелері дерекқордың қалпына келтірілген күйінде болмауы керек.

Бұл дерекқордың соңғы тұрақты күйі қалпына келтіріліп жатқанын білдіреді.

Дерекқордың күйін қалпына келтіру қажет болатын келесі жағдайлар болуы мүмкін:

· Мазмұнның кенет жоғалуынан қалпына келтіру жедел жады(жұмсақ апат). Бұл жағдай келесі жағдайларда орын алуы мүмкін: электр қуатын өшіру немесе өлімге әкелетін процессордың істен шығуы кезінде. Жағдай ақаулық кезінде ЖЖҚ буферінде болған дерекқор бөлігінің жоғалуымен сипатталады.

· Негізгі сыртқы дерекқор медиасының ақаулығынан кейін қалпына келтіру (қатты ақау).

Жүйе кішігірім үзілістерден (мысалы, сәтсіз транзакциялар) және маңызды сәтсіздіктерден (мысалы, қуат ақаулары, қатты ақаулар) қалпына келтіруге қабілетті болуы керек.

Жұмсақ істен шыққан жағдайда, дискілерде сақталған транзакциялар журналдарының мазмұнынан деректер қорының мазмұнын қалпына келтіру қажет. Қатты ақаулық орын алған жағдайда, зақымдалмаған сыртқы тасымалдағышта сақталған сақтық көшірмелерден және транзакция журналдарынан дерекқордың мазмұнын қалпына келтіру қажет.

Ақпаратты тіркеудің екі негізгі нұсқасы бар. 1-ші нұсқада әрбір транзакция үшін осы транзакция арқылы бөлек жергілікті дерекқорды өзгерту журналы жүргізіледі. Мұндай журналдар жергілікті журналдар деп аталады. Олар жергілікті транзакцияны кері қайтару үшін пайдаланылады. Сонымен қатар, жұмсақ және қатты ақаулардан кейін дерекқорды қалпына келтіру үшін пайдаланылатын ортақ дерекқорды өзгерту журналы жүргізіледі.

Бұл тәсіл транзакциялардың жеке кері қайтаруларын жылдам орындауға мүмкіндік береді, бірақ жергілікті және жалпы журналдардағы ақпараттың қайталануына әкеледі. Сондықтан, екінші опция жиі пайдаланылады - тек жеке кері қайтаруларды орындау кезінде де қолданылатын жалпы дерекқорды өзгерту журналын жүргізу.

Жалпы құрылымЖурналды транзакцияны орындау кезінде орын алатын дерекқордағы әрбір өзгерісті жазатын кейбір дәйекті файл ретінде көрсетуге болады. Барлық транзакциялардың ішкі нөмірлері болады, сондықтан транзакция журналы барлық транзакциялар жасаған барлық өзгерістерді жазады.

Журналдағы әрбір жазба ол тиесілі транзакцияның нөмірімен және ол өзгеретін атрибуттардың мәндерімен белгіленеді, сонымен қатар журналдағы әрбір транзакция үшін транзакцияны бастау және аяқтау пәрмені жазылады. .

Үлкен сенімділік үшін транзакциялар журналы ДҚБЖ жүйелік құралдарымен жиі қайталанады, сондықтан сыртқы жад көлемі дерекқордағы деректердің нақты көлемінен бірнеше есе көп.

Транзакцияларды тіркеудің 2 нұсқасы бар: кешіктірілген жаңартулары бар хаттама және дереу жаңартулары бар протокол.

Жалқау-жаңарту журналы транзакцияларды орындаудың келесі механизмін қамтиды:

1. T1 транзакциясы басталған кезде журналға жазба жасалады

T1 БАСТА транзакция

2. Операцияны орындау кезінде әрбір өзгеретін жазба үшін хаттамаға жаңа мән жазылады.

T1. ID _ ЖАЗБА , атрибут, жаңа мән

(ID _ ЖАЗБА бірегей нөміржазбалар)

3. Егер транзакцияны құрайтын барлық әрекеттер сәтті орындалса, онда транзакция ішінара жасалды және журналға келесілер жазылады:

Т 1 COMMT

4. Транзакция жасалғаннан кейін T1-ге қатысты журнал жазбалары дерекқорға өзгертулер енгізу үшін пайдаланылады.

5. Егер ақаулық орын алса, ДҚБЖ журналға қарап, қандай транзакцияларды қайта жасау керектігін анықтайды. Егер хаттамада екі жазба да болса, T1 транзакциясы қайта жасалуы керек T1 БАСТА транзакция және Т 1 COMMT . Дерекқор сәйкес келмейтін күйде болуы мүмкін, дегенмен өзгертілген деректер элементтерінің барлық жаңа мәндері журналда қамтылған және бұл транзакцияны қайта орындауды талап етеді. Ол үшін жүйелік процедураны пайдаланыңызҚАЙТАЛАУ(), ол журналды тікелей ретпен сканерлеу арқылы барлық элемент мәндерін жаңасымен ауыстырады.

6. Егер хаттамада транзакцияны орындау пәрмені болмаса FROM ӨТКІЗУ, содан кейін ешқандай әрекет қажет емес және транзакция қайта басталады.

Дереу орындалатын балама механизм дерекқорға дереу өзгертулер енгізуді қарастырады, журналда тек жаңа ғана емес, өзгертілген атрибуттардың барлық ескі мәндері де жазылады, сондықтан әрбір жазба келесідей көрінеді:

T1. ID _ ЖАЗБА , төлсипат, жаңа мән ескі мән

Бұл жағдайда журналға жазу деректер базасындағы операцияның тікелей орындалуының алдында болады. Транзакция жасалғанда, яғни команда кездеседі T1 КОМИТЕТ, және ол орындалса, барлық өзгертулер дерекқорға әлдеқашан енгізілген және осы транзакцияға қатысты қосымша әрекеттер қажет емес.

Транзакция кері қайтарылған кезде жүйе процедурасы орындалады БЕРУ()пәрменінен бастап хаттама арқылы дәйекті түрде өтіп, тоқтатылған транзакциядағы барлық ескі мәндерді қайтаратын , ТАМАНАЦИЯНЫ БАСТАУ.

Ауыспалылық үшін келесі механизм қолданылады:

· Егер транзакцияда транзакцияны бастау пәрмені болса, бірақ оның орындалуын растайтын міндеттеме пәрмені болмаса, онда әрекеттер тізбегі транзакция кері қайтарылғандай орындалады, яғни ескі мәндер қалпына келтіріледі.

Шын мәнінде, қалпына келтіру неғұрлым күрделі алгоритмдер бойынша жүреді, өйткені журналдағы да, дерекқордағы да өзгерістер дереу жазылмайды, бірақ буферленеді. Өзгерістерді тіркеу тек транзакцияларды басқарумен ғана емес, сонымен қатар ЖЖҚ-дағы деректер қоры беттерін буферлеумен де тығыз байланысты. Кез келген дерекқорды өзгерту әрекеті орындалған кезде журналға өтуі тиіс дерекқорды өзгерту жазбасы шын мәнінде дереу жазылады сыртқы жады, бұл жүйенің айтарлықтай баяулауына әкеледі. Сондықтан журнал жазбалары да буферленеді: қалыпты жұмыс кезінде келесі бет жазбалармен толығымен толтырылған кезде ғана сыртқы журнал жадына жіберіледі.

6. Құлыптар.

Бір дерекқоры бар көп пайдаланушылық жүйелерде бірнеше пайдаланушылар бір уақытта жұмыс істей алады немесе қолданбалы бағдарламалар. ДҚБЖ негізгі міндеттерінің бірі – пайдаланушылардың оқшаулануын қамтамасыз ету, яғни пайдаланушылардың әрқайсысы деректер қорымен жалғыз жұмыс істейтіндей көрінетіндей жұмыс режимін құру. ДҚБЖ-ның бұл тапсырмасы әдетте транзакциялық параллелизм деп аталады.

Дерекқорды параллель өңдеуде үш негізгі мәселе бар:

§ Жетіспейтін өзгерістер . Бұл жағдай 2 транзакция дерекқордағы бір жазбаны бір уақытта өзгерткенде орын алады. Мысалы, тапсырыстарды қабылдау бойынша 2 оператор жұмыс істеп жатыр, бірінші оператор 30 мониторға тапсырыс қабылдады. Ол қоймаға хабарласқанда 40 монитор бар екен, клиенттен растау алған ол 40 монитордың 30-ын сатуды аяқтады. Сонымен бірге онымен екінші оператор жұмыс істейді, ол 20 мониторға тапсырыс алады. сол мониторлар, және өз кезегінде, қоймаға хабарласып, ол бірдей 40 мәнін алады және өз тұтынушысына тапсырыс береді. Деректермен жұмысты аяқтағаннан кейін ол пәрменді орындайды Жаңарту,ол қоймадағы мониторлардың қалдығы ретінде 20-ға кіреді. Осыдан кейін бірінші оператор өз тұтынушысымен жұмысты аяқтайды, сонымен қатар команданы орындайды Жаңарту, ол қалған 10-ды қоймадағы мониторлар саны ретінде енгізеді. Барлығы 50 мониторды сатты, олардың 40-ы бар және қоймада 10 монитор болады.

§ Аралық деректер мәселелері . Аралық деректерге қол жеткізу мүмкіндігімен байланысты. Бірінші оператор өз тұтынушысымен келіссөз жүргізе отырып, тапсырыс берген 30 мониторды таныстырды делік, бірақ тапсырысты аяқтамас бұрын тұтынушы өнімнің тағы бірнеше сипаттамаларын білгісі келді. 1-оператор пайдаланып жатқан қолданба қоймадағы қалған мониторларды өзгертіп қойған, ал қалған 10 монитор туралы ақпарат қазір сонда сақталады. Осы уақытта екінші оператор өз тұтынушысынан 20 мониторға тапсырыс беруге әрекеттеніп жатыр, бірақ оның өтінішінде қоймада бар болғаны 10 монитор қалғаны және оператор өз тұтынушысынан бас тартуға мәжбүр болғаны көрсетілген. Бұл кезде бірінші оператордың тұтынушысы мониторларды сатып алмауды шешеді, оператор транзакцияны кері қайтарады және 40 монитор қайтадан қоймада болады. Бұл жағдай екінші оператордың қолданбасы бірінші қолданба жасаған аралық деректерге қол жеткізу мүмкіндігіне ие болғандықтан мүмкін болды.

§ Сәйкес келмейтін деректер мәселелері. Деректерді өзгерту мүмкіндігімен байланысты x, бұрыннан x оқылған басқа қолданба. Екі оператор дерлік бір уақытта жұмыс істей бастайды, 40 монитордың бастапқы қорын алады, содан кейін бірінші оператор өз тұтынушысына 30 мониторды сатады. Ол қолданбасын тоқтатады және COMMIT транзакция пәрменін орындайды. Дерекқор күйі сәйкес емес. Осы сәтте екінші оператордың тұтынушысы тапсырыс беруді шешеді, ал екінші оператор деректерге қайта сілтеме жасай отырып, мониторлар санының өзгергенін көреді. Екінші оператор транзакцияның тұтастығы бұзылды деп есептейді, өйткені бір жұмысты орындау барысында қойманың 2 түрлі күйін алды. Бұл жағдай 1-ші оператордың қолданбасы екінші оператордың қолданбасы оқып қойған деректер кортежін өзгерте алатындықтан туындады.

Көрсетілген мәселелерді қорытындылай келе, екі параллель транзакция арасындағы қайшылықтардың келесі түрлерін ажыратуға болады:

· W-W – транзакция 2 аяқталмаған 1 транзакциямен өзгертілген нысанды өзгертуге әрекет жасайды;

· R-W - транзакция 2 аяқталмаған 1 транзакциямен оқылған нысанды өзгертуге әрекет жасайды;

· W-R транзакциясы 2 аяқталмаған 1 транзакциямен өзгертілген нысанды оқуға тырысады;

7. Транзакцияны сериялау

Мұндай қақтығыстарды болдырмау үшін параллельді операцияларды дәйекті орындаудың кейбір тәртібін әзірлеу қажет. Бұл процедура келесі ережелерге сәйкес болуы керек:

1. Транзакция кезінде пайдаланушы тек дәйекті деректерді көреді. Пайдаланушы сәйкес келмейтін аралық деректерді көрмеуі керек.

2. Мәліметтер базасында параллель орындалатын 2 транзакция болған кезде, транзакцияларды орындау нәтижелері 1-ші транзакцияны, содан кейін 2-транзакцияны орындағанмен бірдей немесе керісінше болуы керек.

Осы принциптерді орындайтын процедура транзакцияны сериялау деп аталады. Ол дерекқорға қатынасатын әрбір пайдаланушының онымен бірдей деректерге бір уақытта қатынасатын басқа пайдаланушылар болмағандай жұмыс істеуін қамтамасыз етеді. Мәміленің бірігіп орындалуының нәтижесі сол мәмілелердің кейбір дәйекті орындалуының нәтижесіне тең.

Шығудың ең қарапайым жолы транзакцияларды дәйекті орындау болар еді, бірақ мұндай шығу жолы уақыт бойынша оңтайлы емес, деректер базасына параллельді кіруді басқарудың икемді әдістері бар. Бұл мәселелерді шешудің ең кең тараған механизмі транзакцияның ұзақтығына нысанды (кесте сияқты) құлыптау болып табылады. Егер транзакция құлыпталған нысанға кірсе, ол нысан құлпы ашылғанға дейін күту күйінде қалады, содан кейін ол оны өңдеуді бастай алады. Дегенмен, құлыптау жаңа проблемаларды тудырады - құлыптарға байланысты транзакцияның кешігуі.

Сонымен, синхрондау нысанының құлыптары деп те аталатын құлыптар әртүрлі нысандар түрлеріне қолданылуы мүмкін. Ең үлкен құлыптау нысаны бүкіл дерекқор болуы мүмкін, бірақ бұндай құлыптау дерекқорды осы дерекқормен жұмыс істейтін барлық басқа қолданбалар үшін қолжетімсіз етеді. Құлыптау нысанының келесі түрі кестелер болып табылады. Кестеде жұмыс істейтін транзакция оны транзакцияның ұзақтығына құлыптайды. Құлыптың бұл түрі алдыңғыға қарағанда жақсырақ, өйткені ол басқа кестелерде жұмыс істейтін транзакцияларды қатар орындауға мүмкіндік береді.

Кейбір ДҚБЖ бет деңгейінде құлыптауды жүзеге асырады. Бұл жағдайда ДҚБЖ тек блоктайды жеке беттертранзакция оларға қол жеткізген кезде дискіде. Құлыптаудың бұл түрі одан да жақсырақ және әртүрлі транзакцияларға олар қол жеткізген кезде бір үстелде жұмыс істеуге мүмкіндік береді. әртүрлі беттердеректер.

Кейбір ДҚБЖ-да жол деңгейінде құлыптау мүмкін, бірақ мұндай құлыптау механизмі оны қолдау үшін қосымша шығындарды талап етеді. SQL серверіжұмысында максималды сәйкестікті қамтамасыз ету үшін рекордтық деңгейде құлыптауды орнатуға ұмтылады. Жолды құлыптау саны артқан сайын, жазбалар саны шекті мәннен асып кетсе, сервер бетті құлыптауға көшуі мүмкін.

8. Сұраныс деңгейінде құлыптарды қайта анықтау. Құлыптардың түрлері

Сөйлемдегі кесте атауынан кейін болса FROMтөмендегілердің бірін ұстанады кілт сөздер, сұрау құлыптау менеджеріне кедергі келтіреді және көрсетілген құлып түрі қолданылады:

· NOLOCK - лас оқуға мүмкіндік береді;

· PAGLOCK – бет деңгейінде блоктау;

· ROWLOCK – рекордтық деңгейде құлыптау;

· TABLOCK – ортақ кесте құлпы;

· TABLOCKX - эксклюзивті үстел құлпы

Қазіргі уақытта блоктау мәселесі көптеген зерттеулердің тақырыбы болып табылады.

Құлыптардың екі негізгі түрі бар (синхрондау түсірілімдері):

Ортақ (қатты емес) құлыптар - бұл режим ортақ нысанды түсіруді білдіреді және нысанды оқу әрекетін орындау үшін пайдаланылады. Осылай құлыпталған объектілер транзакцияны орындау кезінде өзгертілмейді және басқа транзакциялар үшін қолжетімді, тек оқу режимінде болады;

Эксклюзивті (қатты) құлыптар - бұл құлыптың иесінен басқа ешкімге деректерге қол жеткізуге рұқсат бермеңіз. Бұл құлыптар кестенің мазмұнын немесе құрылымын өзгертетін және транзакцияның соңына дейін созылатын пәрмендер үшін пайдаланылады.

Бірнеше транзакциялар арқылы нысанды түсіру оқуға үйлесімді, яғни бірнеше транзакцияға бір нысанды оқуға рұқсат етіледі. Оқудағы бір транзакциямен нысанды түсіру жазудағы басқа транзакциямен бір нысанды басып алумен үйлеспейді. Бір нысанды әртүрлі жазу транзакциялары арқылы түсіру үйлесімді емес.

Дегенмен, қолданба әртүрлі түрлеріқұлыптар тұйықталу мәселесіне әкеледі. Тұйықталу мәселесі параллель процестерді орындауды қарастыру кезінде пайда болды операциялық орталаржәне ортақ (ортақ) объектілерді басқарумен де қатысты болды. Тұйықталу мысалы: А транзакциясын қатты блоктау кестесі 1, содан кейін қатты блоктау кестесі 2 болсын. Б транзакциясы, керісінше, 2 қатты блок кестесі, содан кейін 1 қатты блок кестесі.

Егер осы транзакциялардың екеуі де бір уақытта басталса, онда бірінші кестенің өзгерту әрекеттерін орындағаннан кейін олардың екеуі де шексіз күтумен аяқталады: А транзакциясы В транзакциясының аяқталуын және 2 кестенің құлпын ашуын күтеді, ал В транзакциясы А транзакциясының аяқталуын және 1-кестенің құлпын ашуын бекер күтіңіз.

Жағдайлар әлдеқайда күрделі болуы мүмкін. Өзара блокталған транзакциялардың саны әлдеқайда көп болуы мүмкін. Әрбір транзакция бұл жағдайды өздігінен анықтай алмайды. Оған ДҚБЖ рұқсат беруі керек. Коммерциялық ДҚБЖ көпшілігінде мұндай тұйықтарды анықтау механизмі бар.

Тұйықталуды анықтаудың негізі транзакцияны күту графигін құру (немесе тұрақты қызмет көрсету) болып табылады. Күту графы оның шыңдарында транзакция атаулары бар бағытталған график болуы мүмкін. Егер T1 транзакциясы T2 транзакциясының аяқталуын күтіп тұрса, онда көрсеткі T1-ден T2-ге өтеді. Сонымен қатар, көрсеткілерді блокталған нысандардың атауларымен және блоктау түрімен белгілеуге болады.

Құлыптауды іске асыру механизмі қанша кесте құлыпталатынын анықтайтын құлыпты оқшаулау деңгейі тұжырымдамасын пайдаланады. Дәстүрлі түрде оқшаулаудың үш деңгейі қолданылады:

· Қайта оқу деп аталатын оқшаулау деңгейі берілген транзакция ішінде сұраулар арқылы алынған барлық жазбаларды өзгерту мүмкін болмайтындай стратегияны жүзеге асырады. Бұл жазбаларды транзакция аяқталмайынша өзгерту мүмкін емес.

· Тұрақтылық көрсеткіші деп аталатын оқшаулау деңгейі әрбір жазбаны оқу кезінде өзгертуге немесе оны өзгерту кезінде оқуға жол бермейді.

· Үшінші тұрақтылық деңгейі тек оқуға арналған деп аталады. Тек оқу үшін бүкіл кестені құлыптайды, сондықтан жаңарту пәрмендерімен бірге пайдалану мүмкін емес. Осылайша, тек оқуға арналған сұрау шығысының кесте деректерімен ішкі сәйкестігін қамтамасыз етеді.

Сонымен, ДҚБЖ-дағы параллельдік бақылау бір уақытта берілген командалардың бір-біріне қаншалықты кедергі жасайтынын анықтайды. Қазіргі ДҚБЖ-да бұл деректер қорының максималды өнімділігін және операциялық топтар үшін деректердің қолжетімділігін ескере отырып, оңтайлы шешімді автоматты түрде табатын бейімделгіш құрал.

9. ТЕСТ СҰРАҚТАРЫ

1. Транзакцияны анықтаңыз. Мәмілелерге мысалдар келтіріңіз.

2. Мәмілелердің қасиеттерін тізіп, сипаттаңыз.

3. Транзакцияларды аяқтаудың қандай мүмкін нұсқалары бар.

4. Қандай тіл операторлары SQL кеңейтілген транзакция үлгісінде транзакциялармен жұмыс істеу үшін қызмет етеді?

5. Триггерлерде транзакцияны басқару пәрмендерін пайдалануға болады ма?

6. Транзакция журналының мақсаты қандай?

7. Мәліметтер қорын қалпына келтіру қандай жағдайларда транзакциялар журналының көмегімен орындалады?

8. Транзакцияларды тіркеу опциялары қандай?

9. Транзакцияларды тіркеу опцияларының айырмашылығы неде: кешіктірілген жаңартулары бар протокол және дереу жаңартулары бар протокол.

10. Пайдаланушылар деректер қорымен параллель жұмыс істегенде қандай мәселелер туындайды?

11. Пайдаланушыны оқшаулау принципін жүзеге асыру үшін қандай деректер қоры объектілерін құлыптауға болады?

12. Сұрауларда блоктау түрін орнатуға болады ма?

13. Бірнеше транзакциялар арқылы нысанды түсірудің қандай түрлері бар? Қайсылары үйлесімді?

14. Тұйықталу мәселесі қандай?

Түрлі сипаттар бойынша жіктелуі мүмкін әртүрлі транзакция үлгілері бар, соның ішінде транзакция құрылымы, транзакция ішіндегі параллельділік, ұзақтығы және т.б.

AT осы сәтОперациялардың келесі түрлері бар: тегіс немесе классикалық транзакциялар, тізбекті операциялар және кірістірілген транзакциялар.

Тегіс немесе дәстүрлі транзакциялар төрт классикалық қасиетпен сипатталады: атомдық, консистенциялық, оқшаулану, беріктік (беріктік) - ACID (Atomicity, Consistency, Isolation, Durability). Дәстүрлі транзакциялар кейде ACID транзакциялары деп аталады. Жоғарыда аталған қасиеттер мынаны білдіреді:

Атомдық қасиеті (Atomicity) мәміленің тұтас аяқталуы немесе мүлде аяқталмауынан көрінеді.

Consistency сипаты транзакциялар орындалған сайын деректер бір тұрақты күйден екіншісіне ауысуын қамтамасыз етеді — транзакция деректердің өзара сәйкестігін бұзбайды.

Оқшаулану қасиеті дерекқорға қатынасу үшін бәсекелес транзакциялардың физикалық түрде дәйекті түрде өңделетінін, бір-бірінен оқшауланғанын білдіреді, бірақ пайдаланушылар үшін олар параллель орындалатын сияқты көрінеді.

Тұрақтылық қасиеті келесідей түсіндіріледі: егер транзакция сәтті аяқталса, онда ол жасаған деректердегі өзгерістер ешбір жағдайда (тіпті кейінгі қателер болған жағдайда) жоғалмайды.

Транзакцияны аяқтаудың екі нұсқасы бар. Егер барлық мәлімдемелер сәтті аяқталса және транзакция кезінде бағдарламалық жасақтама немесе аппараттық құрал ақаулары орын алмаса, транзакция жасалды.

Транзакцияны орындау – транзакцияны орындау кезінде жасалған мәліметтер базасына өзгерістерді дискіге жазатын әрекет.

Транзакция жасалмағанша, бұл өзгерістерді болдырмауға, дерекқорды транзакция басталған кездегі күйге қалпына келтіруге болады. Мәміле жасау мәміленің барлық нәтижелерінің тұрақты болуын білдіреді. Олар ағымдағы транзакция жасалғаннан кейін ғана басқа транзакцияларға көрінетін болады. Осы уақытқа дейін транзакция әсер еткен барлық деректер ағымдағы транзакцияның басындағы күйде пайдаланушыға «көрінетін» болады.

Егер транзакцияны орындау кезінде оны қалыпты түрде аяқтау мүмкін болмайтын бірдеңе орын алса, деректер базасы бастапқы күйіне қайтарылуы керек. Транзакцияны кері қайтару ағымдағы күтудегі транзакцияның негізгі бөлігінде SQL мәлімдемелері арқылы жасалған барлық деректер өзгерістерін болдырмайтын әрекет болып табылады.



Мәміледегі әрбір мәлімдеме жұмыстың өз бөлігін орындайды, бірақ тұтастай алғанда барлық жұмыстың сәтті аяқталуы үшін олардың барлық мәлімдемелерінің сөзсіз аяқталуы қажет. Транзакциядағы мәлімдемелерді топтау ДҚБЖ бүкіл топты бір бірлік ретінде орындау керектігін және мұндай орындауға автоматты түрде қолдау көрсету керектігін айтады.

ANSI/ISO SQL стандарты COMMIT және ROLLBACK операторларының транзакция үлгісін және функцияларын анықтайды. Стандарт транзакция пайдаланушы бастаған немесе өзгеретін бағдарламада қамтылған бірінші SQL мәлімдемесінен басталатынын көрсетеді. Қазіргі күйДерекқор. Барлық келесі SQL мәлімдемелері транзакцияның негізгі бөлігін құрайды. Мәміле төртеуінің біреуімен аяқталады мүмкін тәсілдер(11.1-сурет):

COMMIT мәлімдемесі транзакцияның сәтті аяқталуын білдіреді; оны пайдалану ағымдағы транзакция шеңберінде деректер базасына енгізілген өзгерістерді тұрақты етеді;

ROLLBACK операторы транзакцияны тоқтатады, осы транзакцияның бөлігі ретінде дерекқорға енгізілген өзгерістерді болдырмайды; жаңа транзакция ROLLBACK пайдаланғаннан кейін бірден басталады;

ағымдағы транзакция басталған бағдарламаның сәтті аяқталуы транзакцияның сәтті аяқталуын білдіреді (COMMIT мәлімдемесі пайдаланылған сияқты);

қате бағдарламаның тоқтатылуы транзакцияны тоқтатады (ROLLBACK мәлімдемесі пайдаланылған сияқты).

Бұл модельде дерекқордың күйін өзгертетін әрбір мәлімдеме транзакция ретінде қарастырылады, сондықтан бұл мәлімдеме сәтті аяқталғаннан кейін дерекқор жаңа тұрақты күйге ауысады.

Коммерциялық ДҚБЖ бірінші нұсқалары ANSI/ISO транзакция үлгісін жүзеге асырды. Кейіннен SYBASE ДҚБЖ кеңейтілген транзакция үлгісі енгізілді, ол бірқатар қосымша операцияларды қамтиды. SYBASE үлгісі келесі төрт мәлімдемені пайдаланады:

BEGIN TRANSACTION мәлімдемесі транзакцияның басталуын білдіреді. ANSI/ISO стандартындағы үлгіден айырмашылығы, транзакцияның басталуы бірінші деректерді өзгерту мәлімдемесі арқылы жасырын түрде орнатылады, SYBASE үлгісінде транзакцияның басталуы транзакция мәлімдемесінің басталуы арқылы анық орнатылады.

COMMIT TRANSACTION мәлімдемесі транзакцияның сәтті аяқталғанын хабарлайды. Ол ANSI/ISO үлгісіндегі COMMIT мәлімдемесіне баламалы. Бұл мәлімдеме, COMMIT мәлімдемесі сияқты, транзакция кезінде дерекқорға жасалған барлық өзгерістерді орындайды.

SAVE TRANSACTION операторы операцияның ішінде оператор орындалған кезде сақталған дерекқордың аралық күйіне сәйкес келетін сақтау нүктесін жасайды. SAVE TRANSACTION мәлімдемесінде сақтау нүктесінің атауы болуы мүмкін. Сондықтан транзакцияны орындау кезінде бірнеше аралық күйге сәйкес келетін бірнеше сақтау нүктелерін сақтауға болады.

ROLLBACK операторында екі модификация бар. Егер бұл оператор қосымша параметрсіз пайдаланылса, онда ол бүкіл транзакция үшін кері қайтару операторы ретінде түсіндіріледі, яғни бұл жағдайда ANSI/ISO үлгісіндегі ROLLBACK кері қайтару операторына баламалы. Егер кері қайтару операторында параметр болса және ROLLBACK B ретінде жазылса, онда ол В сақтау нүктесіне ішінара транзакцияны кері қайтару операторы ретінде түсіндіріледі.

Кеңейтілген транзакция үлгісінде транзакцияны орындау принциптері күріште көрсетілген. 11.2. Суретте операторлар сандармен белгіленген, осылайша бізге барлық рұқсат етілген жағдайларда транзакцияның орындалу барысын бақылау ыңғайлы болады.

Транзакция нақты транзакцияны бастау операторынан басталады, оның схемамызда нөмірі 1. Одан кейін іздеу операторы болып табылатын және дерекқордың ағымдағы күйін өзгертпейтін 2-оператор келеді, ал келесі 3 және 4 операторлар дерекқорды келесіге тасымалдайды. жаңа мемлекет. 5-мәлімдеме дерекқордың осы жаңа аралық күйін сақтайды және оны А нүктесінде аралық күй ретінде белгілейді. Дерекқорды жаңа күйге келтіретін 6 және 7 мәлімдемелер. Ал 8-оператор бұл күйді В нүктесінде аралық күй ретінде сақтайды. 9-оператор жаңа деректерді енгізуді орындайды, ал 10-оператор 1-шарттың кейбір тексеруін орындайды; егер 1-шарт орындалса, онда транзакцияны аралық В күйіне қайтаратын 11 операторы орындалады. Бұл 9 операторының әрекеттерінің салдары бір түрдегі өшірілетінін және деректер базасы орындалғаннан кейін В аралық күйіне оралатынын білдіреді. 9 оператор жаңа күйде болды Ал транзакция кері қайтарылғаннан кейін күйден бұрын орындалған 9 операторының орнына дерекқорда жаңа деректерді енгізуге арналған 13 операторы орындалады, содан кейін басқару 14 операторына беріледі. Оператор 14 шартты қайтадан тексереді, бірақ қазірдің өзінде кейбір жаңа шарт 2, егер шарт орындалса, басқару 15 операторына беріледі, ол транзакцияны аралық А күйіне қайтарады, яғни мәліметтер базасын өзгерткен барлық мәлімдемелер бастап. 6-дан бастап және 13-пен аяқталатындар орындалмаған болып саналады, яғни олардың орындалу нәтижелері жоғалып кетті және біз қайтадан А күйінде боламыз, өйткені 4 операторды орындағаннан кейін Келесі басқару 17-операторға беріледі, ол мазмұнын жаңартады. деректер базасы, содан кейін басқару Шешім 3 тексеру шартымен байланысты 18 операторға беріледі Тексеру не операцияны жасайтын 20 операторға бақылауды берумен аяқталады, ал деректер базасы жаңа тұрақты күйге енеді және оны өзгерту мүмкін емес. ағымдағы транзакция Немесе басқару 19 операторға берілсе, онда транзакция басына қайтарылады және дерекқор бастапқы күйіне оралады және мұнда барлық аралық күйлер әлдеқашан тексерілген және кері қайтару операциясын орындау мүмкін емес. 19-шы мәлімдемені орындағаннан кейін осы аралық күйлер

Әрине, SYBASE ұсынған кеңейтілген транзакция үлгісі транзакцияны орындаудың анағұрлым икемді механизмін қолдайды, белгілі бір операторлар үшін өзгертуді болдырмау мүмкіндігі Алайда, бұл қосымша жүйелік ресурстарды жүктейді - оператор жұмысты жасайды, содан кейін өзгертулер жойылады, әдетте жақсартулар өңдеу логикасы жақсы шешім болуы мүмкін

Транзакция модельдері әртүрлі қасиеттерге байланысты жіктеледі:

транзакция құрылымы;

мәміле шеңберіндегі сәйкестік;

ұзақтығы.

Мәміле түрлері:

1. Жазық (классикалық)

2. Тізбек

3. Кірістірілген

Жалпақ транзакциялар 4 классикалық қасиетпен сипатталады:

атомдық;

консистенциясы;

оқшаулау;

төзімділік (беріктік).

Кейде бұл транзакциялар ACID транзакциялары деп аталады.

Қышқылдық - атомдық, консистенттілік, оқшаулану, төзімділік.

Жоғарыда аталған қасиеттер мынаны білдіреді:

Атомдық – мәміленің тұтас аяқталуы немесе мүлде аяқталмауынан көрінеді.

Жүйелілік – транзакциялар орындалған кезде деректер бір тұрақты күйден екіншісіне ауысуын қамтамасыз етеді, яғни транзакция деректердің өзара сәйкестігін бұзбайды.

Оқшаулау дерекқорға қол жеткізу үшін бәсекелес транзакциялардың физикалық түрде дәйекті түрде өңделетінін, бір-бірінен оқшауланғанын білдіреді, бірақ пайдаланушылар үшін олар параллель орындалатын сияқты.

Төзімділік - егер транзакция сәтті аяқталса, онда ол жасаған деректердегі өзгерістер ешбір жағдайда жоғалмайды.

Транзакцияларды аяқтау опциялары:

1. Егер барлық мәлімдемелер сәтті аяқталса және транзакция барысында бағдарламалық немесе аппараттық ақаулар орын алмаса, онда транзакция жасалды.

Транзакцияны орындау – транзакцияларды орындау кезінде жасалған мәліметтер базасына өзгерістерді дискіге жазатын әрекет. Мәмілелерді жасау оны орындаудың барлық нәтижелері тұрақты болып, ағымдағы мәміле жасалғаннан кейін ғана басқа транзакцияларға көрінетінін білдіреді.



2. Егер транзакцияларды орындау кезінде оны қалыпты түрде аяқтау мүмкін болмайтын бірдеңе орын алса, деректер базасы бастапқы күйіне қайтарылуы керек.

Транзакцияны кері қайтару ағымдағы күтудегі транзакцияның негізгі бөлігінде SQL мәлімдемелері арқылы жасалған барлық деректер өзгерістерін болдырмайтын әрекет болып табылады. Мәміледегі әрбір мәлімдеме жұмыстың өз бөлігін орындайды, бірақ тұтастай алғанда барлық жұмысты сәтті аяқтау үшін олардың барлық мәлімдемелерін сөзсіз аяқтау қажет.

ANSI/ISO SQL стандартында транзакция 4 мүмкін жолдың бірімен аяқталады (1-сурет):

Күріш. 1. ANSI/ISO транзакция үлгісі

1. COMMIT мәлімдемесі транзакцияның сәтті аяқталуын білдіреді; оны пайдалану ағымдағы транзакция шеңберінде деректер базасына енгізілген өзгерістерді тұрақты етеді;

2. ROLLBACK операторы транзакцияны тоқтатады, осы транзакция шеңберінде дерекқорға енгізілген өзгерістерді болдырмайды; жаңа транзакция ROLLBACK пайдаланғаннан кейін бірден басталады;

3. ағымдағы транзакция басталған бағдарламаның сәтті аяқталуы транзакцияның сәтті аяқталуын білдіреді (COMMIT мәлімдемесі пайдаланылған сияқты);

4. қате бағдарламаны тоқтату транзакцияны тоқтатады (ROLLBACK операторы пайдаланылған сияқты).

Транзакциялар журналы дерекқорда деректерді сенімді сақтауды қамтамасыз етуге арналған. Және бұл талап, атап айтқанда, аппараттық және бағдарламалық қамтамасыз етудің кез келген ақауларынан кейін деректер қорының тұрақты күйін қалпына келтіру мүмкіндігін білдіреді. Әлбетте, қалпына келтіруді орындау үшін кейбір қосымша ақпарат қажет, ол транзакция журналы деп аталатын дерекқорды өзгерту журналы түрінде сақталады.

Қатты сәтсіздіктен кейін қалпына келтіру

Қатты сәтсіздіктен кейін дерекқордың соңғы тұрақты күйін қалпына келтірудің негізі журнал және дерекқордың сақтық көшірмесі болып табылады.

Қалпына келтіру дерекқорды сақтық көшірмеден көшіруден басталады. Содан кейін барлық аяқталған транзакциялар үшін қайталау орындалады, яғни операциялар тікелей ретпен қайта орындалады.

Операцияларды параллель орындау

Егер деректер қорымен бір уақытта бірнеше пайдаланушы жұмыс істесе, онда ДҚБЖ жеке транзакцияларды дұрыс орындап қана қоймай, ақаулардан кейін деректер қорының дәйекті күйін қалпына келтіруі керек, сонымен қатар ол барлық пайдаланушылардың бір деректермен дұрыс параллель жұмысын қамтамасыз етуге арналған. . Теориялық тұрғыдан әрбір пайдаланушының және әрбір транзакцияның оқшаулану қасиеті болуы керек, яғни олар деректер қорымен бір ғана пайдаланушы жұмыс істегендей орындалуы керек. Ал қазіргі ДҚБЖ құралдары осылайша пайдаланушыларды бір-бірінен оқшаулауға мүмкіндік береді. Дегенмен, бұл жағдайда пайдаланушы тәжірибесін бәсеңдету проблемалары бар.

Әр жолы банк картасын пайдаланып тауарды төлеу, алу Ақшанемесе аударымдарды жүзеге асыру, белгілі бір операцияларды банктің клиенті жүзеге асырады. Барлық транзакциялар бірнеше минутты алатын болса да, операциялардың толық циклі ақшаны есептен шығаруға, оларды өңдеуге және орындауға сұраныстарды жіберуді қамтитын өте ауқымды процесс.

Транзакция – бұл банк картасымен жасалған кез келген операция, оның орындалуы клиент шотының жағдайын өзгертуге әкеледі. Мәміле нақты уақытта (онлайн) және офлайн режимінде жүзеге асырылуы мүмкін.

Онлайн транзакциялар ақшаны төлеу немесе аудару кезінде төлемді міндетті түрде растауды талап етеді.

Онлайн транзакцияларға кіреді Ақша аударымдарыкарталар арасында, банкоматтардағы қолма-қол ақшаны алу операциялары, сауда нүктелері мен дүкендердегі есеп айырысу операциялары. Сауда орталығында тауарларды төлеу мысалында онлайн транзакцияны орындау процесін қарастырыңыз.

Операцияға үш тарап қатысады:

  • таңдалған сауда нүктесіне қызмет көрсететін эквайринг банк (оның POS-терминалы дүкенде орнатылған);
  • төлем банкінің картасына қызмет көрсететін эмитент-банк;
  • есеп айырысу операцияларын жүргізуде аралық буын болып табылатын халықаралық төлем жүйесі (Visa, MasterCard және т.б.).

Онлайн транзакциялар тәртібі

Есеп айырысу операциясы төлем картасы кассирге тапсырылған және POS-терминал төлем үшін қажетті мәліметтерді (карточка нөмірі, әрекет ету мерзімі, иесінің аты-жөні және магниттік таспада шифрланған басқа да мәліметтер) оқыған сәттен басталады. Оқылған ақпарат POS-терминалға қызмет көрсететін эквайер-банкке беріледі (әдетте, дүкендер терминалдарға қызмет көрсетуге арнайы келісімдер жасайды, оған сәйкес әрбір транзакция бойынша комиссиялар алынады).

Алынған деректерді эквайер-банк халықаралық мәліметтерді өңдеу орталығына (ДПО) береді төлем жүйесікартаға қызмет көрсету.

Дата-орталық тоқтату-парақшасында төлем картасының бар-жоғын тексереді (стоп-парақшаға алаяқтыққа күдікті карталар кіруі мүмкін), нәтижесінде операция мақұлданады немесе қабылданбады.

Осыдан кейін ақпарат эмитент-банктің процессингтік орталығына беріледі, онда төлем бекітіледі. Мұнда транзакцияның заңдылығы тексеріледі: транзакцияны аяқтау үшін жеткілікті қаражат сомасының бар-жоғы тексеріледі және енгізілген ПИН-кодтың нақты мәнге сәйкестігі тексеріледі. Ол сондай-ақ артықтығын тексереді белгіленген шекоперацияларды орындау.

Эмитент-банктің жауабы дата орталығы арқылы эквайер банкке және дүкенге қайтарылады. Төлем мәліметтері сатып алушыға берілетін чекте көрсетіледі.

Онлайн және офлайн операциялардың ерекшеліктері

Онлайн транзакцияларды орындау кезінде қарастырылған әрекеттер сатып алушы мен дүкен арасындағы өзара әрекетті аяқтайды. Бірақ транзакцияның өзі мұнымен бітпейді. Өйткені, картадағы қаражат бірден есептен шығарылмайды: олар уақытша блокталады. Дүкенге қаражат эквайердің шотынан аударылады, ал олар эквайер-банк эмитентке олардың дебетіне қаржылық құжат жібергеннен кейін ғана картадан есептен шығарылады. Бұл бірнеше күн немесе тіпті бір ай ішінде болуы мүмкін.

Офлайн транзакциялар басқа принцип бойынша жүзеге асырылады. Олар қашықтағы тараптың тексеру әрекеттерінсіз және мақұлдаусыз немесе қабылдамаусыз өтеді. Мәміле алдын ала бекітіледі, үшін қаражат қалдығы банк картасыброндалған және барлық төлем деректемелері төлем терминалының жадында сақталады.

Офлайн транзакция кейінірек терминалда жинақталған ақпарат байланыс арналары арқылы қызмет көрсететін банкке жіберілген кезде жасалады. Әдетте, төлемді орындау туралы талап қойылған сәттен бастап нақты төлем сәтіне дейін бірнеше күн өтеді.

Офлайн транзакциялар нақты уақыт режимінде процессингтік орталықпен байланыс орнату мүмкіндігі болмаған жағдайларда қолданылады (ұшақтарда, автобустарда, таксилерде және т.б.).

Мәмілелерге тыйым салу және жою

Ең көп таралған транзакциялар дүкен ішіндегі төлемдер, ақша аударымдары және қолма-қол ақшаны алу болып табылады. Транзакцияларға тыйым салудың бірнеше себептері бар.

Олардың ең көп тарағаны:

  • банк картасы бұғатталған;
  • операцияны аяқтау үшін қажетті банк картасында қаражат жеткіліксіз;
  • төлем карточкасында төлемдерді жүзеге асыруға шектеулер орнатылған;
  • төлем картасының мерзімі өткен;
  • PIN кодын енгізу кезінде қате орын алды;
  • банк картасы ақшаны жылыстату, алаяқтық және т.б. күдікпен тоқтату тізіміне енгізілген;
  • бар Техникалық мәселелері(сайтта, банкоматпен және т.б.).

Операцияларға тыйым салу картаның теңгерімінің жеткіліксіздігімен байланысты болмаса, ақауларды шешу үшін қызмет көрсететін банкке хабарласу қажет. Кейбір жағдайларда транзакциялар клиенттердің өздерінің бастамасы бойынша жойылуы мүмкін (әрине, егер біз қолма-қол ақшаны алу туралы айтпасақ). Сондай-ақ, картадан ұсталған қаражатты алаяқтық жолмен қайтару мүмкіндігін алу үшін транзакциялардан бас тарту мүмкіндігі туралы білу қажет.

Ең оңай жолы - операцияны орындаған күні тоқтату.

Операцияларды тоқтату функциясы терминалдардың өзінде.

Терминалдардағы деректер банкке жіберілген болса, сіз қаржы институтының өзіне хабарласуыңыз керек.

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!