На головну

Приклад 2. Блокування оператора UPDATE і призначення блокування TX. | Приклад 3. UPDATE і SELECT (Продовження прикладу 2) | Приклад 4. Примусове блокування. |

© um.co.ua - учбові матеріали та реферати

Коротка теорія

  1. B. Кратологіческій теорія дискурсу
  2. D) Теорія портфеля цінних паперів.
  3. E. Постмодерна теорія дискурсу
  4. G. Теорія наративного дискурсу
  5. Алюмініді електроліттік ?діспен алуди? теоріяли? негіздері
  6. Бор в Англії. теорія Бора

Лабораторна робота №2

Блокування DML - табличні і рядкові.

Мета роботи: Познайомитися з однією з головних функцій СУБД ORACLE 10g - Механізмом блокування (високий рівень одночасної обробки даних).

Програмні засоби: Система управління базами даних ORACLE 10g, Інтерактивне середовище PL / SQL Developer. На початковому етапі досить блокнота, вбудованого в операційну систему Windows і середовища SQL * Plus.

Коротка теорія

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

Основне призначення блокувань DML: Заблокувати об'єкт на час виконання над ним операції DML (INSERT або DELETE або UPDATE) До моменту фіксації результату виконання операції DML - commit. При виконанні операції SELECT СУБД блокування об'єктів не виробляє. Якщо відбувається аварійне переривання транзакції, процес PIMON звільняє блокування.

Режими блокування:

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

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

 транзакція 1  транзакція 2
 SQL> UPDATE employee2 SET salapy = salary * 1.13 WHERE id = 24877; 1 row updated.SQL> commit; Commit complete.  SQL> UPDATE employee2 SET salapy = salary * 1.13 WHERE id = 24877; Transaction 2 waits. Транзакція 2 чекає, поки не зафіксується транзакція 1.1 row updated.

- Спільні (share) блокування: кілька транзакцій моут отримувати колективні блокування одного і того ж рівня.

-

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

 транзакція 1  транзакція 2
 SQL> UPDATE employee2 SET salapy = salary * 1.13 WHERE id = 24877; 1 row updated.  SQL> UPDATE employee2 SET salapy = salary * 1.13 WHERE id = 24878; 1 row updated.

Блокування на рівні таблиці носить тип ТМ, Блокування на рівні рядки таблиці - тип ТХ

 



УВАГА! При зміні вихідної напруги Uке змінюється струм IБ, тому перед взяттям відліку Uке і IК необхідно коригувати ток IБ відповідно до необхідного значенням. | Виконання лабораторної роботи