Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

V. Підведення підсумків заняття. ІV. Узагальнення та систематизація знань

ІV. Узагальнення та систематизація знань

План

ІІІ. Виклад нового матеріалу

І. Організаційний момент

Хід заняття

а) готовність групи до заняття;

б) перевірка присутніх.

 

ІІ. Актуалізація опорних знань студентів

а) повідомлення теми та мети заняття;

б) повідомлення девізу, під яким будете працювати;

в) відповіді на запитання.

 

1. Рівні ізольованості транзакцій.

2. Проблема кортежів-«фантомів».

VІ. Домашнє завдання: вивчити матеріал лекції, знати відповіді на такі питання лекції:

1. Що є одиницями ізольованості користувачів в багатокористувацьких системах?

2. Які рівні ізольованості транзакцій можливі при дотриманні обов’язкової вимоги підтримання цілістності БД?

3. Яка ситуація називається ситуацією загублених змін?

4. Які ситуації викликає проблема кортежів-фантомів?

5. Що треба щоб уникнути появи кортежів-фантомів?

 

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

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

При дотриманні обов’язкової вимоги підтримання цілістності БД можливі наступні рівні ізольованості транзакцій:

  • Перший рівень - відсутність загублених змін. Розглянемо наступний сценарій сумісного виконання двох транзакцій. Транзакція 1 змінює об’єкт БД A. До завершення транзакції 1 транзакція 2 також змінює об’єкт A. Транзакція 2 завершується оператором ROLLBACK (наприклад, за причиною порушення обмеження цілістності). Тоді при повторному читанні об’кту A транзакція 1 не побачить змін цього об’єкту, зроблених раніше. Така ситуація називається ситуацією загублених змін. Природно, вона протиречить вимозі ізольованості користувачів. Для того, щоб уникнути такої ситуації в транзакції 1 треба, щоб до завершення транзакції 1 жодна інша транзакція не мала змоги змінювати об’єкт A. Відсутність загублених змін є мінімальною вимогою до СКБД за частиною синхронізації паралельно виконуємих транзакцій.
  • Другий рівень - відсутність читання «брудних» даних. Розглянемо наступний сценарій сумісного виконання транзакцій 1 та 2. Транзакція 1 змінює об’єкт БД A. Паралельно з цим транзакція 2 читає об’єкт A. Оскільки операція зміни ще не завершена, транзакція 2 бачить неузгоджені «брудні» дані (зокрема, операція транзакції 1 може бути знехтувана при перевірці негайно перевіряємого обмеження цілістності). Це також не відповідає вимозі ізольованості користувачів (кожен користувач починає свою транзакцію при узгоджуваному стані БД та має право очікувати побачити узгоджувані дані). Щоб уникнути ситуації читання «брудних» даних, до завершення транзакції 1, яка змінила об’єкт A, жодна інша транзакція не повинна читати об’єкт A (мінімальною вимогою є блокування читання об’єкта A до завершення операції його зміни в транзакції 1).
  • Третій рівень - відсутність читань, які не повторюються. Розглянемо наступний сценарій. Транзакція 1 читає об’єкт БД A. До завершення транзакції 1 транзакція 2 змінює об’єкт A та успішно завершується оператором COMMIT. Транзакція 1 повторно читає об’єкт A та бачить його змінений стан. Щоб уникнути читань, які не повторюються, до завершення транзакції 1 жодна інша транзакція не повинна змінювати об’єкт A. В більшості систем це є максимальною вимогою до синхронізації транзакцій, хоча, відсутність читань, які не повторюються, ще не гарантує реальної ізольованості користувачів.

 

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

До найбільш тонких проблем ізольованості транзакцій відноситься так звана проблема кортежів-«фантомів», яка викликає ситуації, які також суперечать ізольованості користувачів. Розглянемо наступний сценарій. Транзакція 1 виконує оператор A відбору кортежів відношення R з умовою відбору S (тобто, обирається частина кортежів відношення R, які задовільняють умові S). До завершення транзакції 1 транзакція 2 додає в відношення R новий кортеж r, який задовільняє умові S, та вдало завершується. Транзакція 1 повторно виконує оператор A, та в результаті з’являється кортеж, який був відсутнім при першому виконанні оператора. Звичайно, така ситуація суперечить ідеї ізольованості транзакцій та може виникнути навіть на третьому рівні ізольованості транзакцій. Щоб уникнути появи кортежів-фантомів, треба найбільш високий «логічний» рівень синхронізації транзакцій. Ідеї такої синхронізації (предикатні синхронізаційні захоплення) відомі давно, але в більшості систем не реалізовані.

 

<== предыдущая лекция | следующая лекция ==>
Багатократне хеширування | 
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 478; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.