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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Приклад об'єктно-орієнтованої моделі[1]

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

Історія[ред.ред. код]

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

Характеристики[ред.ред. код]

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

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

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

  1. Підтримка складних об'єктів. В системі має бути передбачена можливість створення складових об'єктів за рахунок застосування конструкторів. Необхідно, щоб конструктори об'єктів були ортогональними, тобто будь-який з конструкторів можна було використовувати з будь-яким об'єктом.
  2. Підтримка індивідуальності об'єктів. Всі об'єкти мають мати унікальний ідентифікатор, котрий не залежить від значень їх атрибутів.
  3. Підтримка інкапсуляції. Коректна інкапсуляція досягається за рахунок того, що програмісти мають право доступу тільки до специфікації інтерфейсу методів, а дані і реалізація методів приховані всередині об'єктів.
  4. Підтримка типів і класів. Вимагається, щоб ООБД підтримувалась хоча б одна концепція відмінності між типами і класами. (Термін «тип» більш відповідає поняттю абстрактного типу даних. У мовах програмування змінна оголошується із вказівкою на її тип. Компілятор може використати цю інформацію для перевірки операцій, що виконуються із змінною щодо сумісності з її типом, що дозволяє гарантувати коректність програмного забезпечення. З іншого боку, клас є шаблоном для створення об'єктів і надає методи, котрі можуть примінятись до цих об'єктів. Таким чином, поняття «клас» більшою мірою стосується часу виконання, аніж часу компіляції.)
  5. Підтримка наслудування типів і класів від їх предків. Подтип або підклас має наслідувати атрибути і методи від, відповідно, його супертипу або суперкласу.
  6. Перезавантаження у поєднанні з повним пов'язуванням. Методи повинні примінятись до об'єктів різних типів. Реалізація методу має залежати від типу об'єктів, до яких даний метод приміняється. Для забезпечення цієї функціональності зв'язування імен методів у системі не повинно виконуватись до часу, коли програму виконано.
  7. Обчислювальна повнота. Мова маніпулювання даними має бути мовою програмування загального призначення.
  8. Набір типів даних має бути розширюваним. Користувач повинен мати засоби створення нових типів даних на основі набору зумовлених системних типів. Більш того, між способами використання системних і користувацьких типів даних не повинно бути жодних відмінностей.

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

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

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

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

ООБД та її СУБД[ред.ред. код]

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

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

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

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

Примітки[ред.ред. код]

  1. Data Integration Glossary, 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

Література[ред.ред. код]

Див. також[ред.ред. код]

Посилання[ред.ред. код]