Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ободяк 3 курс / РСтаМ-том1-2011.docx
Скачиваний:
128
Добавлен:
19.04.2015
Размер:
8.73 Mб
Скачать

Таблиця 6.1 Деякі примітиви, використовувані в транзакціях

Примітив

Опис

BEGIN_TRANSACTION

Позначити початок транзакції

END_TRANSACTION

Припинити транзакцію й спробувати завершити її

ABORT_TRANSACTION

Перервати транзакцію й відновити колишні значення

READ

Уважати дані з файлу, таблиці або іншого джерела

WRITE

Записати дані у файл, таблицю або інший приймач

Для обмеження області дії транзакції використаються примітиви BEGIN_TRANSACTIONйEND_TRANSACTION. Операції, розташовані між ними, формують тіло транзакції. Всі ці операції або виконуються, або не виконуються. Це можуть бути системні виклики, бібліотечні процедури або інструкції мовою реалізації.

Властивість транзакцій «все або нічого» – це лише одне з характерних властивостей транзакції. Говорячи більш конкретно, транзакції мають наступні властивості:

  • атомарні (atomic) – для навколишнього світу транзакція неподільна;

  • несуперечливі (consistent) – транзакція не порушує інваріантів системи;

  • ізольовані (isolated) – одночасно, що відбуваються транзакції, не впливають одна на одну;

  • довговічні (durable) – після завершення транзакції внесені нею зміни стають постійними.

На ці властивості часто посилаються по їхніх перших буквах – ACID.

Перша ключова властивість, що проявляється у всіх транзакціях, – атомарність. Ця властивість гарантує, що всяка транзакція або повністю виконується, або повністю не виконується, причому якщо вона виконується, то виконується як одна неподільна одночасна операція. Поки транзакція перебуває в процесі виконання, інші процеси (незалежно від того, залучені вони в транзакцію чи ні) не можуть спостерігати яких-небудь проміжних станів.

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

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

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

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

Соседние файлы в папке Ободяк 3 курс