03 - Організація баз даних та знаньТема 10 - Обєктно-орієнтовані. Тема 10 Обєктноорієнтовані бази даних
Скачать 0.87 Mb.
|
03 - Організація баз даних та знань Тема 10 - Обєктно-орієнтовані бази даних Стислий конспект 10.1 Об’єктно-орієнтована модель ODMG 10.2 Мова опису об’єктів ODL ODMG 10.2.1. Основні положення 10.2.2. Система типів ODL 10.2.3. Об’єкти 10.2.4. Літерали 10.3 Об’єктна мова запитів OQL ODMG 10.3.1. Запити OQL 10.3.2. Обчислення проміжних результатів 10.4 Архітектура ООСКБД 10.4.1. Розширення реляційних СКБД 10.4.2. Створення самостійних ООСКБД 10.4.3. Об’єктно-реляційні СКБД Ключові терміни: OQL ODMG, клас, літерал, об’єкт, поведінка об’єкта, поліморфізм, реалізаційна частина, ст об’єкта, успадкування, інтерфейсна частина 10.1 Об’єктно-орієнтована модель ODMG В об’єктно-орієнтованій моделі дані та методи, що їх обробляють, об’єднуються в структури, які називаються об’єктами. Типи об’єктів називаються класами. З точки зору баз даних є такі важливі особливості об'єктно-орієнтованої моедлі (далі ООМ), які ми розглянемо далі. Складні структури даних. Складні об’єкти будуються з простіших за допомогою конструкторів. Найпростішими об’єктами є: числа, символи, символьні рядки довільної довжини, булеві змінні тощо. Будь-який конструктор має бути застосовним до будь-якого об’єкту (наприклад, повинна надаватися можливість побудови множини з масивів або масиву з множин). Маніпулювання складним об’єктами забезпечується відповідними операціями, які часто розповсюджуються на всі компоненти таких об’єктів. Прикладом може бути вибирання чи видалення складного об’єкту або створення його копії. Існує можливість визначати додаткові операції над складними об’єктами. Ідентифікованість, унікальність і стан об’єктів. Кожний об’єкт є унікальним, тобто забезпечуєтьс унікальна ідентифікація об’єктів (для мов програмування унікальними ідентифікаторами можуть бути адреси пам’яті, за якими зберігаються об’єкти). Стан об’єкта — це поточне значення, приписане об’єкту. Об’єкт може мати єдиний стан протягом свого життєвого циклу або переходити з одного стану в інший. Оскільки об’єкти мають властивість Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Всього зауважень: Всього зауважень: 0 0 інкапсуляції (що буде розглянута нижче), то стан об’єкта є абстракцією, яка визначається лише через його поведінку (методи). Унікальність об’єкта не залежить від його стану. Розрізнення об’єктів. У моделі з об’єктами, що ідентифікуються, два об’єкти можуть спільно використовувати компоненти (зокрема інші об’єкти). Отже, схематичним відображенням складного об’єкта є граф, натомість у системі без ідентифікованості об’єктів - це дерево. Поведінка об’єктів. Поведінка об’єкта це сукупність операцій (методів), які він надає. Лише через ці операції розкривається семантика об’єкта. Класи об’єктів. Клас означує спосіб реалізації множини об’єктів, встановлюючи їхню структуру, поведінку та інтерфейс, тобто спосіб запам’ятовування інформації про їхні стани. Проте власне стан має запам’ятовувати сам об’єкт. Однією з основних властивостей класу, відтак і його об’єктів, є інкапсуляція. Інкапсуляція. Інкапсуляція вимагає, щоб дані та програмні коди для маніпулювання даними були приховані. З цієї точки зору об’єкт поділяється на інтерфейсну й реалізаційну частини. Інтерфейсна частина є специфікацією набору операцій, допустимих над об’єктом. Лише ця частина об’єкта видима для методів інших об’єктів. Реалізаційна частина складається з даних, що описують стан об’єкта, і процедур, що реалізують операції над об’єктом. Інкапсуляція специфікується на рівні оголошення кла Успадкування. Успадкування є механізмом, що дає змогу створювати нові класи з використанням даних і методів інших класів. Це дає можливість деякі властивості, спільні для багатьох класів, описувати в базовому класі. Поліморфізм. Принцип поліморфізму є розширенням принципу успадкування й дає змогу переозначувати методи в успадкованих класах. 10.2 Мова опису об’єктів ODL ODMG Будь-яка СКБД має мову опису даних (МОД), що використовується для опису схем баз даних. Мова опису об’єктів ODL ODMG розглядається як розширення МОД, призначене для опису об’єктів, їхніх атрибутів, зв’язків та операцій. Основою цієї мови стала мова IDL (Interface Definition Language), розроблена групою OMG. 10.2.1. Основні положення ODL - це мова, призначена насамперед для специфікації класів. Вона підтримує об’єктну модель ODMG і не є мовою програмування. Більше того, ODL незалежна від мов програмування. Основна ме розробки цієї мови - створити єдину основу для опису об’єктів і тим самим забезпечити перенесення схем об’єктних даних між різними ООСКБД. Основні положення об’єктної моделі даних ODMG: базовим поняттям моделі є об’єкт; поведінка об’єкта визначається за допомогою множини його операцій; стан об’єкта визначається за допомогою множини його властивостей: об’єкти належать до класів, саме через класи вони специфікуються; клас має інтерфейсну та реалізаційну частини; клас є об’єктом; ODL специфікує класи. В об’єктній моделі ODMG мова йде насамперед про типи, а вже потім про класи. Клас розглядаєтьс як різновид типу, що має одну реалізацію. 10.2.2. Система типів ODL Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Всього зауважень: Всього зауважень: 0 0 Базовими типами мови є: integer, float, string, boolean, перелічувані типи, що створюються за допомогою ключового слова enum, та класи. Похідні типи створюються за допомогою конструкторів типів. Є конструктор Struct для структур і чотири конструктори для типів колекцій: Set, Bag, List, Array. Опис структур і колекцій наведено далі. 10.2.3. Об’єкти Основні характеристики об’єктів: OID унікально ідентифікує об’єкт, відрізняючи його від інших об’єктів тієї предметної області, де в був створений. Будь-який об’єкт має лише один OID, але може мати більше одного імені. Об’єкти можуть ідентифікуватися предикатами, визначеними на їхніх властивостях. Видалення об’єкта не призводить до рекурсивного видалення пов’язаних із ним об’єктів. На рис. 10.1 наведена класифікація об’єктів. Рисунок 10.1 – Класифікація об’єктів у ODL 10.2.4. Літерали Літерали — це об’єкти, екземпляри яких не можна змінювати. Для наперед визначених типів літералів не можна змінювати операції. На рис. 10.2 наведена класифікація літералів. Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Всього зауважень: Всього зауважень: 0 0 Рисунок 10.2 – Класифікація літералів 10.3 Об’єктна мова запитів OQL ODMG OQL ODMG - це незалежна мова запитів до об’єктної моделі даних ODMG, синтаксис якої базуєтьс на мові SQL. Окрім того, передбачається можливість її використання в мовах програмування. Мова запитів орієнтована на побудову виразів, її конструкції мають такі властивості: будь-який запит є виразом, що має тип — об’єкт або літерал; вирази та операції над ними можуть вкладатися одне в одне; результатом виконання запиту є об’єкти, що належать типам, означеним у моделі ODMG, і можут брати участь у формуванні виразів. 10.3.1. Запити OQL В OQL запитом може бути будь-який вираз, що повертає об’єкт, колекцію об’єктів, літерал або колекцію літералів. Оскільки запит — це вираз, а будь-який вираз має тип, то й будь-якому запиту ставиться у відповідність тип. Найпоширенішим різновидом запиту, як і в SQL, є select-запит. В запитах слід звертатися саме до екстентів, а не до класів. Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Всього зауважень: Всього зауважень: 0 0 10.3.2. Обчислення проміжних результатів Запит можна не лише сформулювати для виконання, але й визначити для подальшого використанн в інших запитах (певний аналог віртуальних таблиць, створюваних командою CREATE VIEW у мові SQL). Це досягається за допомогою означення запиту, що має такий вигляд: define ім’я_запиту as вираз 10.4 Архітектура ООСКБД 10.4.1. Розширення реляційних СКБД Реляційні СКБД надають можливість звертатися до них програмам, написаним різними, зокрема об’єктно-орієнтованими, мовами програмування. У цьому випадку об’єктно-орієнтовані прикладні програми виконують усі функції, пов’язані з відображенням об’єктної моделі в реляційну, тобто перетворюють об’єкти на структури даних, які можуть бути безпосередньо записані в табличні БД, підтримують властивості успадкування, інкапсуляції, зв’язування з об’єктами їхніх методів. РСКБД бере на себе єдину функцію - зберігання даних, які пов’язані з об’єктами, причому зберіганн у вигляді реляційних таблиць, усе інше виконує прикладна програма. Даний підхід передбачає включення до складу РСКБД засобів, які полегшують процес відображенн об’єктів у базі даних і маніпулювання ними. Тобто сама РСКБД удосконалюється, полегшуючи обробку об’єктів, але залишається при цьому реляційною. До можливих розширень РСКБД належать такі. Надання можливості автоматичного створення унікальних ідентифікаторів кортежів відношень. Створення механізмів означення нових типів даних (такі механізми є в мовах програмування). Перевага підходу - можливість використовувати всю потужність реляційних систем баз даних. Недолік - слабка розвиненість засобів зображення об’єктів і маніпулювання ними. 10.4.2. Створення самостійних ООСКБД Об’єктно-орієнтовані СКБД реалізують гнучку модель даних, яка базується на тій же парадигмі, що об’єктно-орієнтовані мови програмування. ООБД забезпечують глибшу інтеграцію з об’єктно- орієнтованими додатками, ніж реляційні бази даних, і мінімізують обсяг роботи з програмування збереження і вибирання об’єктно-орієнтованих даних. Переваги використання однакових моделей у додатках та базі даних виявляються тоді, коли об’єктно-орієнтовані моделі є складними. Якщо ієрархія успадкування є багаторівневою, колекції перетворюють граф об’єкта на павутину, застосуванням складно використовувати поліморфізм та посилання, об’єктна база даних робить такі застосування меншими і їхня продуктивність підвищується Це знижує витрати на написання і налагодження програмного коду й підвищує загальну продуктивніст застосувань Самостійні ООСКБД забезпечують повну підтримку об’єктно-орієнтованої парадигми. Це передбача безпосередню інтеграцію з об’єктно-орієнтованими мовами програмування, підтримку об’єктних типів, зв’язків між об’єктами та операцій бази даних, які інтерпретують об’єкти (найчастіше об’єкти інтерпретуються як записи) Прикладами об’єктно-орієнтованих операцій бази даних можуть бути: створення посилань на об’єкти і завантаження з бази даних об’єктів, на які є посилання, забезпечення блокування на об’єктному рівні й повернення об’єктів як результатів запитів або операцій з курсорами Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Всього зауважень: Всього зауважень: 0 0 Перевагою ООСКБД є їхня повна узгодженість із об’єктно-орієнтованою парадигмою програмуванн що знімає всі проблеми, пов’язані зі зберіганням і маніпулюванням об’єктами у базі даних. Основний недолік пов’язаний з тим, що для самостійних ООСКБД слід вирішувати весь комплекс проблем, пов’язаних із СКБД, які вже вирішені в наявних реляційних СКБД. 10.4.3. Об’єктно-реляційні СКБД Особливість даного підходу полягає в тому, що на базі наявних реляційних СКБД реалізується об’єктно-орієнтований інтерфейс. Робота з цим інтерфейсом здійснюється так само, як і в ООСКБД, а всі проблеми, пов’язані зі створенням і веденням баз даних, вирішуються в реляційній СКБД. Основна проблема, пов’язана зі створенням такого інтерфейсу, — відображення об’єктно- орієнтованої моделі в реляційну. Є кілька способів інтеграції об’єктного і реляційного підходів, що буду розглянуті далі. Об’єктно-реляційний шлюз автоматично виділяє об’єкти програми й зберігає їх у реляційній базі даних. Об’єктно-орієнтований додаток працює як звичайний користувач СКБД (рис. 10.3). Такий варіан дає змогу програмістам повністю сконцентруватися на об’єктно-орієнтованому проектуванні Рисунок 10.3 – Використання об’єктно-реляційного шлюзу Об’єктно-реляційний прошарок між об’єктною та реляційною СКБД У разі використання об’єктно-орієнтованого прошарку програма взаємодіє з БД за допомогою мови ООСКБД, а прошарок замінює всі об’єктно-орієнтовані елементи цієї мови на їхні реляційні еквівалент (рис. 10.4). Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Всього зауважень: Всього зауважень: 0 0 © 2015 СумГУ created with Lectur'ED Рисунок 10.4 – Використання об’єктно-реляційного прошарку За це доводиться розплачуватися продуктивністю. Окрім іншого, прошарок має перетворювати об’єкти на набори зв’язаних відношень, генерувати унікальні OID об’єктів і передавати ці дані до реляційної БД. Уніфікована об’єктно-реляційна СКБД Цей підхід передбачає створення гібридних об’єктно-реляційних СКБД, що можуть зберігати як табличні дані, так і об’єкти. Вважається, що майбутнє саме за гібридними СКБД. Сьогодні розробники реляційних СКБД починають додавати до своїх продуктів об’єктно-орієнтовані засоби. beta Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Виділіть текст, щоб додати зауваження. Послідовно переглянути зауваження: Всього зауважень: Всього зауважень: 0 0 |