Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекц4 Моделі даних Укр!.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
174 Кб
Скачать
☆

4.6. Об′єктно - орієнтована модель даних

В об′єктно - орієнтованій моделі представлення даних є можливість ідентифікувати окремі записи бази. Між записами бази даних і функціями їхньої обробки встановлюються взаємозв'язки за допомогою механізмів, подібних відповідним засобам в об′єктно - орієнтованих мовах програмування.

Структура об′єктно - орієнтованої БД графічно представляється у виді дерева, вузлами якого є об'єкти. Властивості об'єктів описуються деяким стандартним типом (наприклад, строковим - string) чи типом, який створюється користувачем (визначається як class).

Значенням властивості типу string є рядок символів. Значення властивості типу class є об'єкт, що є екземпляром відповідного класу. Кожен об'єкт-екземпляр класу вважається нащадком об'єкта, у якому він визначений як властивість. Об'єкт-екземпляр класу належить своєму класу і має одного батька. Родові відносини в БД утворять зв'язну ієрархію об'єктів. Приклад логічної структури об′єктно - орієнтованої БД бібліотечної справи приведений на рис. 4.9.

Тут об'єкт типу БІБЛІОТЕКА є батьківським для об'єктів-екземплярів класів АБОНЕНТ, КАТАЛОГ і ВИДАЧА. Різні об'єкти типу КНИГА можуть мати одного чи різних батьків. Об'єкти типу КНИГА, що мають одного батька, повинні розрізнятися, принаймні , інвентарним номером (унікальний для кожного екземпляра книги), але мають однакові значення властивостей ІSBN, УДК, назва й автор.

Логічна структура об′єктно-орієнтованої БД зовні схожа на структуру ієрархічної БД. Основна відмінність між ними складається в методах маніпулювання даними.

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

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

Розглянемо коротко поняття інкапсуляції, спадкування і поліморфізму стосовно до об′єктно - орієнтованої моделі БД.

Інкапсуляція обмежує область видимості імені властивості межами того об'єкта, у якому воно визначено. Так, якщо в об'єкт типу КАТАЛОГ додати властивість, що задає телефон автора книги і має назву телефон, то ми отримаємо однойменні властивості в об'єктів АБОНЕНТ і КАТАЛОГ. Зміст такої властивості буде визначатися тим об'єктом, у який воно інкапсуліровано.

Спадкування, навпаки, поширює область видимості властивості на всіх нащадків об'єкта. Так, всім об'єктам типу КНИГА, що є нащадками об'єкта типу КАТАЛОГ, можна приписати властивості об'єкта-батька: іsbn, УДК, назва й автор. Якщо необхідно розширити дію механізму спадкування на об'єкти, що не є безпосередніми родичами (наприклад, між двома нащадками одного батька), то в їхньому загальному предку визначається абстрактна властивість типу abs. Так, визначення абстрактних властивостей квиток і номер в об'єкті БІБЛІОТЕКА приводить до спадкування цих властивостей усіма дочірніми об'єктами АБОНЕНТ, КНИГА і ВИДАЧА. Не випадково тому значення властивості квиток класів АБОНЕНТ і ВИДАЧА, показаних на рисунку, будуть однаковими - 00015.

Поліморфізм в об′єктно - орієнтованих мовах програмування означає здатність одного програмного коду працювати з різнотипними даними. Іншими словами, він означає допустимість в об'єктах різних типів мати методи (процедури чи функції) з однаковими іменами. Під час виконання об'єктної програми однакові методи оперують з різними об'єктами в залежності від типу аргументу. Стосовно до нашої об′єктно - орієнтованої БД поліморфізм означає, що об'єкти класу КНИГА, що мають різних батьків із класу КАТАЛОГ, можуть мати різний набір властивостей. Отже, програми роботи з об'єктами класу КНИГА можуть містити поліморфний код.

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

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

Недоліками цієї моделі є висока понятійна складність, незручність обробки даних і низька швидкість виконання запитів.

До об′єктно - орієнтованих СУБД відносяться: РОЕТ (ПОЕТ Software), Jasmіne (Computer Assocіates), Versant (Versant Technologіes), O2 (Ardent Software), ODB-Jupіter (науково-виробничий центр "Интелтек Плюс"), а також Іrіs, Orіon і Postgres.