Поняття транзакції. Види транзакцій. Правила управління транзакціями

Транзакція - це сукупність операцій з маніпулювання БД, які повинні розглядатися як атомарна (неподільна) дія. Після здійснення транзакції, зазвичай, надається можливість з'ясувати - чи успішно було її виконання. Транзакцію можна скасувати навіть у разі її успішного виконання застосувавши команду rollback (команда повинна бути виконана до команди commit). У разі відкату БД набуває той же вигляд, який вона мала до виконання транзакції. Можна також вказати точки збереження savepoint.

Так, операція переказу грошей з одного рахунку|лічби| на іншій повинна складати єдину транзакцію. Інакше може виникнути ситуація, коли перший SQL-оператор| переведе|перекладатиме,переказуватиме| гроші на інший рахунок|лічбу|, а другий, такий, що виконує зняття їх з рахунку|лічби|, не доведе справу|річ| до кінця із-за непередбаченого|непредбачуваного| збою.

Типи транзакцій:

1. Плоскі (класичні)

Плоскі транзакції характеризуються 4 класичними властивостями:

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

2. Контрольні крапки|точки,точка-тире|.

Контрольні крапки|точки,точка-тире| встановлюються в прикладній програмі для того, щоб|аби| відзначити моменти, починаючи|розпочинати,зачинати| з|із| яких можна продовжити обчислення|підрахунку| у разі|в разі| виникнення проблем. У ідеалі контрольні крапки|точки,точка-тире| повинні відповідати частково узгодженим|погодженим| станам|достаткам| (наприклад, після|потім| побудови|шикування| допоміжної таблиці в програмі, яка потім використовуватиметься для обчислень|підрахунків| за участю ще якої-небудь таблиці).

3. Багатоланкові.

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

4. Вкладені.

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

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

Основні принципи всіх систем обробки транзакцій завжди однакові:

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

- Прогін(rollforward|). Якщо база даних відмовляє, то вона повинна бути створена з|із| останньої резервної бази, але|та| оскільки резервна база не зберігає останні зміни, то після|потім| відновлення початкової|вихідної| бази застосовується прогін для відновлення актуального стану|достатку|.

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