Управління транзакціями СУБД: що таке властивості ACID?

Зміст:

Anonim

Що таке транзакція бази даних?

База даних транзакцій є логічною одиницею обробки в СУБД , яка тягне за собою одне або більше операції доступу до бази даних. У двох словах, транзакції баз даних представляють реальні події будь-якого підприємства.

Усі типи операцій доступу до бази даних, які проводяться між операторами початку та кінця транзакції, розглядаються як одна логічна транзакція в СУБД. Під час транзакції база даних не узгоджується. Тільки після того, як база даних буде зафіксована, стан змінюється з одного послідовного стану на інший.

У цьому підручнику ви дізнаєтесь:

  • Факти про транзакції з базами даних
  • Навіщо потрібна паралельність у транзакціях?
  • Стани операцій
  • Що таке ВЛАСТИВОСТІ КИСЛОТИ?
  • Види операцій
  • Що таке графік?

Факти про транзакції з базами даних

  • Транзакція - це програмний блок, виконання якого може або не може змінити вміст бази даних.
  • Концепція транзакції в СУБД виконується як одна одиниця.
  • Якщо операції з базою даних не оновлюють базу даних, а лише отримують дані, цей тип транзакції називається транзакцією лише для читання.
  • Успішна транзакція може змінити базу даних з однієї ПОСЛІДОВНОЇ ДЕРЖАВИ на іншу
  • Транзакції СУБД повинні бути атомарними, послідовними, ізольованими та довговічними
  • Якби база даних знаходилась у несумісному стані до транзакції, вона залишалася б у несумісному стані після транзакції.

Навіщо потрібна паралельність у транзакціях?

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

Не керування одночасним доступом може спричинити такі проблеми:

  • Відмова обладнання та збої системи
  • Одночасне виконання тієї самої транзакції, тупикова ситуація або повільна продуктивність

Стани операцій

Різні стани концепції транзакції в СУБД перелічені нижче:

Держава Типи транзакцій
Активний стан Транзакція переходить в активний стан, коли починається процес виконання. Під час цього стану можуть виконуватися операції читання або запису.
Частково здійснено Транзакція переходить у частково зафіксований стан після закінчення транзакції.
Зобов'язана держава Коли транзакція передана державі, вона вже успішно завершила своє виконання. Більше того, всі його зміни постійно реєструються в базі даних.
Невдала держава Транзакція вважається невдалою, коли якась із перевірок не вдається або якщо транзакція перервана, поки вона знаходиться в активному стані.
Припинена держава Стан транзакції досягає завершеного стану, коли певні транзакції, які виходять із системи, не можуть бути перезапущені.
Діаграма переходу стану для транзакції бази даних

Давайте вивчимо діаграму переходу стану, яка висвітлює, як транзакція рухається між цими різними станами.

  1. Як тільки транзакція констатує виконання, вона стає активною. Він може виконати операцію READ або WRITE.
  2. Після завершення операцій READ і WRITE транзакції стають частково зафіксованими.
  3. Далі, деякі протоколи відновлення повинні гарантувати, що збій системи не призведе до нездатності постійно реєструвати зміни в транзакції. Якщо ця перевірка є успішною, транзакція фіксується та переходить у стан фіксації.
  4. Якщо перевірка не вдалася, транзакція переходить у стан Failed.
  5. Якщо транзакція припинена, поки вона знаходиться в активному стані, вона переходить у невдалий стан. Транзакцію слід відкатити назад, щоб скасувати ефект її операцій запису на базу даних.
  6. Термін дії припиненого відноситься до транзакції, що виходить із системи.

Що таке ВЛАСТИВОСТІ КИСЛОТИ?

Властивості ACID використовуються для підтримки цілісності бази даних під час обробки транзакцій. КИСЛОТА в СУБД означає A tomicity, C onsistency, I solation і D urability.

  • Атомність: транзакція - це одна одиниця операції. Ви або виконуєте його повністю, або взагалі не виконуєте. Часткове виконання не може бути.
  • Узгодженість: Після виконання транзакції вона повинна переходити з одного послідовного стану в інший.
  • Ізоляція: Транзакція повинна виконуватися ізольовано від інших транзакцій (без блокування). Під час одночасного виконання транзакцій проміжні результати транзакцій, які виконуються одночасно, не повинні бути доступними один одному. (Рівень 0,1,2,3)
  • Довговічність: · Після успішного завершення транзакції зміни в базі даних повинні зберігатися. Навіть у випадку збоїв системи.

Властивість ACID у СУБД з прикладом:

Нижче наведено приклад властивості ACID у СУБД:

Transaction 1: Begin X=X+50, Y = Y-50 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END

Трансакція 1 - це переказ 50 доларів з рахунку X на рахунок Y.

Трансакція 2 зараховує кожен рахунок із виплатою відсотків у розмірі 10%.

Якщо обидві транзакції подані разом, немає гарантії, що Транзакція 1 буде виконана до Транзакції 2 або навпаки. Незалежно від замовлення, результат повинен бути таким, ніби транзакції відбуваються послідовно одна за одною.

Види операцій

На основі областей застосування

  • Нерозподілений та розподілений
  • Компенсаційні операції
  • Час транзакцій
  • Он-лайн проти партії

На основі дій

  • Двоступінчаста
  • Обмежений
  • Модель дії

На основі структури

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

Що таке графік?

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

Приклад

Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 2: Read Product Quantity

Якщо Транзакція 2 виконується перед Трансакцією 1, буде прочитана застаріла інформація про кількість товару. Отже, необхідні графіки.

Паралельне виконання в базі даних неминуче. Але паралельне виконання дозволено, коли існує співвідношення еквівалентності між одночасно виконуваними транзакціями. Ця еквівалентність має 3 типи.

РІВНІСТЬ РЕЗУЛЬТАТІВ:

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

Переглянути еквівалентність

Еквівалентність перегляду відбувається, коли транзакція в обох розкладах виконує подібну дію. Наприклад, одна транзакція вставляє деталі товару в таблицю продуктів, а інша транзакція вставляє деталі товару в таблицю архівів. Транзакція однакова, але таблиці різні.

КОНФЛІКТ Еквівалентність

У цьому випадку дві транзакції оновлюють / переглядають однаковий набір даних. Існує конфлікт між транзакціями, оскільки порядок виконання вплине на результат.

Що таке серіалізація?

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

  • Конфлікт
  • Переглянути

Короткий зміст:

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