Об'єктно-орієнтована база даних
Об'єктно-орієнтована база даних (ООБД) — база даних, в якій дані моделюються у вигляді класів і об'єктів[2], їх атрибутів і методів[3].
Історія
Перші публікації про об'єктно-орієнтовані бази даних з'явились всередині 1980-х років[4] і були викликані проблемами роботи з даними, які виникають в системах збереження даних з високою складністю структур даних та відношень між ними.
Характеристики
Об'єктно-орієнтовані бази даних зазвичай рекомендовані для тих випадків, коли потрібна високопродуктивна обробка даних, що мають складну структуру.
В маніфесті ООБД[5] пропонується обов'язкові характеристики, котрим повинна відповідати будь-яка ООБД. Їх вибір засновано на 2 критеріях: система має бути об'єктно-орієнтированою і представляти собою базу даних.
Обов'язкові характеристики:
- Підтримка складних об'єктів. В системі має бути передбачена можливість створення складових об'єктів за рахунок застосування конструкторів. Необхідно, щоб конструктори об'єктів були ортогональними, тобто будь-який з конструкторів можна було використовувати з будь-яким об'єктом.
- Підтримка індивідуальності об'єктів. Всі об'єкти повинні мати унікальний ідентифікатор, котрий не залежить від значень їх атрибутів.
- Підтримка інкапсуляції. Коректна інкапсуляція досягається за рахунок того, що програмісти мають право доступу тільки до специфікації інтерфейсу методів, а дані і реалізація методів приховані всередині об'єктів.
- Підтримка типів і класів і типів. Вимагається, щоб в ООБД підтримувалась хоча б одна концепція відмінності між типами і класами[6].
- Підтримка наслідування типів і класів від їх предків. Підтип або підклас має наслідувати атрибути і методи від, відповідно, його супертипу або суперкласу.
- Перевантаження у поєднанні з повним пов'язуванням. Методи повинні застосовуватись до об'єктів різних типів. Реалізація методу має залежати від типу об'єктів, до яких даний метод застосовується. Для забезпечення цієї функціональності зв'язування імен методів у системі не повинно виконуватись до часу, коли програму виконано.
- Обчислювальна повнота. Мова маніпулювання даними має бути мовою програмування загального призначення.
- Набір типів даних має бути розширюваним. Користувач повинен мати засоби створення нових типів даних на основі набору зумовлених системних типів. Більш того, між способами використання системних і користувацьких типів даних не повинно бути жодних відмінностей.
Необов'язкові характеристики:
- множинне спадкування;
- перевірка типів;
- розподілення;
- проектні транзакції.
Відкриті характеристики:
- парадигми програмування (процедурне, декларативне);
- система представлення;
- система типів;
- одноманітність (реалізація — мова програмування — інтерфейс).
ООБД та її СУБД
Результатом суміщення можливостей (особливостей) баз даних і можливостей об'єктно-орієнтованих мов програмування є об'єктно-орієнтовані системи керування базами даних (ООСКБД). ООСКБД дозволяє працювати з об'єктами баз даних так само, як з об'єктами у програмуванні в ООМП. ООСКБД розширює мови програмування, прозоро додаючи довгочасні дані, керування паралелізмом, поновлення даних, асоційовані запити та інші можливості.
Деякі об'єктно-орієнтовані бази даних розроблені для щільної взаємодії з такими об'єктно-орієнтованими мовами програмування як Python, Java, C#, Visual Basic .NET, C++, Objective-C і Smalltalk; інші мають свої власні мови програмування. ООСКБД використовують точно таку же модель, що й об'єктно-орієнтовані мови програмування.
СУБД повинна забезпечувати:
- довготермінове зберігання;
- використання зовнішньої пам'яті;
- паралелізм;
- відновлення;
- нерегламентовані запити.
Примітки
- Data Integration Glossary Архівовано 18 лютого 2012 у Wayback Machine., U.S. Department of Transportation, August 2001.
- Словарь по естественным наукам
- OLAP.
- IEEE Database Engineering, special issue on Object-Oriented Databases, F. Lochovski, ed., Dec. 1985
- Atkinson et al., 1989
- Термін «тип» більш відповідає поняттю абстрактного типу даних. У мовах програмування змінна оголошується із вказівкою на її тип. Компілятор може використати цю інформацію для перевірки операцій, що виконуються із змінною щодо сумісності з її типом, що дозволяє гарантувати коректність програмного забезпечення. З іншого боку, клас є шаблоном для створення об'єктів і надає методи, котрі можуть застосовуватись до цих об'єктів. Таким чином, поняття «клас» більшою мірою стосується часу виконання, аніж часу компіляції
Література
- Чертовской В.Д. Базы и банки данных. Учебное пособие. Московский государственный университет печати. Архів оригіналу за 8 лютого 2012. Процитовано 7 травня 2011.
Див. також
- Об'єктно-орієнтована СКБД
- Об'єктно-реляційнне відображення (ORM)
Посилання
- С.Д. Кузнецов. Объектно-ориентированные базы данных - основные концепции, организация и управление: краткий обзор (рос.). CIT Forum. Архів оригіналу за 8 лютого 2012. Процитовано 12 червня 2011.
- С.Д. Кузнецов. Три манифеста баз данных: ретроспектива и перспективы (рос.). CIT Forum. Архів оригіналу за 8 лютого 2012. Процитовано 12 червня 2011.