Чи може хтось надати просте (але не простіше, ніж можливо) пояснення транзакції як застосованої до обчислень (навіть якщо вона скопійована з Вікіпедії)?
Чи може хтось надати просте (але не простіше, ніж можливо) пояснення транзакції як застосованої до обчислень (навіть якщо вона скопійована з Вікіпедії)?
Відповіді:
Угода - це одиниця роботи, яку ви хочете вважати "цілим". Це повинно або відбутися повністю, або взагалі.
Класичний приклад - переказ грошей з одного банківського рахунку на інший. Для цього вам потрібно спочатку зняти суму з вихідного рахунку, а потім внести її на цільовий рахунок. Операція повинна пройти успішно в повному обсязі. Якщо ви зупинитесь на півдорозі, гроші будуть втрачені, і це дуже погано.
У сучасних базах даних трансакції також виконують деякі інші речі - наприклад, гарантувати, що ви не можете отримати доступ до даних, які інша людина написала на півдорозі. Але основна ідея та ж - транзакції існують для того, щоб, незалежно від того, що трапиться, дані, з якими ви працюєте, будуть у правильному стані . Вони гарантують, що НЕ буде ситуації, коли гроші знімаються з одного рахунку, але не здаються на інший.
Транзакція - це спосіб представлення зміни держави. Операції в ідеалі мають чотири властивості, зазвичай відомі як кислота:
Докладніше див. У статті Вікіпедії ACID .
Хоча це зазвичай застосовується до баз даних, це не обов'язково. (Зокрема, див. Транзакційну пам'ять програмного забезпечення .)
Ось просте пояснення. Вам потрібно перерахувати 100 баксів з акаунта А на рахунок B. Ви можете:
accountA -= 100;
accountB += 100;
або
accountB += 100;
accountA -= 100;
Якщо між першою та другою операцією в парі щось піде не так - у вас є проблеми - або 100 баксів зникли, або вони з'явилися з нізвідки.
Транзакція - це механізм, який дозволяє позначити групу операцій і виконати їх таким чином, що або всі вони виконують (фіксують), або стан системи буде таким, як ніби вони взагалі не почали виконуватись (відкат).
beginTransaction;
accountB += 100;
accountA -= 100;
commitTransaction;
або переведе 100 баксів, або залишить обидва рахунки в початковому стані.
"Серія операцій із маніпулювання даними, які повинні або повністю завершити, або повністю вийти з ладу, залишаючи базу даних у послідовному стані"
Транзакція - це послідовність однієї або декількох операцій SQL, які трактуються як одиниця.
Зокрема, кожна транзакція, як видається, працює ізольовано, і, крім того, якщо система виходить з ладу, кожна транзакція або виконується в повному обсязі, або не всі.
Поняття транзакцій мотивоване двома абсолютно незалежними проблемами. Один пов'язаний з одночасним доступом до бази даних декількома клієнтами, а другий - із системою, стійкою до системних збоїв.
Транзакція підтримує те, що відомо як властивості ACID:
http://en.wikipedia.org/wiki/Database_transaction
http://en.wikipedia.org/wiki/ACID
ACID = A Tomicity, C onsistency, I solation, D ubility
Коли ви хочете, щоб кілька транзакційних ресурсів були задіяні в одній транзакції, вам потрібно буде використовувати щось на зразок рішення двофазної фіксації . XA досить широко підтримується.
Я б припустив, що визначення поняття "обробка транзакцій" було б кориснішим, оскільки воно охоплює транзакції як поняття в галузі інформатики.
З Вікіпедії:
В інформатиці обробка транзакцій - це обробка інформації, яка поділяється на окремі, неподільні операції, що називаються транзакціями. Кожна транзакція повинна бути успішною або провалюватися як повна одиниця; він не може залишатися в проміжному стані.
http://en.wikipedia.org/wiki/Transaction_processing#Implementations
На додаток до вищезазначених відповідей, слід зазначити, що принаймні теоретично не існує жодних обмежень щодо того, які саме ресурси залучаються до трансакції.
Здебільшого це просто база даних або декілька різних баз даних, але також можливо, що принтер бере участь у транзакції, і це може призвести до того, що ця транзакція вийде з ладу, скажімо, у випадку застрягання паперу.
Транзакція може бути визначена як сукупність завдань, які розглядаються як мінімальний блок обробки. Кожен мінімальний блок обробки не можна розділити далі.
Основна операція транзакції - читання та запис.
Усі транзакції повинні містити чотири властивості, які зазвичай відомі як властивості ACID з метою забезпечення точності, повноти та цілісності даних.
Я думаю, що транзакція - це атомна дія з точки зору СУБД.
це означає, що його не можна відокремити. так, при переході може бути кілька вказівок щодо виконання системи. але вони пов'язуються разом, щоб виконати єдине основне завдання.
наприклад. вам потрібно пройти через міст (розглянемо це як перехід), а для цього, скажімо, потрібно 100 кроків. загалом ці кроки не можна відокремити. коли ви зробили половину з них, для вас є лише два варіанти: продовжуйте закінчувати їх усі і повертайтеся до початкової точки. це так само, як результат транзакції: успіх (здійснено) і провал (відкат)
Транзакція - це нероздільна одиниця обробки даних. Усі транзакції повинні мати властивості ACID:
тобто: Атомність, послідовність, ізоляція та довговічна транзакція - це все або нічого, але не є посередництвом (це означає, що якщо ви перераховуєте гроші з одного рахунку на інший рахунок, один рахунок повинен втратити стільки, а інший повинен отримати цю суму, але якщо ви перераховуєте гроші з одного рахунку, а інший рахунок ще порожній, що не буде трансакцією)