Info
Відкрити сторінку на телефоні

Що таке ACID?

ACID – це набір з чотирьох основних властивостей, які гарантують надійність та передбачуваність транзакцій у базах даних. Ці властивості:

  • Атомарність: Транзакція або виконується повністю, або не виконується зовсім. Це означає, що дані не можуть бути частково оновлені або втрачені.
  • Узгодженість: Дані в базі даних завжди відповідають усім заданим правилам. Наприклад, сума на рахунку не може бути від'ємною.
  • Ізоляція: Транзакції виконуються незалежно одна від одної, не впливаючи одна на одну. Це гарантує, що дані не будуть пошкоджені або втрачені через конфлікти.
  • Довговічність: Зміни, внесені транзакцією, зберігаються постійно, навіть у разі збою системи.
  •                                     --------------------------------------------------------------

    Досягнення ACID залежить від типу бази даних, яку ви використовуєте, але загалом існують різні методи та механізми для кожної властивості:

    Атомарність:

  • Журналювання: Зміни записуються в журнал транзакцій перед їх застосуванням до основної бази даних. Якщо транзакцію потрібно скасувати, зміни можна відновити з журналу.
  • Знімки (Snapshots): Створюється копія даних на початку транзакції. Якщо транзакцію потрібно скасувати, можна повернутися до знімка.
  • Узгодженість:

  • Обмеження: Визначаються правила, які повинні виконувати дані (наприклад, баланс рахунку завжди невід'ємний). Система перевіряє, чи транзакція не порушує жодних обмежень перед її застосуванням.
  • Тригери: Автоматично виконуються спеціальні функції (тригери) після певних дій, щоб підтримувати узгодженість.
  • Ізоляція:

  • Блокування: Транзакція блокує доступ до даних, які вона використовує, щоб запобігти іншим транзакціям від їх зміни.
  • Рівні ізоляції: Бази даних можуть пропонувати різні рівні ізоляції транзакцій, які контролюють, скільки даних видно іншим транзакціям під час їх виконання.
  • Довговічність:

  • Коміт протоколи: Спеціальні протоколи гарантують, що зміни транзакції будуть записані на диск, перш ніж вона вважатиметься успішною.
  • Відзеркалювання даних: Зберігаються копії даних на інших серверах, щоб вони були доступні у разі збою основного сервера.