Лекція №14 - розподілені бази даних, контент-платформа
Поява обчислювальних систем з базами даних призвело до зміни колишніх способів обробки даних, в яких для кожної програми визначалися і підтримувалися власні набори даних, новими, в яких всі дані визначалися і підтримувалися централізовано. А останнім часом відбувається швидкий розвиток технологій мережевого зв'язку та обміну даними, викликане створенням Internet. появою мобільних і бездротових обчислювальних засобів, а також "інтелектуальних" пристроїв. Тепер під впливом цих двох протилежних тенденцій технологія розподілених баз даних сприяє зворотному переходу від централізованої обробки даних до децентралізованої. Створення технології систем управління розподіленими базами даних є одним з найбільших досягнень в області баз даних.
В основному ми розглядали централізовані системи баз даних, т. Е. Системи, в яких єдина логічна база даних розміщувалася в межах одного вузла і перебувала під управлінням однієї СУБД. Тепер обговоримо принципи і проблеми, пов'язані з розподіленими СУБД, що дозволяють кінцевим користувачам мати доступ не тільки до даних, що зберігаються на їх власному вузлі, але і до даних, розміщених на різних віддалених вузлах. У пресі вже неодноразово робилися заяви про те, що в зв'язку з наростаючим процесом переходу організацій до технології розподілених баз даних централізовані бази даних буквально через кілька років перетворяться в антикварну рідкість.
Основною передумовою розробки систем, що використовують бази даних, є прагнення об'єднати всі оброблювані в організації дані в єдине ціле і забезпечити до них контрольований доступ. Хоча інтеграція і надання контрольованого доступу можуть сприяти централізації, остання не є самоціллю. На практиці створення комп'ютерних мереж призводить до децентралізації обробки даних. Децентралізований підхід, по суті, відображає організаційну структуру багатьох компаній, логічно складаються з окремих підрозділів, відділів, проектних груп і т. П. Які фізично розподілені по різних офісах, відділенням, підприємствам або філіям, причому кожна окрема виробнича одиниця має справу з власним набором оброблюваних даних. Розробка розподілених баз даних, що відображають організаційні структури підприємств, дозволяє зробити загальнодоступними дані, підтримувані кожним з існуючих підрозділів, забезпечивши при цьому їх зберігання саме в тих місцях, де вони найчастіше використовуються. Подібний підхід розширює можливості спільного використання інформації, одночасно підвищуючи ефективність доступу до неї.
Розподілені системи покликані вирішити проблему інформаційних островів. Якщо на підприємстві є кілька баз даних, їх іноді розглядають як якісь розрізнені території, що представляють собою окремі і важкодоступні для багатьох місця, подібні віддаленим один від одного островів. Дане положення може бути наслідком географічної роз'єднаності, несумісності використовуваної комп'ютерної архітектури, несумісності використовуваних протоколів зв'язку і т. Д. Такий стан справ здатна змінити інтеграція окремих баз даних в одне логічне ціле.
Щоб почати обговорення проблем, пов'язаних з розподіленими СУБД, перш за все необхідно усвідомити, що ж таке розподілена база даних.
Розподілена база даних: Набір логічно пов'язаних між собою сукупностей поділюваних даних (і їх описів), які фізично розподілені в деякій комп'ютерній мережі.
З цього випливає наступне визначення розподіленої СУБД:
Розподілена СУБД: Програмний комплекс, призначений для управління розподіленими базами даних і забезпечує прозорий доступ користувачів до розподіленої інформації.
Розподілена система управління базою даних (розподілена СУБД) складається з єдиної логічної бази даних, розділеної на кілька фрагментів. Кожен фрагмент бази даних зберігається на одному або декількох комп'ютерах, що працюють під управлінням окремих СУБД і з'єднаних між собою мережею зв'язку. Будь-вузол здатний незалежно обробляти запити користувачів, що вимагають доступу до локально записала даними (т. Е. Кожен вузол має певний ступінь автономності), а також здатний обробляти дані, що зберігаються на інших комп'ютерах мережі.
Користувачі взаємодіють з розподіленою базою даних через додатки. Додатки можуть поділятися на які не потребують доступу до даних на інших вузлах (локальні додатки) і вимагають подібного доступу (глобальні додатки). У розподіленої СУБД має існувати хоча б одне глобальне додаток, тому будь-яка така СУБД повинна мати такі характеристики:
§ Є набір логічно пов'язаних поділюваних даних.
§ Збережені дані розбиті на декілька фрагментів.
§ Може бути передбачена реплікація фрагментів даних.
§ Фрагменти і їх копії розподіляються за різними вузлів.
§ Вузли зв'язані між собою мережевими з'єднаннями.
§ Доступ до даних на кожному вузлі відбувається під управлінням СУБД.
§ СУБД на кожному вузлі здатна підтримувати автономну роботу локальних додатків.
§ СУБД кожного вузла підтримує хоча б одне глобальне додаток.
Але немає необхідності в тому, щоб на кожному з вузлів системи існувала своя власна локальна база даних, що і показано на прикладі топології розподіленої СУБД, представленої на малюнку:
Топологія розподіленої СУБД
З визначення СУБД слід, що вона повинна зробити саме це розподіл даних прозорим (непомітним) для кінцевого користувача. Іншими словами, від користувачів повинен бути повністю прихований той факт, що розподілена база даних складається з декількох фрагментів, які можуть розміщуватися на різних комп'ютерах і для яких, можливо, навіть організована реплікація даних. Мета забезпечення прозорості полягає в тому, щоб розподілена система зовні виглядала як централізована. Іноді це вимога називають основним принципом створення розподілених СУБД. Даний принцип вимагає надання кінцевому користувачеві широкого набору функціональних можливостей, але, на жаль, одночасно ставить перед програмним забезпеченням розподіленої СУБД безліч додаткових завдань.
Дуже важливо розуміти відмінності між розподіленими СУБД і засобами розподіленої обробки даних.
Розподілена обробка: Обробка з використанням централізованої бази даних, доступ до якої може здійснюватися з різних комп'ютерів мережі.
Ключовим моментом у визначенні розподіленої СУБД є твердження, що система працює з даними, фізично розподіленими в мережі. Білі дані зберігаються централізовано, то навіть в тому випадку, коли доступ до них забезпечується для будь-якого користувача по мережі, ця система просто підтримує розподілену обробку, але не може розглядатися як розподілена СУБД. Схематично подібна топологія розподіленої обробки представлена на малюнку. Порівняйте цей варіант, у якому центральну базу даних на вузлі 2, з варіантом, поданим на попередньому малюнку, в якому присутні кілька вузлів, кожен з яких має власну базу даних:
Топологія системи з розподіленою обробкою
Крім того, слід чітко розуміти відмінності, які існують між розподіленими і паралельними СУБД.
Паралельна СУБД: Система управління базою даних, що функціонує з використанням декількох процесорів і жорстких дисків, що дозволяє їй (якщо це можливо) распараллеливать виконання деяких операцій з метою підвищення загальної продуктивності обробки.
Поява паралельних СУБД було викликано тим фактом, що системи з одним процесором виявилися не здатні задовольняти зростаючі вимоги до масштабованості, надійності і продуктивності обробки даних. Ефективною і економічно обгрунтованою альтернативою однопроцесорним СУБД стали паралельні СУБД, що функціонують одночасно на декількох процесорах. Застосування паралельних СУБД дозволяє об'єднати кілька малопотужних машин для отримання такого ж рівня продуктивності, як і в разі однієї, але більш потужної машини, з додатковим виграшем в масштабованості і надійності системи в порівнянні з однопроцесорними СУБД.
Для надання декільком процесорам спільного доступу до однієї і тієї ж бази даних паралельна СУБД повинна забезпечувати управління спільним доступом до ресурсів. Те, які саме ресурси поділяються і як це поділ реалізовано на практиці, безпосередньо впливає на показники продуктивності і масштабованості створюваної системи, що, в свою чергу, визначає придатність конкретної СУБД до умов заданої обчислювальної середовища і вимогам додатків. Три основних типи архітектури паралельних СУБД представлені на малюнку нижче. До них відносяться:
§ системи з поділом пам'яті;
§ системи з поділом дисків;
§ системи без поділу обчислювальних ресурсів.
Хоча паралельна система без поділу обчислювальних ресурсів іноді розглядається як розподілена СУБД, в такій системі розподіл даних обумовлено лише прагненням до підвищення продуктивності. Більш того, вузли розподіленої СУБД зазвичай розділені географічно, знаходяться під управлінням різних адміністраторів і з'єднані між собою щодо повільними мережевими з'єднаннями, тоді як вузли паралельної СУБД найчастіше розташовуються на одному і тому ж комп'ютері або в межах однієї і тієї ж виробничої площадки.
Системи з розділенням пам'яті складаються з тісно пов'язаних між собою компонентів, в число яких входить кілька процесорів, які поділяють загальну системну пам'ять. Ця архітектура, звана також архітектурою із симетричною багатопроцесорної обробкою (SMP), в даний час набула широкого поширення і застосовується для самих різних обчислювальних платформ, від персональних робочих станцій, що містять кілька паралельно працюють мікропроцесорів, великих RISC-систем і аж до найбільших мейнфреймів. Ця архітектура забезпечує швидкий доступ до даних для обмеженого набору процесорів, кількість яких зазвичай не перевищує 64. В іншому випадку взаємодія по мережі стає вузьким місцем всієї системи.
Системи з розділенням дисків створюються з менш тісно пов'язаних між собою компонентів. Вони є оптимальним варіантом для додатків, які успадкували високу централізацію обробки і повинні забезпечувати найвищі показники доступності та продуктивності. Кожен з процесорів має безпосередній доступ до всіх спільно використовуваних дисковим пристроїв, але має власну оперативною пам'яттю. Як і в разі архітектури без поділу обчислювальних ресурсів, архітектура з поділом дисків виключає вузькі місця, пов'язані з спільно використовуваної пам'яттю. Однак, на відміну від архітектури без поділу обчислювальних ресурсів, дана архітектура виключає згадані вузькі місця без внесення додаткових витрат, пов'язаних з фізичним розподілом даних по окремим пристроїв. Спільні дискові системи іноді називають кластерами.
Архітектура систем баз даних з паралельною обробкою: а) з поділом пам'яті; б) з поділом дисків; в) без поділу
Системи без поділу обчислювальних ресурсів (цю архітектуру інакше називають архітектурою з масовою паралельною обробкою) використовують схему, в якій кожен процесор, який є частиною системи, має свою власну оперативну і дискову пам'ять. База даних розподілена між усіма дисковими пристроями, підключеним до окремих, пов'язаних з цією базою даних обчислювальним підсистем, в результаті чого всі дані прозоро доступні користувачам кожної з цих підсистем. Така архітектура забезпечує більш високий рівень масштабованості, ніж системи з пам'яттю, що, і дозволяє легко підтримувати велику кількість процесорів. Однак оптимальної продуктивності вдається досягти тільки в тому випадку, якщо необхідні дані зберігаються локально.
Переваги та недоліки розподілених СУБД
Розподілені системи баз даних мають додаткові переваги перед традиційними централізованими системами баз даних, На жаль, ця технологія не позбавлена і деяких недоліків. У цьому розділі описані як переваги, так і недоліки, властиві розподіленим СУБД.