Дайте визначення транзакції

Транзакція (англ. Transaction. Від лат. Transactio - угода, договір) - мінімальна логічно осмислена операція, яка має сенс і може бути здійснена тільки повністю.

До кінця XX століття в російській мові зазвичай фігурувало написання «трансакція» [1]. останнім часом превалює написання «транзакція

В економіці, політиці, юриспруденції

  • Банківська транзакція - операція, яка полягає в переказі грошових коштів з одного рахунку на інший; угода купівлі-продажу;
  • Банкоматна транзакція (англ. ATM transaction) - операція з видачі готівки або надання іншого сервісу через банкомат [6].
  • Транзакція (угода) - угода (політичне, юридичне), супроводжуване взаємними поступками.
  • Транзакція (інформатика) - група логічно об'єднаних послідовних операцій по роботі з даними, що обробляється або скасовувати повністю.
  • Трансакція (психологія) - одиниця спілкування між двома людьми, комунікативний факт, використовується в деяких напрямках психології
  • Транзакція (фізика) - ключове поняття транзакционной інтерпретації квантової механіки.

40.Перечісліте, якими властивостями повинна володіти транзакція.

Транзакція (англ. Transaction) - група послідовних операцій з базою даних, яка являє собою логічну одиницю роботи з даними. Транзакція може бути виконана або цілком і успішно, дотримуючись цілісність даних і незалежно від паралельно йдуть інших транзакцій, або не виконана взагалі і тоді вона не повинна призвести ніякого ефекту. Транзакції обробляються транзакційними системами, в процесі роботи яких створюється історія транзакцій.

Розрізняють послідовні (звичайні), паралельні та розподілені транзакції. Розподілені транзакції мають на увазі використання більше ніж однієї транзакції системи і вимагають набагато більш складної логіки (наприклад, two-phase commit - двофазний протокол фіксації транзакції). Також, в деяких системах реалізовані автономні транзакції, або під-транзакції, які є автономною частиною батьківської транзакції.

Приклад: необхідно перевести з банківського рахунку номер 5 на рахунок номер 7 суму в 10 грошових одиниць. Цього можна досягти, наприклад, наведеної послідовністю дій:

прочитати баланс на рахунку номер 5

зменшити баланс на 10 грошових одиниць

зберегти новий баланс рахунку номер 5

прочитати баланс на рахунку номер 7

збільшити баланс на 10 грошових одиниць

зберегти новий баланс рахунку номер 7

Ці дії являють собою логічну одиницю роботи «переказ суми між рахунками», і таким чином, є транзакцією. Якщо перервати дану транзакцію, наприклад, в середині, і не анулювати всі зміни, легко залишити власника рахунку номер 5 без 10 одиниць, тоді як власник рахунку номер 7 їх не отримає.

Одним з найбільш поширених наборів вимог до транзакцій і транзакційних систем є набір ACID (Atomicity, Consistency, Isolation, Durability). Вимоги ACID були в основному сформульовані в кінці 70-х років Джимом Греєм [1]. Разом з тим, існують спеціалізовані системи з ослабленими транзакційними властивостями [2].

Атомарність гарантує, що ніяка транзакція не буде зафіксована в системі частково. Будуть або виконані всі її подоперации, або не виконано жодної. Оскільки на практиці неможливо одночасно і атомарному виконати всю послідовність операцій всередині транзакції, вводиться поняття «відкату» (rollback): якщо транзакцію не вдається повністю завершити, результати всіх її до сих пір вироблених дій будуть скасовані і система повернеться в початковий стан.