Page 83 - 4475
P. 83
ЛАБОРАТОРНА РОБОТА № 10
Тема: Використання транзакцій.
Мета: ознайомитися з призначенням транзакцій.
Реалізувати механізм транзакцій засобами PHP та MySQL.
Теоретична частина
Поняття транзакцій. Транзакція — це група
послідовних операцій з базою даних, яка є одиницею
роботи з даними. Транзакція може бути виконана або
цілком і успішно, зі збереженням цілісності даних і
незалежно від паралельних транзакцій, або не виконана
взагалі, без будь-якого впливу на систему. Приклад
транзакції — потрібно перевести з банківського рахунку
номер 5 на банківський рахунок номер 7 суму 10 у.о. Цього
можна досягнути такою послідовністю дій:
- почати транзакцію;
- зчитати баланс на рахунку № 5;
- зняти з рахунку 10 у.о.;
- зберегти рахунок № 5;
- зчитати баланс на рахунку № 7;
- додати на рахунок 10 у.о.;
- зберегти рахунок № 7;
- закінчити транзакцію.
Ці дії є логічною одиницею роботи “перевід суми
між рахунками”. Якщо перервати транзакцію на середині і
не анулювати всі зміни, можна зняти з рахунку № 5 10 у.о.,
тоді як рахунок № 7 їх не отримає.
Найпоширенішим набором вимог до транзакцій і
транзакційних систем є набір ACID (Atomicity, Consistency,
Isolation, Durability).
Атомарність гарантує, що жодна транзакція не буде
зафіксована в системі частково. Будуть виконані або всі
операції, або жодна. Оскільки на практиці реалізувати
виконання всієї послідовності операцій неможливо,
78