Об'єктно-орієнтовані бази даних: поняття, основні концепції, управління, приклади
Опубликованно 10.06.2019 14:20
В об'єктно-орієнтованих базах даних (ООБД) користувачі можуть встановлювати операції з певною базою даних, яка складається з об'єктів, що можуть бути самих різних типів і для яких встановлені операції. Вони можуть ефективно обробляти двійкову інформацію, наприклад, мультимедійні об'єкти. Ще одним додатковим перевагою ООБД є те, що вона може бути запрограмована з невеликими процедурними відмінностями, не впливаючи на всю систему. Передумови створення стандарту
Історія об'єктно-орієнтовані бази даних ООБД починається з кінця минулого століття. Вони були створені, щоб задовольнити потреби нових додатків. При цьому передбачалося, що об'єктно-орієнтовані бази даних будуть революціонізувати в програмних системах протягом 90-х років. В даний час зрозуміло, що це не так. Однак відродження цієї концепції завдяки спільнот вільного і виявлення підходящих для нього додатків мотивує перегляд характеристик ООБД, яка є альтернативою всюдисущим реляційних баз даних.
Орієнтація на об'єкти забезпечує гнучкість для обробки деяких або всіх вимог і не обмежується типами даних і мовами запитів традиційних БД. Ключовою особливістю ООБД є можливість, яку вони надають розробникові, дозволяючи йому вказувати як структуру складних об'єктів, так і операції застосування. Ще однією причиною створення ООБД є зростаюче використання мов для розробки ПЗ.
Бази даних стали фундаментальними основами багатьох інформаційних систем, але традиційні БД складно використовувати, коли програми, які до них звертаються, написані на мові C ++, Smalltalk або Java. Наприклад, об'єктно-орієнтовані бази даних 1С були розроблені таким чином, щоб їх можна було безпосередньо інтегрувати з додатками, що використовують об'єктно-орієнтовані мови, прийнявши їх концепції: Visual Studio.Net,C ++, C #, Microsoft SQL Server та інші.
Основна перевага ООБД — повне усунення необхідності в RMs1 (імпеданс) з подальшим поліпшенням продуктивності.
Недоліки: Дуже примітивні консультаційні механізми, без самостійного стандарту прийнятої платформи. Неможливість збережених процедур, оскільки з об'єктами можна ознайомитися лише в клієнті. Незрілість на ринку. Немає фізичної групування об'єктів. Парадигма об'єкта
Об'єктно-орієнтовані бази даних - це програмована БД, яка зберігає складні дані і їх взаємозв'язку безпосередньо, без призначення рядків і стовпців, що робить їх більш придатними для додатків, що працюють з великими пакетами. Об'єкти мають відношення «багато до багатьох» і доступні через використання вказівників, які пов'язані з ними для встановлення відносин. Як і будь-яка функціональна, ООБД надає середовище для розробки додатків і постійний репозиторій, готовий до експлуатації. Вона зберігає і маніпулює інформацією, яка може бути оцифроване у вигляді об'єктів, забезпечує швидкий доступ і надає великі можливості обробки.
Основні поняття, використовувані в об'єктно-орієнтованої бази даних: ідентичність об'єктів; тип конструктора; сумісність з мовами; ієрархії типів і спадкування; обробка складних об'єктів; поліморфізм і перевантаження операторів; створення версій.
Для того щоб повністю розглянути всі аспекти, які поняття характеризують об'єктно-орієнтовану базу даних, важливо відзначити всі важливі парадигми об'єкта: Інкапсуляція — властивість, яка дозволяє приховати інформацію для решти об'єктів, запобігаючи тим самим неправильний доступ або конфлікти. Спадкування — властивість, за допомогою якої об'єкти наслідують поведінку в ієрархії класів. Поліморфізм — властивість операції, з допомогою якого вона може застосовуватися до різних типів об'єктів. Інтерфейс або підпис операції включає в себе ім'я та типи даних аргументів або параметрів. Реалізація або метод операції вказується окремо і може бути змінена без впливу на інтерфейс. Власні прикладні програми можуть працювати з даними, викликаючи зазначені операції через їх імена і аргументи, незалежно від того, яким чином вони були реалізовані. Класи і функціональність
Розглядаючи концепцію класів у ООБД, потрібно розрізняти терміни «клас» і «тип». Тип застосовується для опису набору об'єктів зі схожою поведінкою. У цьому сенсі він залежить від того, які операції можуть бути викликані на об'єкті. Клас — це набір об'єктів, які мають однакову внутрішню структуру, тому він визначає реалізацію, а тип описує спосіб використання.
Термін «створення екземплярів» націлений на той факт, що конкретизацію класу можна застосовувати для освіти набору об'єктів, які мають однакову структуру і поведінку, встановлюються класом.
Особливість, яка дуже важлива для еволюції об'єктів, полягає в тому, що він може змінити свій клас, у тому числі атрибути і операції, при цьому зберігаючи ідентичність. Це вимагає наявності механізму для обробки виникає семантичної цілісності.
Спадкування об'єктно-орієнтованої бази даних організації дозволяє визначити клас, як підклас вже існуючого суперкласу. Він буде успадковувати всі атрибути і методи від останнього і може додатково визначати свої власні. Ця концепція є важливим механізмом підтримки повторного використання. Однакові частини структури двох різних класів можуть бути визначені тільки один раз в загальному суперклассе, таким чином, буде написано менше коду. Є деякі системи, що дозволяють класу бути підкласом у більш, ніж одного суперкласу. Ця функція називається множинним спадкуванням, на відміну від одиночного спадкування. Приклад об'єктно-орієнтованої бази даних
Часто буває корисно використовувати одне і те ж ім'я для різних, але схожих методів суперкласу media з класів picture і video. Багато файли можуть проглядатися різними глядачами. У них часто виникає потреба переглядати всі фото та відео за допомогою методу «перегляд», і повинна бути запущена відповідна програма. При виклику функції та передачі посилання на відео запускається медіаплеєр. Для реалізації цієї можливості, перш за все, необхідно визначити операцію «подання» в загальному суперклассе media з класів picture і video. Кожен з підкласів перевизначає операцію перегляду для своїх конкретних потреб. Це призводить до різних методів, які мають одне і те ж ім'я операції. У цьому разі використання цієї функції має важливу перевагу. Структура ООБД
Об'єктно-орієнтована парадигма заснована на інкапсуляції даних і коду, що відноситься до кожного об'єкту в одному модулі. Концептуально всі взаємодії між ним і рештою частиною системи здійснюються за допомогою повідомлень. Отже, інтерфейс між ними визначається дозволеним набором.
Загалом, кожен об'єкт пов'язаний з набором: Змінних, які містять дані об'єкта і відповідають атрибутам моделі ER. Повідомлень, на які він відповідає. Кожен може мати або ні параметри, один, або декілька. Методів, кожен з яких є кодом, що реалізує повідомлення і повертає значення у відповідь на нього.
Повідомлення в ГО-середовищі не передбачає використання фізичних смс в комп'ютерних мережах. Навпаки, це відноситься до обміну запитами між об'єктами незалежно від правильних деталей їх реалізації. Іноді вираз викликає метод, щоб ініціювати факт надсилання повідомлення об'єкту, і використовує виконання відповідного методу. Ідентичність об'єктів
Система об'єктно-орієнтованих баз даних надає унікальну ідентифікацію кожному незалежному об'єкта, що зберігається в базі даних. Він зазвичай реалізується за допомогою унікального ідентифікатора об'єкта, згенерованого системою, або OID. Значення OID невидимо для зовнішнього користувача, але система використовує його всередині для управління посиланнями між об'єктами.
Основна властивість OID - бути незмінним. Значення OID для конкретного об'єкта ніколи не повинно змінюватися. Це зберігає ідентичність представляється реального світу. Також бажано, щоб кожен OID використовувався тільки один раз, навіть якщо він вилучений з бази даних, його OID не повинен бути призначений іншому. Також часто вважається недоречним засновувати його на фізичному адресу об'єкта у сховищі, оскільки реорганізація їх у БД може змінити OID. Однак деякі системи використовують фізичну адресу в якості OID для збільшення ефективності отримання об'єктів. Об'єктно-орієнтована структура автоматично накладає реляційні обмеження, зазвичай більш застосовні: домен, ключ, цілісність об'єкта і посилальна цілісність. Три основних конструктора
У ООБД значення або стану складних об'єктів можуть бути створені з інших за допомогою конструкторів певних типів. Один із способів представлення їх полягає в тому, щоб розглядати кожен триплет (i, c, v), де i - унікальний ідентифікатор об'єкта (OID), c - конструктор, тобто покажчик того, як створюється значення об'єкта, а v є значенням або станом об'єкта. В залежності від моделі даних і системи ОО може бути кілька конструкторів.
Три основних конструктора об'єктно-орієнтованих баз даних: атомів; кортежів; наборів.
Інші більш загального користування — це списки і схеми. Існує також домен D, який містить всі основні атомарні значення, доступні безпосередньо в системі. Зазвичай вони включають цілі і дійсні числа, символьні рядки, дати і будь-які інші типи даних, які система обробляє безпосередньо. Як структура об'єктів, так і операції включені у визначення класів. Сумісність з мовами програмування
Основні концепції об'єктно-орієнтовані бази даних використовуються в якості інструментів проектування та кодифікуються для роботи з БД.
Існує кілька можливих мов, на яких ці поняття можуть бути інтегровані: Розширення мови для обробки даних, таких як SQL, шляхом додавання складних типів і ООП. Системи надають об'єктно-орієнтовані розширення для реляційних систем, звані об'єктно-орієнтованими реляційними системами. Застосовують існуючий об'єктно-орієнтована мова програмування і розширюють його для роботи з базами даних. Вони називаються постійними мовами програмування і дозволяють розробникам працювати безпосередньо з даними, без необхідності проходити через мову для обробки даних, таких як SQL. Вони називаються постійними, оскільки дані продовжують існувати після завершення програми, яка їх створила.
Приймаючи рішення про те, який варіант використовувати, потрібно мати на увазі, що постійні мови, як правило, є потужними, і відносно легко припуститися помилки програмування, які пошкоджують БД. Складність мов ускладнює автоматичну оптимізацію високого рівня, таку як скорочення дискового введення-виведення. У багатьох додатках можливість декларативних запитів має велике значення, але постійні мови в даний час не допускають такі запити без проблем. Ієрархія типів успадкування
Схеми об'єктно-орієнтованих баз даних зазвичай вимагають великої кількості класів. Однак кілька класів схожі один на одного.Щоб дозволити пряме подання подібностей між ними, потрібно помістити їх в ієрархію спеціалізацій. Ця концепція схожа на моделі ER. Спеціалізації класів називаються підкласами, які визначають додаткові атрибути і методи для існуючого класу. Об'єкти, створені за допомогою підкласи успадковують все від батьківського. Деякі з цих успадкованих характеристик, можливо, самі були запозичені від більш високих ієрархії.
Об'єкти вважаються складними тому, що вони вимагають значної області зберігання і не є частиною стандартних типів даних, які зазвичай пропонує управління об'єктно-орієнтованими базами даних (СООБД). Оскільки розмір об'єктів є значним, СООБД може отримати частину об'єкта і надати її прикладної програми до отримання всього об'єкта. А також може використовувати методи буфера і кешування для отримання частин об'єкта заздалегідь, до того, як прикладна програма одержить доступ до них.
ООБД дозволяє користувачам створювати нові типи, які включає в себе як структуру, так і операції, у цьому випадку - це система розширюваних типів. Можна створювати бібліотеки нових типів, визначаючи їх структуру та операції. Багато з них можуть зберігати і отримувати великий структурований об'єкт у формі рядків і символів або бітів, які передають «як є» в прикладну програму для інтерпретації.
Метод може безпосередньо звертатися до атрибутів цільового об'єкта по імені, включаючи будь-які, успадковані від батьківських класів, але повинен мати доступ до атрибутів інших об'єктів з вторинними сигналами. Концепція дозволяє пов'язувати одне і те ж ім'я або символ оператора з двома або більше різними реалізаціями його в залежності від типу об'єктів, до яких він застосовується. Створення додатків
Багато додатків баз даних, що використовують ОО-системи, вимагають наявності кількох версій одного і того ж об'єкта. Зазвичай обслуговування застосовуються до програмної системі по мірі зміни їх вимог, і включає в себе зміну деяких модулів розробки і реалізації. Якщо система вже працює, і якщо необхідно змінити один або кілька модулів, розробник повинен створити нову версію кожного з них, внісши зміни.
Слід зазначити, що може бути більш двох версій об'єкта, у випадку, якщо потрібні дві на додаток до оригінального модулю. Власні версії одного і того ж програмного модуля можуть оновлюватися одночасно. Це називається паралельним проектуванням об'єктно-орієнтованих баз даних. Однак завжди настає момент необхідності їх об'єднання, щоб гібридна ООБД включала зроблені зміни буде потрібно, щоб вони були сумісні. Об'єктно-орієнтовані умови
Всі комп'ютерні системи повинні мати властивості своєї архітектури, щоб їх можна було розглядати. Наприклад, система повинна мати таблиці, щоб вважатися реляційної. ООБД не є винятком і містить деякі базові властивості об'єктної архітектури. Проте в реальному світі багато з цих властивостей обговорюються, а деякі, такі як множинне спадкування, розглядаються, як удосконалення моделі об'єктно-орієнтована бази даних, а не як частина базової основи. Наприклад, у об'єктно-орієнтованій мові Smalltalk множинне спадкування не підтримується, навіть якщо воно вважається частиною об'єктної архітектури.
Методи класу визначають набір операцій, які можуть бути виконані над об'єктом. Наприклад, коли він застосовується до об'єкта, він або повертає значення, або виконує певну операцію для оновлення значень. Іноді методи не повертають його. Якби метод був розроблений, щоб оновити кількість пасажирів транспортного засобу, жодне значення не було б повернуто, але елемент даних в цільовому об'єкті змінив би його.
Об'єкти є фундаментальною концепцією в ООБД. По суті, об'єкти є абстрактним поданням речей реального світу, які зберігаються в ній. Об'єкт є екземпляром класу в тому сенсі, що він виключений з його визначення.
Можна думати про об'єкт, як про автономний пакет, який складається з трьох частин: Власна особиста інформація, значення даних. Приватні процедури, які будуть маніпулювати значеннями, через визначення класу. Відкритий інтерфейс, щоб цей об'єкт міг спілкуватися з іншими. Приклади ООБД
Використання ООБД спрощує концептуалізацію, оскільки більш природним чином представляти інформацію, яку необхідно зберегти. Для моделювання структури або логіки бази даних, використання діаграм класів, дозволяє ввести класи з їх структурними відносинами і спадкуванням. Для того щоб змоделювати частину динаміки, взаємодія і поведінка між об'єктами, діаграма послідовності буде використовуватися для представлення взаємодії між об'єктами, розташованих у часовій зв'язку, описуючи можливі стани, таким чином, щоб вони могли бути знайденими з урахуванням зміненого стану після виникнення події.
Приклад об'єктно-орієнтовані бази даних представлений нижче.
Вони мають ім'я і час життя, яке може бути короткочасним або постійним. Ключ ООБД — це здатність, яку вони надають розробникові, щоб вказати стільки структур і операцій будуть застосовані до них. Існує гнучкість і підтримка обробки складних типів даних. Можна створити класи і підкласи, наприклад, клієнтська база може мати підклас посилання цього клієнта, і він буде успадковувати всі атрибути та характеристики вихідного класу, такий підхід дозволяє швидко і гнучко обробляє складні дані.
Іван Фролов
Категория: Новости