Дисклеймер

Інформація на сайті tseivo.com є суб'єктивною та відображає особисті погляди та досвід авторів та авторок блогів.

Використовуйте цей ресурс як одне з декількох джерел інформації під час своїх досліджень та прийняття рішень. Завжди застосовуйте критичне мислення. Людина сама несе відповідальність за свої рішення та дії.

Що таке атомарна транзакція (atomic transaction)?

Атомарна транзакція (atomic transaction) - це набір дій, які виконуються над базою даних, щоб змінити її стан. Наприклад, видалення рядка, оновлення значення поля чи створення нового запису – це все операції, які можуть входити до складу транзакції. Однак атомарні транзакції мають особливу властивість – вони не діляться (виконуються як єдиний блок, якщо почали, то обов'язково закінчуються, без можливості втручання або розділення на частини).
Це означає, що якщо одна частина транзакції не може бути виконана (наприклад, через помилку або відмову системи), то всі зміни, які були зроблені в рамках цієї транзакції, скасовуються, і база даних повертається до свого попереднього стану. Це дозволяє уникнути неконсистентності даних і забезпечити їх цілісність.
Атомарні транзакції особливо корисні в ситуаціях, коли потрібно виконати декілька операцій над базою даних, і ці операції мають бути або виконані всі разом, або не виконані взагалі. Наприклад, якщо ми розробляємо платіжну систему, то важливо, щоб зняття грошей з одного рахунку та їх зарахування на інший відбувалося разом, інакше можуть виникнути проблеми з цілісністю фінансових даних. 
Тобто якщо виникла помилка десь в середині процесу переказу грошей з одного рахунку - ми не можемо відмінити тільки відправку. В такому випадку кошти будуть повернуті відправнику, а отримувач також може отримати гроші які з'явилися через помилку (та відсутності атомарної транзакції для цієї дії).
Загалом, атомарні транзакції є важливим інструментом для забезпечення цілісності та консистентності даних як у базах даних, так і в програмному забезпеченні (дуже активно використовується в фінансових, криптовалютних процесах). Вони дозволяють уникнути недоліків, пов'язаних з можливими помилками чи відмовами в системі, і забезпечують правильну обробку даних в усіх сценаріях використання.
📝 Більше публікацій:
Обкладинка нотатки: Що таке DDL (Data Definition Language) та DML (Data Manipulation Language)? Коли та для чого використовуються?
Обкладинка нотатки: Що таке ТCL (Transaction Control Language), DCL (Data Control Language) та DQL (Data Query Language)
Обкладинка нотатки: Що таке Environment Variables в розробці ПЗ?