Обробка транзакцій (англ. Transaction processing) - це обробка інформації в комп'ютерній науці, яка ділиться на окремі неподільні операції, які називаються транзакціями. Транзакція може бути виконана повністю і успішно, дотримуючись цілісності даних і незалежно від інших транзакцій, що йдуть паралельно, або не виконана зовсім, тому що транзакція не може бути виконана частково.
Наприклад, коли ви купуєте книгу з інтернет-магазину, ви обмінюєте гроші (в формі кредиту) за книгу. Якщо, ваш кредит вдалий, ряд пов'язаних з ними операції гарантує, що ви отримаєте книгу, а інтернет-магазин отримує свої гроші. Однак, якщо одна операція в серії зазнає невдачі під час обміну, весь обмін зазнає невдачі. Ви не отримаєте книгу, а інтернет-магазин не отримає свої гроші. Технологія, відповідальна за збалансований і передбачуваний обмін, називається обробкою транзакцій. Транзакції гарантують, що ресурси, орієнтовані на дані, які не будуть постійно оновлюватися, якщо всі операції в транзакційному блоці не буде успішно завершено. Об'єднавши набір пов'язаних операцій в блок, який завершиться повністю успіхом або повністю невдачею, можна зменшити кількість помилок і зробити програму більш надійною.
Система обробки транзакцій складається з комп'ютерного обладнання та хостингу транзакційно-орієнтованої програми, яка виконує рутинні операції необхідні для ведення бізнесу. Прикладом є системи, які керують бронюванням авіаквитків, нарахуванням заробітної плати, обліком персоналу, виробництвом і доставкою товару.
Опис
Обробка транзакцій призначена для підтримки цілісності системи (як правило, бази даних або деяких сучасних файлових систем) у відомому узгодженому стані, гарантуючи, що взаємозалежні операції в системі успішно завершені, або всі успішно скасовані.
Наприклад, розглянемо типову банківську транзакцію, яка включає переказ 700 доларів США з ощадного рахунку клієнта на поточний рахунок клієнта. Ця транзакція поєднує в собі як мінімум дві окремі операції в комп'ютерних термінах: дебетування ощадного рахунку на 700 доларів США та кредитування розрахункового рахунку на 700 доларів США. Якщо одна операція завершується успішно, а інша - ні, банківська книга буде незбалансована. Тому повинен бути спосіб, який гарантує, що обидві операції матимуть успіх або зазнають невдачі, так щоб в базі даних банку ніколи не виникла неузгодженість.
Обробка транзакцій пов'язує кілька окремих операцій в єдину неподільну транзакцію і гарантує, що всі операції в транзакції будуть завершені без помилок, або жодна з них не буде виконана. Якщо деякі з операцій завершені, але помилки виникають при інших операціях, система обробки транзакцій «скасовує» всі операції транзакції (включаючи успішні), тим самим стираючи всі сліди транзакції і відновлюючи систему до початкового стану, в якому вона перебувала до початку транзакції. Якщо всі операції транзакції завершені успішно, транзакція фіксується системою, і всі зміни в базі даних стають постійними; транзакція не може бути скасована, як тільки вона буде завершена.
Обробка транзакцій захищає від помилок апаратного і програмного забезпечення, які можуть частково закрити транзакцію. Якщо комп'ютерна система виходить з ладу під час транзакції, система обробки транзакцій гарантує, що всі операції в будь-яких незафіксованих транзакціях будуть скасовані.
Як правило, транзакції здійснюються одночасно. Якщо вони перекриваються (тобто звертаються до однієї і тієї ж частини бази даних), це може призвести до конфліктів. Наприклад, якщо клієнт, згаданий в наведеному вище прикладі, має 150 доларів на своєму ощадному рахунку і намагається переказати 100 доларів іншій людині, одночасно переказуючи 100 доларів на поточний рахунок, то тільки одна з цих операцій буде успішною. Однак, примусове виконання транзакцій неефективне. Тому паралельна реалізація обробки транзакцій запрограмована таким чином, щоб гарантувати, що кінцевий результат буде без конфліктів, того ж можна досягнути при виконанні транзакцій послідовно в будь-якому порядку. У цьому прикладі це означає, що незалежно від того, яка транзакція була зроблена першою, переказ іншій особі, або переказ на поточний рахунок, одна операція буде завершена успішно, а інша - невдало.
Методи обробки транзакцій
Основні принципи всіх транзакційних систем однакові. Однак термінологія може варіюватися від однієї системи обробки транзакцій до іншої, а використовані нижче терміни не обов'язково універсальні.
Rollback — Відновлення початкового стану
Системи обробки транзакцій забезпечують цілісність бази даних шляхом запису проміжних станів бази даних по мірі її зміни, а потім використовуючи ці записи для відновлення бази даних до відомого стану, якщо транзакція не може бути виконана. Наприклад, копії інформації про базу даних до її модифікації транзакцією відкладаються системою до того, як транзакція може внести будь-які зміни (іноді це називають "попереднє зображення"). Якщо будь-яка частина транзакції завершиться з помилкою до її здійснення, ці копії використовуються для відновлення бази даних до стану, в якому вона була до початку транзакції.
Rollforward — Збереження останніх дій
Також можливо зберегти окремий журнал всіх змін в системі управління базами даних (іноді це називають "наступне зображення"). Це не потрібно для відкату невдалих транзакцій, але це корисно для оновлення системи управління базами даних, в разі збою бази даних, тому деякі системи обробки транзакцій надають такий журнал змін. Якщо система управління базами даних повністю не працює, вона повинна бути відновлена з останньої резервної копії. Створення резервних копій не відображатиме транзакції, виконані з моменту створення резервної копії. Однак, як тільки система управління базами даних буде відновлена, журнал наступних зображень може бути застосований до бази даних (накат), щоб оновити систему управління базами даних. Будь-які транзакції, що виконуються в момент збою, можуть бути відкинуті назад. Результатом є база даних в останньому відомому стані, яка містить в собі результати всіх транзакцій, здійснених до моменту збою.
Deadlocks — Критична межа
У деяких випадках дві транзакції можуть намагатися під час обробки отримати доступ до однієї і тієї ж частини бази даних одночасно. Наприклад, транзакція A може отримати доступ до частини X бази даних, а транзакція B може отримати доступ до частини Y бази даних. Якщо в цей момент транзакція A намагатиметься отримати доступ до ділянки Y бази даних, тоді як транзакція B намагається отримати доступ до частини X, виникає взаємоблокування, і жодна транзакція не може продовжити виконуватись. Система обробки транзакцій призначена для виявлення цих взаємоблокувань, коли вони відбуваються. Як правило, обидві транзакції будуть скасовані і відновлені до початкового стану, а потім будуть знову запущені в іншому порядку, автоматично, так що безвихідної ситуації не відбудеться. Або іноді, тільки одна з тупикових транзакцій буде скасована, відновлена до початкового стану і автоматично перезапущена після невеликої затримки.
Тупики можуть також зустрічатися між трьома або більше транзакціями. Чим більше транзакцій, тим важче виявити тупики, до такої міри, що системи обробки транзакцій виявляють, що існує практичне обмеження тупиків, які вони можуть виявити.
Компенесація транзакцій
В системах, де механізми фіксації і відкату недоступні або небажані, компенсація транзакцій часто використовується для скасування невдалих транзакцій і відновлення системи до попереднього стану.
Критерії ACID
Докладніше: ACID
Джим Грей визначив властивості надійної системи транзакцій в кінці 1970-х років під абревіатурою ACID - атомарність, узгодженість, ізольованість і довговічність.
Atomicity — Атомарність
Докладніше: Атомарність
Зміни транзакцій в стані є атомарним: або все відбувається, або нічого не відбувається. Ці зміни включають зміни бази даних, повідомлення та дії на перетворювачах.
Consistency — Узгодженість
Узгодженість: Транзакція - це правильне перетворення стану. Діяльність, яка здійснюється як група, не порушує будь-яких обмежень цілісності, пов'язаних зі станом.
Isolation — Ізольованість
Незважаючи на те, що транзакції виконуються одночасно, кожній транзакції T протиставиться кожна, що виконувались до T, або після T, але не обидві одночасно.
Durability — Надійність
Як тільки транзакція завершується успішно (вона фіксується), зберігаються зміни в її стані, після усунення помилок.
Переваги
Обробка транзакцій має наступні переваги:
- Можливість спільно використовувати комп'ютерні ресурси серед багатьох користувачів
- Можливість використовувати час обробки завдання, коли обчислювальні ресурси менш зайняті
- Можливість уникати бездії обчислювальних ресурсів без щохвилинної взаємодії і людського контролю
- Можливість використання на дорогих класах комп'ютерів, для зменшення кількості витрат, зберігаючи високі темпи використання цих дорогих ресурсів
Реалізації
Стандартне програмне забезпечення для обробки транзакцій, таке як IBM's Information Management System, було вперше розроблено в 1960-х роках і часто тісно пов'язане з конкретними системами управління базами даних. Клієнт-серверні обчислення реалізували аналогічні принципи в 1980-х роках зі змінним успіхом. Однак в останні роки розподілену модель клієнт-сервер стало значно складніше підтримувати. Оскільки кількість транзакцій зросло у відповідь на різні онлайн-послуги (особливо в Інтернеті), одна розподілена база даних не була практичним рішенням. Крім того, більшість онлайнових систем складається з цілого набору програм, які працюють разом, на відміну від суворої моделі клієнт-сервер, де один сервер може виконувати обробку транзакцій. Сьогодні є ряд систем обробки транзакцій, які працюють на міжпрограмному рівні і масштабуються для великих систем, включаючи мейнфрейми.
Одним з зусиль є X/Open Distributed Transaction Processing (DTP) (див. також Java Transaction API (JTA). Однак запатентовані середовища обробки транзакцій, такі як CICS від IBM, як і раніше користуються великою популярністю, хоча CICS розвинула галузеві стандарти.
Термін «обробка екстремальних транзакцій» (XTP) використовувався для опису систем обробки транзакцій з надзвичайно складними вимогами, особливо вимогами пропускної здатності (транзакцій в секунду). Такі системи можуть бути реалізовані за допомогою розподілених або кластерних архітектур. Ці архітектури використовувалися принаймні до 2011 року.
Примітки
- Gray, Jim; Reuter, Andreas. . Retrieved Nov 12, 2012. Архів оригіналу за 29 вересня 2000.
- Koen Vanderkimpen and Dirk Deridder. . Devoxx 2011 presentation. Retrieved March 18, 2017. Архів оригіналу за 18 жовтня 2017.
- Kevin Roebuck (2011). Extreme Transaction Processing. Lightning Source. ISBN .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Obrobka tranzakcij angl Transaction processing ce obrobka informaciyi v komp yuternij nauci yaka dilitsya na okremi nepodilni operaciyi yaki nazivayutsya tranzakciyami Tranzakciya mozhe buti vikonana povnistyu i uspishno dotrimuyuchis cilisnosti danih i nezalezhno vid inshih tranzakcij sho jdut paralelno abo ne vikonana zovsim tomu sho tranzakciya ne mozhe buti vikonana chastkovo Napriklad koli vi kupuyete knigu z internet magazinu vi obminyuyete groshi v formi kreditu za knigu Yaksho vash kredit vdalij ryad pov yazanih z nimi operaciyi garantuye sho vi otrimayete knigu a internet magazin otrimuye svoyi groshi Odnak yaksho odna operaciya v seriyi zaznaye nevdachi pid chas obminu ves obmin zaznaye nevdachi Vi ne otrimayete knigu a internet magazin ne otrimaye svoyi groshi Tehnologiya vidpovidalna za zbalansovanij i peredbachuvanij obmin nazivayetsya obrobkoyu tranzakcij Tranzakciyi garantuyut sho resursi oriyentovani na dani yaki ne budut postijno onovlyuvatisya yaksho vsi operaciyi v tranzakcijnomu bloci ne bude uspishno zaversheno Ob yednavshi nabir pov yazanih operacij v blok yakij zavershitsya povnistyu uspihom abo povnistyu nevdacheyu mozhna zmenshiti kilkist pomilok i zrobiti programu bilsh nadijnoyu Sistema obrobki tranzakcij skladayetsya z komp yuternogo obladnannya ta hostingu tranzakcijno oriyentovanoyi programi yaka vikonuye rutinni operaciyi neobhidni dlya vedennya biznesu Prikladom ye sistemi yaki keruyut bronyuvannyam aviakvitkiv narahuvannyam zarobitnoyi plati oblikom personalu virobnictvom i dostavkoyu tovaru OpisObrobka tranzakcij priznachena dlya pidtrimki cilisnosti sistemi yak pravilo bazi danih abo deyakih suchasnih fajlovih sistem u vidomomu uzgodzhenomu stani garantuyuchi sho vzayemozalezhni operaciyi v sistemi uspishno zaversheni abo vsi uspishno skasovani Napriklad rozglyanemo tipovu bankivsku tranzakciyu yaka vklyuchaye perekaz 700 dolariv SShA z oshadnogo rahunku kliyenta na potochnij rahunok kliyenta Cya tranzakciya poyednuye v sobi yak minimum dvi okremi operaciyi v komp yuternih terminah debetuvannya oshadnogo rahunku na 700 dolariv SShA ta kredituvannya rozrahunkovogo rahunku na 700 dolariv SShA Yaksho odna operaciya zavershuyetsya uspishno a insha ni bankivska kniga bude nezbalansovana Tomu povinen buti sposib yakij garantuye sho obidvi operaciyi matimut uspih abo zaznayut nevdachi tak shob v bazi danih banku nikoli ne vinikla neuzgodzhenist Obrobka tranzakcij pov yazuye kilka okremih operacij v yedinu nepodilnu tranzakciyu i garantuye sho vsi operaciyi v tranzakciyi budut zaversheni bez pomilok abo zhodna z nih ne bude vikonana Yaksho deyaki z operacij zaversheni ale pomilki vinikayut pri inshih operaciyah sistema obrobki tranzakcij skasovuye vsi operaciyi tranzakciyi vklyuchayuchi uspishni tim samim stirayuchi vsi slidi tranzakciyi i vidnovlyuyuchi sistemu do pochatkovogo stanu v yakomu vona perebuvala do pochatku tranzakciyi Yaksho vsi operaciyi tranzakciyi zaversheni uspishno tranzakciya fiksuyetsya sistemoyu i vsi zmini v bazi danih stayut postijnimi tranzakciya ne mozhe buti skasovana yak tilki vona bude zavershena Obrobka tranzakcij zahishaye vid pomilok aparatnogo i programnogo zabezpechennya yaki mozhut chastkovo zakriti tranzakciyu Yaksho komp yuterna sistema vihodit z ladu pid chas tranzakciyi sistema obrobki tranzakcij garantuye sho vsi operaciyi v bud yakih nezafiksovanih tranzakciyah budut skasovani Yak pravilo tranzakciyi zdijsnyuyutsya odnochasno Yaksho voni perekrivayutsya tobto zvertayutsya do odniyeyi i tiyeyi zh chastini bazi danih ce mozhe prizvesti do konfliktiv Napriklad yaksho kliyent zgadanij v navedenomu vishe prikladi maye 150 dolariv na svoyemu oshadnomu rahunku i namagayetsya perekazati 100 dolariv inshij lyudini odnochasno perekazuyuchi 100 dolariv na potochnij rahunok to tilki odna z cih operacij bude uspishnoyu Odnak primusove vikonannya tranzakcij neefektivne Tomu paralelna realizaciya obrobki tranzakcij zaprogramovana takim chinom shob garantuvati sho kincevij rezultat bude bez konfliktiv togo zh mozhna dosyagnuti pri vikonanni tranzakcij poslidovno v bud yakomu poryadku U comu prikladi ce oznachaye sho nezalezhno vid togo yaka tranzakciya bula zroblena pershoyu perekaz inshij osobi abo perekaz na potochnij rahunok odna operaciya bude zavershena uspishno a insha nevdalo Metodi obrobki tranzakcijOsnovni principi vsih tranzakcijnih sistem odnakovi Odnak terminologiya mozhe variyuvatisya vid odniyeyi sistemi obrobki tranzakcij do inshoyi a vikoristovani nizhche termini ne obov yazkovo universalni Rollback Vidnovlennya pochatkovogo stanu Sistemi obrobki tranzakcij zabezpechuyut cilisnist bazi danih shlyahom zapisu promizhnih staniv bazi danih po miri yiyi zmini a potim vikoristovuyuchi ci zapisi dlya vidnovlennya bazi danih do vidomogo stanu yaksho tranzakciya ne mozhe buti vikonana Napriklad kopiyi informaciyi pro bazu danih do yiyi modifikaciyi tranzakciyeyu vidkladayutsya sistemoyu do togo yak tranzakciya mozhe vnesti bud yaki zmini inodi ce nazivayut poperednye zobrazhennya Yaksho bud yaka chastina tranzakciyi zavershitsya z pomilkoyu do yiyi zdijsnennya ci kopiyi vikoristovuyutsya dlya vidnovlennya bazi danih do stanu v yakomu vona bula do pochatku tranzakciyi Rollforward Zberezhennya ostannih dij Takozh mozhlivo zberegti okremij zhurnal vsih zmin v sistemi upravlinnya bazami danih inodi ce nazivayut nastupne zobrazhennya Ce ne potribno dlya vidkatu nevdalih tranzakcij ale ce korisno dlya onovlennya sistemi upravlinnya bazami danih v razi zboyu bazi danih tomu deyaki sistemi obrobki tranzakcij nadayut takij zhurnal zmin Yaksho sistema upravlinnya bazami danih povnistyu ne pracyuye vona povinna buti vidnovlena z ostannoyi rezervnoyi kopiyi Stvorennya rezervnih kopij ne vidobrazhatime tranzakciyi vikonani z momentu stvorennya rezervnoyi kopiyi Odnak yak tilki sistema upravlinnya bazami danih bude vidnovlena zhurnal nastupnih zobrazhen mozhe buti zastosovanij do bazi danih nakat shob onoviti sistemu upravlinnya bazami danih Bud yaki tranzakciyi sho vikonuyutsya v moment zboyu mozhut buti vidkinuti nazad Rezultatom ye baza danih v ostannomu vidomomu stani yaka mistit v sobi rezultati vsih tranzakcij zdijsnenih do momentu zboyu Deadlocks Kritichna mezha U deyakih vipadkah dvi tranzakciyi mozhut namagatisya pid chas obrobki otrimati dostup do odniyeyi i tiyeyi zh chastini bazi danih odnochasno Napriklad tranzakciya A mozhe otrimati dostup do chastini X bazi danih a tranzakciya B mozhe otrimati dostup do chastini Y bazi danih Yaksho v cej moment tranzakciya A namagatimetsya otrimati dostup do dilyanki Y bazi danih todi yak tranzakciya B namagayetsya otrimati dostup do chastini X vinikaye vzayemoblokuvannya i zhodna tranzakciya ne mozhe prodovzhiti vikonuvatis Sistema obrobki tranzakcij priznachena dlya viyavlennya cih vzayemoblokuvan koli voni vidbuvayutsya Yak pravilo obidvi tranzakciyi budut skasovani i vidnovleni do pochatkovogo stanu a potim budut znovu zapusheni v inshomu poryadku avtomatichno tak sho bezvihidnoyi situaciyi ne vidbudetsya Abo inodi tilki odna z tupikovih tranzakcij bude skasovana vidnovlena do pochatkovogo stanu i avtomatichno perezapushena pislya nevelikoyi zatrimki Tupiki mozhut takozh zustrichatisya mizh troma abo bilshe tranzakciyami Chim bilshe tranzakcij tim vazhche viyaviti tupiki do takoyi miri sho sistemi obrobki tranzakcij viyavlyayut sho isnuye praktichne obmezhennya tupikiv yaki voni mozhut viyaviti Kompenesaciya tranzakcij V sistemah de mehanizmi fiksaciyi i vidkatu nedostupni abo nebazhani kompensaciya tranzakcij chasto vikoristovuyetsya dlya skasuvannya nevdalih tranzakcij i vidnovlennya sistemi do poperednogo stanu Kriteriyi ACIDDokladnishe ACID Dzhim Grej viznachiv vlastivosti nadijnoyi sistemi tranzakcij v kinci 1970 h rokiv pid abreviaturoyu ACID atomarnist uzgodzhenist izolovanist i dovgovichnist Atomicity Atomarnist Dokladnishe Atomarnist Zmini tranzakcij v stani ye atomarnim abo vse vidbuvayetsya abo nichogo ne vidbuvayetsya Ci zmini vklyuchayut zmini bazi danih povidomlennya ta diyi na peretvoryuvachah Consistency Uzgodzhenist Uzgodzhenist Tranzakciya ce pravilne peretvorennya stanu Diyalnist yaka zdijsnyuyetsya yak grupa ne porushuye bud yakih obmezhen cilisnosti pov yazanih zi stanom Isolation Izolovanist Nezvazhayuchi na te sho tranzakciyi vikonuyutsya odnochasno kozhnij tranzakciyi T protistavitsya kozhna sho vikonuvalis do T abo pislya T ale ne obidvi odnochasno Durability Nadijnist Yak tilki tranzakciya zavershuyetsya uspishno vona fiksuyetsya zberigayutsya zmini v yiyi stani pislya usunennya pomilok PerevagiObrobka tranzakcij maye nastupni perevagi Mozhlivist spilno vikoristovuvati komp yuterni resursi sered bagatoh koristuvachiv Mozhlivist vikoristovuvati chas obrobki zavdannya koli obchislyuvalni resursi mensh zajnyati Mozhlivist unikati bezdiyi obchislyuvalnih resursiv bez shohvilinnoyi vzayemodiyi i lyudskogo kontrolyuMozhlivist vikoristannya na dorogih klasah komp yuteriv dlya zmenshennya kilkosti vitrat zberigayuchi visoki tempi vikoristannya cih dorogih resursivRealizaciyiStandartne programne zabezpechennya dlya obrobki tranzakcij take yak IBM s Information Management System bulo vpershe rozrobleno v 1960 h rokah i chasto tisno pov yazane z konkretnimi sistemami upravlinnya bazami danih Kliyent serverni obchislennya realizuvali analogichni principi v 1980 h rokah zi zminnim uspihom Odnak v ostanni roki rozpodilenu model kliyent server stalo znachno skladnishe pidtrimuvati Oskilki kilkist tranzakcij zroslo u vidpovid na rizni onlajn poslugi osoblivo v Interneti odna rozpodilena baza danih ne bula praktichnim rishennyam Krim togo bilshist onlajnovih sistem skladayetsya z cilogo naboru program yaki pracyuyut razom na vidminu vid suvoroyi modeli kliyent server de odin server mozhe vikonuvati obrobku tranzakcij Sogodni ye ryad sistem obrobki tranzakcij yaki pracyuyut na mizhprogramnomu rivni i masshtabuyutsya dlya velikih sistem vklyuchayuchi mejnfrejmi Odnim z zusil ye X Open Distributed Transaction Processing DTP div takozh Java Transaction API JTA Odnak zapatentovani seredovisha obrobki tranzakcij taki yak CICS vid IBM yak i ranishe koristuyutsya velikoyu populyarnistyu hocha CICS rozvinula galuzevi standarti Termin obrobka ekstremalnih tranzakcij XTP vikoristovuvavsya dlya opisu sistem obrobki tranzakcij z nadzvichajno skladnimi vimogami osoblivo vimogami propusknoyi zdatnosti tranzakcij v sekundu Taki sistemi mozhut buti realizovani za dopomogoyu rozpodilenih abo klasternih arhitektur Ci arhitekturi vikoristovuvalisya prinajmni do 2011 roku PrimitkiGray Jim Reuter Andreas Retrieved Nov 12 2012 Arhiv originalu za 29 veresnya 2000 Koen Vanderkimpen and Dirk Deridder Devoxx 2011 presentation Retrieved March 18 2017 Arhiv originalu za 18 zhovtnya 2017 Kevin Roebuck 2011 Extreme Transaction Processing Lightning Source ISBN 9781743042663