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

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

Приклад об'єктно-орієнтованої моделі[1]

Історія

Перші публікації про об'єктно-орієнтовані бази даних з'явились всередині 1980-х років[4] і були викликані проблемами роботи з даними, які виникають в системах збереження даних з високою складністю структур даних та відношень між ними.

Характеристики

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

В маніфесті ООБД[5] пропонується обов'язкові характеристики, котрим повинна відповідати будь-яка ООБД. Їх вибір засновано на 2 критеріях: система має бути об'єктно-орієнтированою і представляти собою базу даних.

Обов'язкові характеристики:

  • Підтримка складних об'єктів. В системі має бути передбачена можливість створення складових об'єктів за рахунок застосування конструкторів. Необхідно, щоб конструктори об'єктів були ортогональними, тобто будь-який з конструкторів можна було використовувати з будь-яким об'єктом.
  • Підтримка індивідуальності об'єктів. Всі об'єкти повинні мати унікальний ідентифікатор, котрий не залежить від значень їх атрибутів.
  • Підтримка інкапсуляції. Коректна інкапсуляція досягається за рахунок того, що програмісти мають право доступу тільки до специфікації інтерфейсу методів, а дані і реалізація методів приховані всередині об'єктів.
  • Підтримка типів і класів і типів. Вимагається, щоб в ООБД підтримувалась хоча б одна концепція відмінності між типами і класами[6].
  • Підтримка наслідування типів і класів від їх предків. Підтип або підклас має наслідувати атрибути і методи від, відповідно, його супертипу або суперкласу.
  • Перевантаження у поєднанні з повним пов'язуванням. Методи повинні застосовуватись до об'єктів різних типів. Реалізація методу має залежати від типу об'єктів, до яких даний метод застосовується. Для забезпечення цієї функціональності зв'язування імен методів у системі не повинно виконуватись до часу, коли програму виконано.
  • Обчислювальна повнота. Мова маніпулювання даними має бути мовою програмування загального призначення.
  • Набір типів даних має бути розширюваним. Користувач повинен мати засоби створення нових типів даних на основі набору зумовлених системних типів. Більш того, між способами використання системних і користувацьких типів даних не повинно бути жодних відмінностей.

Необов'язкові характеристики:

  • множинне спадкування;
  • перевірка типів;
  • розподілення;
  • проектні транзакції.

Відкриті характеристики:

  • парадигми програмування (процедурне, декларативне);
  • система представлення;
  • система типів;
  • одноманітність (реалізація — мова програмування — інтерфейс).

ООБД та її СУБД

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

Деякі об'єктно-орієнтовані бази даних розроблені для щільної взаємодії з такими об'єктно-орієнтованими мовами програмування як Python, Java, C#, Visual Basic .NET, C++, Objective-C і Smalltalk; інші мають свої власні мови програмування. ООСКБД використовують точно таку же модель, що й об'єктно-орієнтовані мови програмування.

СУБД повинна забезпечувати:

  • довготермінове зберігання;
  • використання зовнішньої пам'яті;
  • паралелізм;
  • відновлення;
  • нерегламентовані запити.

Примітки

  1. Data Integration Glossary Архівовано 18 лютого 2012 у Wayback Machine., U.S. Department of Transportation, August 2001.
  2. Словарь по естественным наукам
  3. OLAP.
  4. IEEE Database Engineering, special issue on Object-Oriented Databases, F. Lochovski, ed., Dec. 1985
  5. Atkinson et al., 1989
  6. Термін «тип» більш відповідає поняттю абстрактного типу даних. У мовах програмування змінна оголошується із вказівкою на її тип. Компілятор може використати цю інформацію для перевірки операцій, що виконуються із змінною щодо сумісності з її типом, що дозволяє гарантувати коректність програмного забезпечення. З іншого боку, клас є шаблоном для створення об'єктів і надає методи, котрі можуть застосовуватись до цих об'єктів. Таким чином, поняття «клас» більшою мірою стосується часу виконання, аніж часу компіляції

Література

Див. також

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.