Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чичкань.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.15 Mб
Скачать
          1. Об'єктно-реляційні субд

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

Відповідні зміни реляційній моделі зумовили необхідність розширення стандарту мови запитів SQL. Перший варіант такого стандарту отримав назву SQL3. Робота над стандартом продовжується і в наш час.

Як приклад у максимальній мірі об'єктно-орієнтованої СУБД можна вказати дослідницьку СУБД Postgres [4].

Відзначимо, що СУБД Microsoft Server 2008 містить об'єктні розширення.

  • Призначені для користувача розширення. Користувачі мають можливість втручатися в інструментарій (наданий СУБД), створюючи, зокрема, нові користувальницькі типи даних.

  • Зберігання великих об'ємів даних. Разом з тими даними, які зберігалися в БД традиційно, Microsoft SQL Server 2008 дозволяє зберігати в стовпцях таблиці дані великих розмірів (підтримуються відповідні типи даних).

  • Нові, орієнтовані на певні класи об'єктів, типи даних. У системі визначені нові типи даних (geometry, geography), характерні для тих напрямів, в яких об'єктно-орієнтований підхід вельми ефективний і часто використовується (картографія і відповідні додатки, геометричне представлення об'єктів найрізноманітнішої природи).

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

      1. 14.2. Розподілені бази даних

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

  • централізоване зберігання даних;

  • централізоване обслуговування даних (введення, коректування, читання, контроль цілісності).

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

У такої технології були істотні недоліки, які вже відзначалися в попередніх розділах: дублювання деяких даних, відсутність можливості порівняльного аналізу даних всіх ділянок. Проте в цієї технології були і істотні переваги: дані вводилися і зберігалися в місцях їх породження; з цими даними працював користувач, що є фахівцем саме з цих даних, що дозволяло йому вести ефективний контроль правильності даних на всіх стадіях обробки; дані знаходилися безпосередньо у користувача, що давало можливість їх оперативної обробки. Централізація даних на одній ЕОМ, поза сумнівом дає ефективні можливості зберігання і обробки даних, але не дозволяла реалізовувати вищеназвані переваги.

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

Термін "розподілена база даних" досить частий зустрічається в літературі [26], [4], [2], [18], [3]. Проте в різних джерелах під цим терміном розуміються абсолютно різні речі. Частину авторів розуміють під розподіленою базою даних те, що є віддалений сервер, на якому розташовані дані, а також клієнтські комп'ютери, розташовані територіально у іншому місці. Таке трактування нам представляється неправильним. Справжня розподілена база даних розташовується на декількох комп'ютерах. При цьому частина файлів розташована на одному комп'ютері, частина на іншому і так далі. Більше того, можлива і навіть часто зустрічається ситуація, коли інформація на цих комп'ютерах перетинається, дублюється.

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

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

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

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

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

Мал. 14.4.  Розподілена база даних

К.Дж. Дейт проголошує наступний фундаментальний принцип розподіленої бази даних [4]. Для користувача розподілена система повинна виглядати точно так, як і нерозподілена. З цього принципу випливає ряд правил:

  1. Локальна автономія.

  2. Незалежність від центрального вузла.

  3. Безперервне функціонування.

  4. Незалежність від розташування.

  5. Незалежність від фрагментації.

  6. Незалежність від реплікації.

  7. Обробка розподілених запитів.

  8. Управління розподіленими транзакціями.

  9. Незалежність від апаратного забезпечення.

  10. Незалежність від операційної системи.

  11. Незалежність від мережі.

  12. Незалежність від СУБД.

Відмітимо, що поняття розподіленої бази даних можна інтерпретувати як наступний крок у розвитку понять про дані (див. лекцію 1), обумовлений розподілом даних в реальних предметних областях, а також новим етапом розвитку засобів обчислювальної техніки – широким використанням обчислювальних мереж.

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

Перерахуємо основні проблеми створення розподіленої бази даних.

  1. Фрагментація даних і розподіл по комп'ютерах.

  2. Складання глобального каталогу, що містить інформацію про кожен фрагмент БД і його місце розташування в мережі. (Каталог може зберігатися на одному вузлі або бути розподіленим)

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

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

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

Детальне вивчення принципів побудови розподілених баз даних не входить до завдань наших лекцій. Тим хто цікавиться рекомендуємо звернутися до відповідної літератури, наприклад [4], [2], [18], [3]. Тут ми хочемо лише окреслити проблему і зробити деякі висновки по перспективах її рішення. Технологія, зв'язана з використанням розподілених баз даних, найбільшою мірою відповідає організаційній людській діяльності (інформація розподілена по місцю діяльності людей, і вони обмінюються нею в процесі роботи) і дозволяє найуспішніше вирішувати найважливіші проблеми, ведення баз даних:

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

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

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