ACID – це набір з чотирьох основних властивостей, які гарантують надійність та передбачуваність транзакцій у базах даних. Ці властивості:
Атомарність: Транзакція або виконується повністю, або не виконується зовсім. Це означає, що дані не можуть бути частково оновлені або втрачені.
Узгодженість: Дані в базі даних завжди відповідають усім заданим правилам. Наприклад, сума на рахунку не може бути від'ємною.
Ізоляція: Транзакції виконуються незалежно одна від одної, не впливаючи одна на одну. Це гарантує, що дані не будуть пошкоджені або втрачені через конфлікти.
Довговічність: Зміни, внесені транзакцією, зберігаються постійно, навіть у разі збою системи.
--------------------------------------------------------------
Досягнення ACID залежить від типу бази даних, яку ви використовуєте, але загалом існують різні методи та механізми для кожної властивості:
Атомарність:
Журналювання: Зміни записуються в журнал транзакцій перед їх застосуванням до основної бази даних. Якщо транзакцію потрібно скасувати, зміни можна відновити з журналу.
Знімки (Snapshots): Створюється копія даних на початку транзакції. Якщо транзакцію потрібно скасувати, можна повернутися до знімка.
Узгодженість:
Обмеження: Визначаються правила, які повинні виконувати дані (наприклад, баланс рахунку завжди невід'ємний). Система перевіряє, чи транзакція не порушує жодних обмежень перед її застосуванням.
Тригери: Автоматично виконуються спеціальні функції (тригери) після певних дій, щоб підтримувати узгодженість.
Ізоляція:
Блокування: Транзакція блокує доступ до даних, які вона використовує, щоб запобігти іншим транзакціям від їх зміни.
Рівні ізоляції: Бази даних можуть пропонувати різні рівні ізоляції транзакцій, які контролюють, скільки даних видно іншим транзакціям під час їх виконання.
Довговічність:
Коміт протоколи: Спеціальні протоколи гарантують, що зміни транзакції будуть записані на диск, перш ніж вона вважатиметься успішною.
Відзеркалювання даних: Зберігаються копії даних на інших серверах, щоб вони були доступні у разі збою основного сервера.