Об'єктно-орієнтовані бази даних: поняття, основні концепції, управління, приклади

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

Передумови створення стандарту

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

Передумови створення стандарту

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

Бази даних стали фундаментальними основами багатьох інформаційних систем, але традиційні БД важко використовувати, коли програми, які до них звертаються, написані на мові C ++, Smalltalk або Java. Наприклад, об`єктно-орієнтовані бази даних 1С були розроблені таким чином, щоб їх можна було безпосередньо інтегрувати з додатками, що використовують об`єктно-орієнтовані мови, прийнявши їх концепції: Visual Studio.Net, C ++, C#, Microsoft SQL Server та інші.

Основна перевага ООБД-повне усунення необхідності в RMs1 (імпеданс) з подальшим поліпшенням продуктивності.

Основна перевага ООБД

Недостатки:

  1. Дуже примітивні консультаційні механізми, без самостійного стандарту прийнятої платформи.
  2. Неможливість збережених процедур, оскільки з об`єктами можна ознайомитися тільки в клієнті.
  3. Незрілість на ринку.
  4. Немає фізичного групування об`єктів.

Парадигма об`єкта

Парадигма об`єкта

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

Основні поняття, що використовуються в об`єктно-орієнтованій базі даних:

  • ідентичність об`єктів;
  • Тип конструктора;
  • сумісність з мовами;
  • ієрархії типів та успадкування;
  • обробка складних об`єктів;
  • поліморфізм та перевантаження операторів;
  • створення версій.
Створення версій

Для того щоб повністю розглянути всі аспекти, які поняття характеризують об`єктно-орієнтовану базу даних, важливо відзначити всі важливі парадигми об`єкта:

  1. Інкапсуляція-властивість, яка дозволяє приховати інформацію для інших об`єктів, запобігаючи тим самим неправильний доступ або конфлікти.
  2. Успадкування-властивість, за допомогою якого об`єкти успадковують поведінку в ієрархії класів.
  3. Поліморфізм-властивість операції, за допомогою якого вона може застосовуватися до різних типів об`єктів.
  4. Інтерфейс або підпис операції включає ім`я та типи даних її аргументів або параметрів.
  5. Реалізація або метод операції вказується окремо і може бути змінена без впливу на інтерфейс. Призначені для користувача прикладні програми можуть працювати з даними, викликаючи зазначені операції через їх імена і аргументи, незалежно від того, яким чином вони були реалізовані.

Класи та функціональність

Класи та функціональність

Розглядаючи концепцію класів в ООБД, потрібно розрізняти терміни "клас" і»тип". Тип застосовується для опису набору об`єктів зі схожою поведінкою. У цьому сенсі він залежить від того, які операції можуть бути викликані на об`єкті. Клас-це набір об`єктів, що мають однакову внутрішню структуру, тому він визначає реалізацію, а тип описує спосіб використання.

Термін "створення екземплярів" націлений на той факт, що конкретизацію класу можна застосовувати для утворення набору об`єктів, які мають однакову структуру і поведінку, що встановлюються класом.

Особливість, яка дуже важлива для еволюції об`єктів, полягає в тому, що він може змінити свій клас, в тому числі атрибути та операції, при цьому зберігаючи ідентичність. Це вимагатиме механізму обробки виникаючої семантичної цілісності.

Успадкування об`єктно-орієнтованої бази даних організації дозволяє визначити клас, як підклас вже існуючого суперкласу. Він буде успадковувати всі атрибути і методи від останнього і може додатково визначати свої власні. Ця концепція є важливим механізмом підтримки повторного використання. Однакові частини структури двох різних класів можна визначити лише один раз у загальному суперкласі, таким чином буде написано менше коду. Є деякі системи, що дозволяють класу бути підкласом у більш, ніж одного суперкласу. Ця функція називається множинним успадкуванням, на відміну від одиночного успадкування.

Приклад об`єктно-орієнтованої бази даних

Часто корисно використовувати одне і те ж ім`я для різних, але подібних методів суперкласу медіа з КЛАСІВ picture та video. Багато файлів можуть переглядати різні глядачі. У них часто виникає потреба переглядати всі фото і відео за допомогою методу "перегляд" «і повинна бути запущена відповідна програма. При виклику функції і передачі посилання на відео запускається медіаплеєр. Для реалізації цієї можливості, перш за все, необхідно визначити операцію "представлення" в загальному суперкласі media з КЛАСІВ picture і video. Кожен з підкласів перевизначає операцію перегляду для своїх конкретних потреб. Це призводить до різних методів, які мають однакову назву операції. У цьому випадку використання цієї функції має важливу перевагу.

Структура ООБД

Структура ООБД

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

Загалом, кожен об`єкт пов`язаний з набором:

  1. Змінних, які містять дані об`єкта та відповідають атрибутам моделі ER.
  2. Повідомлень, на які він відповідає. Кожне може мати чи ні Параметри, один, або кілька.
  3. Методів, кожен з яких є кодом, що реалізує повідомлення і повертає значення у відповідь на нього.

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

Ідентичність об`єктів

Ідентичність об`єктів

