Сутність ООБД

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

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

Рис. 7.1. Об'єктно-орієнтований підхід

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

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

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

Об'єктно-орієнтоване проектування

Рис. 7.2. Об'єктно-орієнтоване проектування

Об'єктно-орієнтоване програмування бере за основу модель атомарного елемента (рис. 7.1).

Справа в тому, що, незважаючи на потужні засоби налагодження програм, ДЛЯ підвищення продуктивності процедури програмування доцільно налагоджувати програми послідовно, по блоках. Програма в цілому відлагоджується швидше, якщо блоки були налагоджені заздалегідь. Ці передумови і покладені в основу об'єктно-орієнтованого програмування.

Будь-яка математична модель має вигляд, представлений на рис. 7.1, а складна - на рис. 7.3.

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

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

Програмну реалізацію класу називають компонентою. Реалізація компоненти в деякій прикладній програмі отримала назву об'єкта.

В об'єктно-орієнтованому програмуванні використовуються три основних принципи: інкапсуляція, спадкування, поліморфізм.

Інкапсуляція - виділення класу з доступом до нього через властивості або методи.

Об'єктно-орієнтоване програмування

Рис. 7.3. Об'єктно-орієнтоване програмування

Спадкування - трансформація класу шляхом зміни властивостей і методів за допомогою методів, званих конструктором і деструктором.

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

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

Наведемо основні положення ООБД, що базуються на об'єктно-орієнтованому підході.

  • 1. Як значення стовпця може бути використаний довільний кортеж. Іншими словами, стовпець може бути як би деякої іншої таблицею. Таким чином, створюється можливість реалізації таблиць з нелінійної структурою.
  • 2. Процедура маніпуляції даними дозволяє приєднувати процедури, визначені значеннями стовпців.
  • 3. Дані стовпців можуть успадковуватися.
  • 4. Елементами відносин можуть служити нс тільки окремі елементи, як в реляційних БД, але і безлічі.
  • 5. Формуються класи даних, які організовують стовпці в ієрархію.

Базовою мовою ООБД найчастіше є С ++. Для роботи з такими ООБД розробляється новий варіант мови програмування SQL, що отримав назву SQL3 і містить усередині себе в якості окремого випадку реляційну модель (SQL2). Якщо SQL2 визначає сім способів зв'язування зі стандартними мовами програмування, в SQL3 це кількість передбачається збільшити.

У технології розробки ООБД конкурує два напрямки.

  • • Distributed Object Linking and Embedding (OLE) фірми Microsoft.
  • • Common Object Request Broker Architecture (CORBA) групи OBDMG, підтримувана фірмами IBM, Novell, DEC, з орієнтацією на всі платформи. У рамках цього напрямку виділені і сформовані зазначені раніше мова визначення об'єктів Object Definition Language (ODL); об'єктна мова запиту Object Query Language (OQL); мова визначення інтерфейсів Interface Definition Language (IDL).

У другому напрямку зазвичай виділяють [4] два стандарти управління БД:

  • • ODL / OQL, в якому об'єкти і методи формуються зазвичай за допомогою мови програмування С;
  • • мова програмування SQL3, деякі особливості якого описані в гл. 9.

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

Таким чином, щоб скористатися об'єктно-орієнтованим підходом у побудові власне БД, необхідно:

  • 1) провести інкапсуляцію даних, т. Е. Виділити класи та об'єкти;
  • 2) визначити можливі види структури реалізованих таблиць;
  • 3) створити наслідування класів даних;
  • 4) забезпечити поліморфізм.

Реалізація навіть першої позиції неоднозначна і різна, наприклад в ООСУБД і ОРСУБД. Є деяке відмінність навіть в рамках різних ООСУБД.

У різних ООБД існує дещо відмінний, принаймні за термінологією, набір властивостей. У той же час суттєвої різниці між наборами властивостей немає, і тому ілюструємо їх на прикладі ООСУБД CACHE.

У ній виділяють класи типів даних і класи самих даних (класи об'єктів, таблиці).

Якщо провести аналогію з термінами реляційної БД, то поняттю "клас (об'єкт)" ООБД відповідає приблизно поняття "таблиця", а поняттю "властивість" - "поле (стовпець) таблиці".

Як властивості [38, 40] прийняті константи, посилання на об'єкти, вбудовані об'єкти, потоки даних (BLOB і CLOB), колекції у вигляді масивів (Array) і списків (List), багатовимірні властивості. До властивостей відносять і зв'язки між об'єктами.

Для властивостей є типи, основними з яких є Currency (грошовий), Date, Float, Integer, List (список), Name (ім'я), Numeric, Status (помилки), String.

В якості типів властивостей можуть виступати зв'язки, які [40 | можна розділити на прості, реалізовані посиланнями, і відносини, іноді звані асоціаціями. При посиланні в якості типу властивостей виступає клас (об'єкт), з яким зв'язується дане властивість. Можливо вбудовування одного об'єкта в інший. У асоціаціях виділяють відносини ONE-TO-MANY (1: М) і PARENT- CHILDREN (батько - діти).

Розрізняють три основні групи методів: кол (мовою Cache ObjectScript), вираз (фрагмент коду, що викликається за значенням), виклик. Неважко бачити, що дані осередків неатомарни.

Структура ООБД може бути побудована різними способами: за допомогою візуальної мови, мов програмування Cache ObjectScript, SQL.

В інших ООСУБД для цих цілей часто використовують мову С ++.

ООБД в рамках системи OLTP і OLAP взаємодіє з багатовимірної моделлю даних (ММД). Обговоримо специфіку ММД.

 
< Попер   ЗМІСТ   Наст >