Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Що таке ACID? | Acid
Оптимізація SQL та Особливості Запитів

Що таке ACID?

Свайпніть щоб показати меню

Ми розпочнемо вивчення розширених тем SQL з поняття принципів ACID.

Note
Дізнайтеся більше

ACID — це абревіатура, що означає атомарність (Atomicity), узгодженість (Consistency), ізоляцію (Isolation) та стійкість (Durability). Ці чотири властивості є фундаментальними принципами управління базами даних і призначені для забезпечення надійності транзакцій у базах даних.

Ви могли помітити, що у визначенні ACID ми використовуємо слово транзакція. Можливо, при згадці цього слова ви уявляєте банківську операцію, але в контексті баз даних транзакція визначається дещо інакше.

Note
Дізнайтеся більше

Транзакція — це послідовність однієї або кількох операцій з базою даних, які розглядаються як єдиний логічний блок роботи.

Уявіть, що ви користуєтеся сайтом онлайн-покупок.
Ви додаєте товари до кошика, переходите до оформлення замовлення та здійснюєте оплату. Весь цей процес можна розглядати як транзакцію бази даних. Ось як це працює:

  1. Початок транзакції: ви починаєте процес оформлення замовлення;
  2. Операції:
    • Система перевіряє, чи товари у вашому кошику ще є в наявності;
    • Обробляється ваша платіжна інформація;
    • Оновлюється інвентар для відображення придбаних вами товарів;
    • У базі даних створюється запис про замовлення.
  3. Фіксація транзакції: після успішного завершення всіх цих кроків транзакція фіксується, тобто всі зміни зберігаються в базі даних;
  4. Відкат (за потреби): якщо якийсь крок не вдається (наприклад, платіж не проходить), транзакція відкочується, тобто жодна зі змін не зберігається. Це гарантує, що база даних залишається у послідовному стані, ніби транзакція ніколи не відбувалася.

Цей приклад показує, як транзакція об'єднує кілька операцій у єдиний надійний процес.

Навіщо потрібен ACID?

Властивості ACID важливі для баз даних з трьох ключових причин:

  • По-перше, вони гарантують надійність транзакцій, розглядаючи транзакції як єдині, неподільні одиниці, запобігаючи частковим оновленням та підтримуючи цілісність;
  • По-друге, вони забезпечують контроль паралельності, гарантуючи незалежне виконання транзакцій, запобігаючи взаємному впливу та зберігаючи цілісність даних у багатокористувацьких середовищах;
  • Нарешті, вони забезпечують довговічність даних шляхом постійного збереження підтверджених транзакцій, що дозволяє пережити збої системи та гарантує відновлення даних.
Note
Примітка

Розглянемо ситуацію з банківським рахунком:

  1. Транзакція 1 (T1): Ви переказуєте $100 зі свого ощадного рахунку на поточний.
  2. Одночасно, Транзакція 2 (T2): Ви перевіряєте баланс ощадного рахунку онлайн.
  3. Але потім у T1 виникає помилка — наприклад, через мережеву проблему — і переказ не завершується.
  4. Тим часом T2 завершується і показує баланс ощадного рахунку, включаючи переказ $100, який насправді ще не відбувся.

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

question mark

Що означає ACID у контексті транзакцій бази даних?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 1. Розділ 2
some-alt