Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент





Розподілена обробка даних

Розподілена обробка даних

План

1. Основні поняття і визначення

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

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

4. Проектування багатокористувацьких баз даних

5. Проектування розподілених баз даних

6. Стандартні інтерфейси доступу до серверів баз даних

Основні поняття і визначення

Режими використання БД у загальному вигляді показані на рис. 10.1.

Якщо з БД працюють одночасно декілька користувачів, то в цьому випадку СУБД повинна забезпечувати коректну паралельну роботу всіх користувачів над одними і тими ж даними. Розрізняють розподілену обробку і розподілені БД.

Розподілена обробка - це обробка з використанням централізованої бази даних, доступ до якої може виконуватись з різних комп'ютерів мережі (рис. 10.2, a). Ця топологія часто називається "клієнт-сервер". В цій системі одні вузли - клієнти, а інші - сервери.

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

Клієнт - це процес, який посилає запит на обслуговування.

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

Розподілена СУБД - це програмна система, яка призначена для управління розподіленими базами даних і яка

забезпечує прозорий доступ користувачів до розподіленої інформації.

Якщо всі вузли розподіленої системи використовують той самий тип СУБД, то така система називається гомогенною. Якщо вузли розподіленої системи використовують різні типи СУБД, які обробляють різні моделі даних, то така система називається гетерогенною.

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

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

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

виконується, і СУБД фіксує зміни БД, які були зроблені цією транзакцією, у зовнішній пам'яті, або, у разі невдачі, жодна зміна не відображається на стані БД. Транзакція розглядається як логічна одиниця роботи з БД. Для того, щоби використання механізмів обробки транзакцій дозволило забезпечити цілісність даних й ізольованість користувачів, транзакція повинна мати такі властивості: атомарність (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.

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

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

- обробки даних у застосуваннях;

- управління інформаційними ресурсами (СУБД).

Представлення даних визначає те, що користувач бачить

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Сторінки: 1 2 3