Об'єктно-орієнтована база даних (ООБД) дозволяє програмістам, що працюють із мовами третього покоління, інтерпретувати всі свої інформаційні сутності як об'єкти, що зберігаються в оперативній пам'яті. Додатковий інтерфейсний рівень абстракції забезпечує перехоплення запитів, що звертаються до тих частин бази даних, які перебувають у постійному сховищі на диску. Зміни, внесені в об'єкти, оптимальним образом переносяться з пам'яті на диск.
Приклади ООСУБД
У даний час[коли?] налічується понад 300 об'єктно-орієнтованих СУБД (ООСУБД), дані деяких наведено в табл. 1
Таблиця 1
Фірма виробник
|
Назва ООСУБД
|
Засоби розробки
|
Підхід до розробки
|
Objectivity
|
Objectivity / DB
|
C, C ++, SQL, Java
|
Розширення об'єктно-орієнтованих бібліотек класів
|
Poet Software
|
Poet
|
C, C ++, ODBC, Java
|
Object Design
|
Object Store
|
C, C ++, Java
|
Ontos Inc.
|
|
C ++, Java
|
Versant Object Technology
|
Ontos DB, Versant
|
C ++, Java
|
Computer Associate
|
Jasmine
|
C ++, Java
|
НГШ «Інтелтек Плюс»
|
ODB-Jupiter
|
C ++
|
02 Technology
|
02
|
C ++, Java
|
Вставка об'єктно орієнтованої мови БД н звичайний базова мова
|
GemStone Inc.
|
GemStone
|
C ++, Java
|
Розширення мови (С ++) можливостями роботи з БД
|
I nterSystems
|
CACHE
|
Semantic Information Manager, Cache Object Script
|
Нова мова бази даних або моделі даних
|
Переваги
Перевагою об'єктно-орієнтованих баз даних є спрощений код. Додатки одержують можливість інтерпретувати дані в контексті тієї мови програмування, на якому вони написані. Реляційна база даних повертає значення всіх полів у текстовому виді, а потім вони приводяться до локальних типів даних. В об'єктно-орієнтованих базах даних цей етап ліквідований. Методи маніпулювання даними завжди залишаються однаковими незалежно від того, перебувають дані на диску або в пам'яті.
Структури даних
Дані в об'єктно-орієнтованих базах даних здатні прийняти вид будь-якої структури, яку можна виразити використовуваною мовою програмування. Відносини між сутностями також можуть бути довільно складними. Об'єктно-орієнтована база даних управляє кеш-буфером об'єктів, переміщаючи об'єкти між буфером і дисковим сховищем у міру необхідності.
За допомогою об'єктно-орієнтованих баз даних вирішуються дві проблеми. По-перше, складні інформаційні структури виражаються в них краще, ніж у реляційних базах даних, а по-друге, усувається необхідність транслювати дані з того формату, що підтримується в СКБД. Наприклад, у реляційній СКБД розмірність цілих чисел може становити 11 цифр, а у використовуваній мові програмування — 16. Програмістові прийде враховувати цю ситуацію.
Додаткові функції
Об'єктно-орієнтовані СКБД виконують багато додаткових функцій. Це окупається сповна, якщо відносини між даними дуже складні. У такому випадку продуктивність об'єктно-орієнтованих баз даних виявляється вище, ніж у реляційних СКБД. Якщо ж дані менш складні, додаткові функції виявляються надлишковими. В об'єктній моделі даних підтримуються нерегламентовані запити, але мовою їхнього складання не обов'язково є SQL. Логічне подання даних може не відповідати реляційній моделі, тому застосування мови SQL стане безглуздим. Найчастіше зручніше обробляти об'єкти в пам'яті, виконуючи відповідні види пошуку.
Недоліки
Великим недоліком об'єктно-орієнтованих баз даних є їхні тісні зв'язки із застосовуваною мовою програмування. До даних, що зберігаються в реляційній СКБД, можуть звертатися будь-які додатки, тоді як, приміром, Java-об'єкт, поміщений в об'єктно-орієнтовану базу даних, буде становити інтерес лише для додатків, написаних на Java.
Джерела