Основні поняття об'єктно-орієнтованих систем

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

Об'єкт являє собою концептуальну модель реального світу, в яку вбудовані представлення даних ( атрибути) і їх поведінка ( методи). Кожен об'єкт має унікальний ідентифікатор OID (Object Identifier, ідентифікатор об'єкта), який не залежить від його атрибутів. Атрибути входять в склад об'єкта і кожен атрибут може посилатися на інший об'єкт. Стан об'єкта визначається набором значень, які об'єкт має в даний момент часу. Методи реалізують поведінку об'єкта. Методи викликають за допомогою повідомлень. Реалізація методів і представлення даних інкапсульовані, тобто приховані від зовнішніх джерел.

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

Об'єктна модель даних характеризується рядом властивостей.

1. Основними компонентами є об'єкти і літерали. Об'єкт − це екземпляр сутності. Він має унікальний ідентифікатор. Літерал − конкретне значення. Він не має ідентифікатора.

2. Об'єкт має властивості, в тому числі атрибути і зв'язки з іншими об'єктами. Множина поточних значень всіх властивостей об'єкта визначає його стан.

3. Об'єкти і літерали мають типи. Кожен тип має власний домен. Типи можуть володіти поведінкою. Всі об'єкти одного типу володіють однаковою поведінкою і мають домени, що притаманні цьому типу.

4. Дії, які може виконувати об'єкт називаються операціями.

5. База даних зберігає об'єкти і заснована на схемі даних, що визначається мовою визначення даних. БД містить екземпляри типів, що визначаються схемою.

В табл. 11.1 наведені співвідношення термінів реляційної БД і об'єктно-рієнтованої БД.

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

 

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

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

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

Нормалізація зберігає своє значення і дозволяє зменшити збитковість даних. Для ідентифікації кожного об'єкта використовується унікальний ідентифікатор об'єкта. Кожен атрибут об'єкта залежить від ідентифікатора. Також для ідентифікації атрибутів об'єкта може вводитись первинний

ключ. Схема БД містить опис структури даних об'єкта, обмеження, а також правила поведінки об'єкта.

В об'єктно-орієнтованих моделях є зв'язки двох типів:

− посилання між класами;

− наслідування в ієрархії класів.

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

В об'єктно-орієнтованих моделях даних створюється схема, в якій зв'язки складають частину структури БД.

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

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

Об'єктно-орієнтована СУБД повинна відповідати таким вимогам:

− підтримка складних об'єктів;

− підтримка унікальної ідентифікації об'єктів (OID);

− підтримка класів або типів;

− підтримка наслідування;

− інкапсуляція об'єктів;

− управління БД;

− забезпечення паралельної роботи декількох користувачів;

− можливість відновлення після перебоїв;

− підтримка запитів до БД на мові високого рівня;

− запис і зчитування даних із зовнішніх пристроїв пам'яті.

До переваг об'єктно-орієнтованих баз даних можна віднести такі:

− можливість включення детальної семантичної інформації в БД;

− можливість розширення базових типів даних, підтримка складних вкладених структур, визначення довільних структур (мультимедіа і т.ін.);

− контроль версій;

− можливість багаторазового використання класів, прискорення розробки застосувань за рахунок наслідування.

До недоліків об'єктно-орієнтованих баз даних належить:

− відсутність достатньо проробленої теоретичної бази у об'єктної моделі;

− складність структури;

− навігаційне управління даними, складність додавання атрибутів і методів;

− відсутність стандартної мови запитів.