Здавалка
Главная | Обратная связь

Об'єктно-орієнтовані бази даних



До цього часу термінологія ще не устоялася, існує багато різних визначень і трактувань. Представляється, що об'єктно-орієнтована база даних (ООБД) – база даних, заснована на принципах об'єктно-орієнтованої технології. До основних описових моментів, пов'язаних з ООБД, в літературі [26] відносять:

· об'єкти (у ООБД будь-яка сутність – об'єкт і обробляється як об'єкт); відзначимо, що тут використовується поняття "об'єкт" об'єктно-орієнтованого програмування, яке відрізняється від поняття "об'єкт", що розглядався раніше в наших лекціях.

· класи (поняття "Тип даних" реляційної моделі замінюється поняттями "клас" і "підклас");

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

· атрибути (характеристики об'єкту моделюються його атрибутами);

· повідомлення і методи (кожен клас має певну сукупність методів, класи взаємодіють один з одним за допомогою механізму повідомлень);

· інкапсуляція (внутрішня структура об'єктів прихована);

· ідентифікатори об'єктів – дескриптори.

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

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

Використовуючи спадкоємство, всім об'єктам ПІДРОЗДІЛ можна приписати властивість об'єкту-батька (ФАКУЛЬТЕТ) – назва факультету, номер факультету. Схема представлення об'єктів ФАКУЛЬТЕТ і ПІДРОЗДІЛ наводиться на мал. 14.3.

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

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

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

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

Для переходу до об'єктно-орієнтованих БД стандарт об'єктного програмування був доповнений стандартизованими засобами доступу до баз даних (стандарт ODMG 93; Object Database Management Group – група управління об'єктно-орієнтованими базами даних). До теперішнього часу цей стандарт не реалізований. Стан проблеми детально описаний також в роботах [26], [4], [2], [18], [3] і ін. Відзначимо лише, що ООБД використовуються, але доки не стали реальною альтернативою реляційним базам даних.

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

47. Напрями розвитку БД. Об’єктно-реляційні СУБД

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

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

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

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

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

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

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

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

 

48. Напрями розвитку БД.. Розподілені БД. Сховища даних

Розподілені БД

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

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

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

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

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

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

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

Сховища даних

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

Наведемо визначення сховища даних (Bill Inmon).

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

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

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

Прив'язка до часупередбачає, що для всіх даних вказаний момент або проміжок часу, в який вони коректні.

Дані у сховищі не змінюються, вони лише регулярно поповнюються з оперативних баз даних.

Загальна схема взаємодії інформаційного сховища і баз даних наводиться на мал. 14.5.

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

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

· засоби витягання даних з баз даних;

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

· засоби аналізу даних сховища (використовується OLAP‑технологія):

· засоби доставки даних;

· засоби візуалізації результатів обробки для кінцевих користувачів.

Для роботи відповідних програмних засобів необхідний опис структури вмісту інформаційного сховища (метаопис).

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

Розглянемо як приклад можливості СУБД Microsoft SQL Server 2008 для організації сховищ даних.

Microsoft SQL Server 2008 містить у своєму складі засоби витягання, перетворення і завантаження даних (SQL Server 2008 Integration Services), здатні інтегрувати дані з різних джерел, перевіряти дані на допустимість і перетворювати перед завантаженням у сховище. Ці засоби також сприяють переміщенню даних, підтримують текстовий аналіз і нечіткий пошук. Потрібно відзначити також середовище візуальної розробки (Business Intelligence Development Studio) для створення багатовимірних кубів, звітів, пакетів витягування, перетворення і завантаження даних.

Істотною особливістю сховищ даних є їх дуже великий об'єм. Microsoft SQL Server 2008 як засіб управління даними сховища дозволяє працювати з великими об'ємами даних, причому для скорочення часу обробки передбачена підтримка паралельних обчислень (шляхом розділення таблиць і індексів на секції о забезпечення паралельної обробки секцій). У системі передбачена можливість стискування даних (таблиць), що дозволяє зменшити фізичний розмір таблиць і істотно скорочує час обміну між оперативною і зовнішньою пам'яттю.

Як засоби аналізу даних сховища використовується SQL Server 2008 Analysis Services, вживаний для побудови багатовимірних кубів (багатовимірних моделей даних). Цей засіб містить сім ефективних алгоритмів аналізу даних з метою підтримки ухвалення управлінських рішень, у тому числі аналіз тенденцій і статистичний аналіз даних.

Як засоби представлення аналітичних даних користувачам пропонується використовувати засіб генерації звітів SQL Server 2008 Reporting Services.

Таким чином, Microsoft SQL Server 2008 є ефективним засобом реалізації сховищ даних на основі реляційних баз даних.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.