Система об`єктно-орієнтованих баз даних надає унікальну ідентифікацію кожному незалежному об`єкту, що зберігається в базі даних. Зазвичай він реалізується за допомогою унікального ідентифікатора об`єкта, Згенерованого системою, або OID. Значення OID невидиме для зовнішнього користувача, але система використовує його внутрішньо для управління посиланнями між об`єктами.

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

Три основних конструктора

Три основних конструктора

В ООБД значення або стани складних об`єктів можуть бути створені з інших за допомогою конструкторів певних типів. Один із способів подання їх полягає в тому, щоб розглядати кожен, як триплет (i, c, v), де i-унікальний ідентифікатор об`єкта (OID), c - конструктор, тобто покажчик того, як створюється значення об`єкта, а v є значенням або станом об`єкта. Залежно від моделі даних і системи ОО може бути кілька конструкторів.

Три основні конструктори об`єктно-орієнтованих баз даних:

  • атом;
  • кортеж;
  • набір.

Інші більш загального користування-це списки і схеми. Існує також домен D, який містить усі основні атомні значення, доступні безпосередньо в системі. Зазвичай вони включають цілі та дійсні числа, рядки символів, дати та будь-які інші типи даних, які система обробляє безпосередньо. Як структура об`єктів, так і операції включені в визначення класів.

Сумісність з мовами програмування

Основні концепції об`єктно-орієнтовані бази даних використовуються як інструменти проектування та кодифікуються для роботи з БД.

Існує кілька можливих мов, на яких ці поняття можуть бути інтегровані:

  1. Розширення мови для обробки даних, таких як SQL, шляхом додавання складних типів та ООП. Системи забезпечують об`єктно-орієнтовані розширення для реляційних систем, які називаються об`єктно-орієнтованими реляційними системами.
  2. Застосовують існуючу об`єктно-орієнтовану мову програмування і розширюють її для роботи з базами даних. Вони називаються постійними мова програмування і дозволяють розробникам працювати безпосередньо з даними, без необхідності проходити через мова для обробки даних, таких як SQL. Вони називаються постійними, оскільки дані продовжують існувати після завершення програми, яка їх створила.

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

Ієрархія типів успадкування

Об`єктно-орієнтовані схеми баз даних зазвичай вимагають великої кількості класів. Однак кілька класів схожі один на одного.Щоб дозволити пряме представлення подібностей між ними, потрібно помістити їх в ієрархію спеціалізацій. Ця концепція схожа на моделі ER. Спеціалізації КЛАСІВ називаються підкласами, які визначають додаткові атрибути та методи для існуючого класу. Об`єкти, створені за допомогою підкласів, успадковують все від батьківського. Деякі з цих успадкованих характеристик, можливо, самі були запозичені у вищих в ієрархії.

Об`єкти вважаються складними тому, що вони вимагають значної області зберігання і не є частиною стандартних типів даних, які зазвичай пропонує управління об`єктно-орієнтованими базами даних (СООБД). Оскільки розмір об`єктів є значним, СООБД може отримати частину об`єкта і надати її прикладній програмі до отримання всього об`єкта. А також може використовувати методи буфера і кешування для отримання частин об`єкта заздалегідь, до того, як прикладна програма отримає до них доступ.

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

Метод може безпосередньо отримувати доступ до атрибутів цільового об`єкта за назвою, включаючи будь-які, успадковані від батьківських класів, але повинен мати доступ до атрибутів інших об`єктів із вторинними сигналами. Концепція дозволяє пов`язувати одне і те ж ім`я або символ оператора з двома або більше різними реалізаціями його в залежності від типу об`єктів, до яких він застосовується.

Створення додатків

Створення додатків

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

Слід зазначити, що може бути більше двох версій об`єкта, в разі, якщо потрібні дві на додаток до оригінального модулю. Власні версії одного і того ж програмного модуля можуть оновлюватися одночасно. Це називається паралельним проектуванням об`єктно-орієнтованих баз даних. Однак завжди настає момент необхідності їх об`єднання, щоб Гібридна ООБД включала зроблені зміни потрібно, щоб вони були сумісні.

Об`єктно-орієнтовані умови

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

Методи для класу визначають набір операцій, які можуть бути виконані над об`єктом. Наприклад, коли він застосовується до об`єкта, він або повертає значення, або виконує якусь операцію для оновлення значень. Іноді методи не повертають його. Якби метод був розроблений, щоб оновити кількість пасажирів для транспортний засіб, жодне значення не було б повернуто, але елемент даних у цільовому об`єкті змінив би його.

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

Можна думати про об`єкт, як про автономному пакеті, який складається з трьох частин:

  1. Власна особиста інформація, значення даних.
  2. Приватні процедури, які будуть маніпулювати значеннями, через визначення класу.
  3. Відкритий інтерфейс, щоб цей об`єкт міг спілкуватися з іншими.

Приклади ООБД

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

Приклади ООБД

Приклад об`єктно-орієнтовані баз даних представлений нижче.

Приклади об`єктно-орієнтовані баз даних

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

Статті на тему