ЗНАЕТЕ ЛИ ВЫ?

Управління паралельною обробкою



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

Транзакція −неподільна з точки зору впливу на БДпослідовність операторів маніпулювання даними, яка розглядається СУБД як єдине ціле. Або транзакція успішновиконується, і СУБД фіксує зміни БД, які були зроблені цією транзакцією, у зовнішній пам'яті, або, у разі невдачі, жодна зміна не відображається на стані БД. Транзакція розглядається як логічна одиниця роботи з БД. Для того, щоби використання механізмів обробки транзакцій дозволило забезпечити цілісність даних й ізольованість користувачів, транзакція повинна мати такі властивості: атомарність (Atomicity), узгодженість (Cosistency), ізольованість (Isolation), довготерміновість (Durability). Транзакції, які мають ці властивості називаються ACID-транзакціями. Властивості транзакції означають таке:

 

· атомарність означає,що транзакція виконується,якєдина операція доступу до БД і виконується або повністю або не виконується зовсім;

· узгодженість гарантує взаємну цілісність даних,тобтовиконання обмежень цілісності БД після завершення роботи транзакції;

· ізольованість означає,що транзакції,які конкурують задоступ до БД, фізично обробляються послідовно, ізольовано одна від одної, але для користувачів це виглядає так, ніби вони виконуються паралельно;

· довготерміновість означає,що коли транзакціявиконана успішно, то всі зміни, які вона зробила в даних, не будуть втрачені ні за яких обставин.

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

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

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

Для підвищення ступеня паралельності доступу декількох користувачів до однієї БД використовуються такі блокування:

· нежорстке блокування або роздільне блокування(Shared − S-блокування); об'єкт блокується для виконання операції читання; об'єкти в цьому випадку не змінюються у ході виконання транзакції і доступні іншим транзакціям також, але тільки в режимі читання;

· жорстке блокування або монопольне(eXclusive−X-блокування); об'єкт блокується для виконання операції запису, модифікації або вилучення. В цьому випадку виконується монопольне блокування об'єкта і об'єкт залишається недоступним іншим транзакціям до моменту завершення роботи даної транзакції.

Застосування різних типів блокувань призводить до тупиків. Тупикова ситуація виникає тоді, коли дві і більш транзакції одночасно знаходяться у стані очікування, причому для продовження роботи кожна з транзакцій очікує завершення роботи іншої транзакції.

Приклад.Нехай транзакція1в момент часу t1 блокуєресурс A, а транзакція 2 в момент часу t2 блокує ресурс B (рис.10.3). В момент часу t3 транзакції 1 потрібен ресурс B і вона очікує його звільнення транзакцією 2. В момент часу t4 транзакції 2 потрібен ресурс A і вона очікує його звільнення транзакцією 1. Транзакція 1 чекає транзакцію 2, транзакція 2 чекає транзакцію 1.

 

      Блокування     Очікування  
           
Транзакція 1   ресурсу A     ресурсу B  
               
    t1 t3   Очікування  
        Блокування        
Транзакція 2     ресурсу B       ресурсу A  
               
      t2     t4  

Рис.10.3. Взаємне блокування транзакцій

 

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

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

· перед виконанням операцій з будь-яким об'єктом транзакція блокує цей об'єкт (накопичення захватів);

· після зняття блокування транзакція не повинна накладувати ніяких інших блокувань (вивільнення захватів).

 

Багатокористувацькі СУБД

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

В технології роботи з БД виділяють функції:

· вводу і відображення даних (представлення даних);

· прикладні функції, які визначають основні алгоритми розв’язання прикладних задач (застосування);

· обробки даних у застосуваннях;− управління інформаційними ресурсами (СУБД).

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

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

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

Функції управління інформаційними ресурсами − це СУБД, яка забезпечує зберігання і управління БД.

Залежно від того, де розташовані ці компоненти по відношенню одна до одної розрізняють монолітне виконання (найчастіше для персональних БД), дво- і трирівневе.

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

· модель файлового сервера;

· модель віддаленого доступу до даних;

· модель сервера бази даних.

У моделі файлового сервера (рис. 10.4) застосування розташовуються і виконуються на робочих станціях. На файловому сервері зберігаються тільки файли БД (файли даних, індекси і т.ін.) і деякі технологічні файли, які необхідні для роботи застосувань і самої СУБД. Клієнт звертається до СУБД на мові SQL, СУБД перекладає запит у послідовність файлових команд і передає файловому серверу. На кожну команду сервер передає блок даних. Обробка інформації виконується на робочій станції за допомогою СУБД. Системи цього класу коштують недорого, прості в установці й освоєнні. До недоліків можна віднести таке:

· на кожній робочій станції знаходиться копія СУБД;

· низька продуктивність систем, оскільки всі проміжні дані передаються по мережі, а обробка виконується на робочих станціях, потужність яких значно поступається потужності сервера;

· складність розподіленої обробки.

 

КЛІЄНТ

  Представлення Застосування    
            СУБД    
  Обробка даних      
                   
                   
  Файлові       Блоки    
           
  команди       даних    
       
                   

Система управління файлами

Дані

 

База

 

даних

 

Рис. 10.4. Модель файлового сервера

 

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

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

· запити на мові SQL при інтенсивній роботі можуть значно завантажити мережу;

· прикладні функції застосувань необхідно повторювати для кожного клієнтського комп'ютера;

· сервер виконує пасивну роль і тому функції управління інформаційними ресурсами повинні виконуватись клієнтом.

 

 

КЛІЄНТ

Представлення Застосування

 

SQL запити   Результати  
   
  запитів  
     
       
  СЕРВЕР  
  Обробка даних СУБД  
       
             

 

Дані

 

 

База

 

даних

 

 

Рис. 10.5. Модель віддаленого доступу

 

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

 

КЛІЄНТ

Представлення

  Виклики   Результати    
       
  процедур, що      
    обробки    
  зберігаються      
         
           
    СЕРВЕР      
  СУБД Процедури, що Тригери    
  зберігаються    
         
             
             
      Дані      
           
           
                     

 

 

База даних Тригери

 

Процедури, що зберігаються

 

 

Рис. 10.6. Модель сервера бази даних

 

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

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

Подальшим розвитком моделі сервера бази даних є трирівнева архітектура (рис.10.7). Ця архітектура ще називається моделлю із сервером застосувань.

 

        КЛІЄНТ        
    Представлення        
                       
                       
  Запуск           Результати  
         
  процедур             обробки  
             
           
  СЕРВЕР ЗАСТОСУВАНЬ  
    Застосування        
                       
                       
  Запити           Результати  
             
              запитів  
                   
  СЕРВЕР БАЗИ ДАНИХ  
  Процедури, що   Обробка даних    
  зберігаються      
               
                       
            Дані        
                   
                   
          База        
          даних        

 

Рис. 10.7. Модель сервера застосувань

 

Сервер застосувань −в триланковій архітектурі"клієнт-сервер" компонент прикладної системи, який розташовується між клієнтом і сервером БД і реалізує логіку застосування.

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

Перевагою моделі із сервером застосувань є гнучкість і універсальність внаслідок розділення функцій на три незалежні складові. Головним недоліком є більш високі витрати ресурсів комп'ютера на обмін інформацією між компонентами застосування у порівнянні з дворівневими моделями.

 





Последнее изменение этой страницы: 2016-07-16; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.237.66.86 (0.015 с.)