Об'єктно-орієнтовані бази даних
Об'єктно-орієнтовані бази даних
План
1. Основні поняття об'єктно-орієнтованих систем....
2. Проектування об'єктно-орієнтованих баз даних
3. Об'єктно-реляційні бази даних
Основні поняття об'єктно-орієнтованих систем
Об'єктно-орієнтована база даних - база даних, яка створюється і використовується в середовищі СУБД, яке засновано на принципах об'єктно-орієнтованого підходу і підтримує об'єктну модель даних. Об'єктна база даних являє собою сукупність взаємозв'язаних об'єктів, які відповідають певній схемі.
Об'єкт являє собою концептуальну модель реального світу, в яку вбудовані представлення даних (атрибути) і їх поведінка (методи). Кожен об'єкт має унікальний ідентифікатор OID (Object Identifier, ідентифікатор об'єкта), який не залежить від його атрибутів. Атрибути входять в склад об'єкта і кожен атрибут може посилатися на інший об'єкт. Стан об'єкта визначається набором значень, які об'єкт має в даний момент часу. Методи реалізують поведінку об'єкта. Методи викликають за допомогою повідомлень. Реалізація методів і представлення даних інкапсульовані, тобто приховані від зовнішніх джерел.
Схожі об'єкти групуються в класи. Клас являє собою колекцію об'єктів зі спільною структурою і поведінкою. Кожен об'єкт являє собою екземпляр класа або екземпляр об'єкта. Класи організовуються в ієрархію класів. Об'єкт наслідує атрибути і методи всіх своїх суперкласів.
Об'єктна модель даних характеризується рядом властивостей.
1. Основними компонентами є об'єкти і літерали. Об'єкт - це екземпляр сутності. Він має унікальний ідентифікатор. Літерал - конкретне значення. Він не має ідентифікатора.
2. Об'єкт має властивості, в тому числі атрибути і зв'язки з іншими об'єктами. Множина поточних значень всіх властивостей об'єкта визначає його стан.
3. Об'єкти і літерали мають типи. Кожен тип має власний домен. Типи можуть володіти поведінкою. Всі об'єкти одного типу володіють однаковою поведінкою і мають домени, що притаманні цьому типу.
4. Дії, які може виконувати об'єкт називаються операціями.
5. База даних зберігає об'єкти і заснована на схемі даних, що визначається мовою визначення даних. БД містить екземпляри типів, що визначаються схемою.
В табл. 11.1 наведені співвідношення термінів реляційної БД і об'єктно-орієнтованої БД.
Однією із суттєвих відмінностей об'єктних БД від реляційних є можливість створення і використання нових типів даних (абстрактні типи даних).
Проектування об'єктно-орієнтованих баз даних
Проектування об'єктно-орієнтованих баз даних (ООБД) має багато спільних рис з проектуванням реляційних БД і в цілому можна застосовувати методологію концептуального і логічного моделювання, яка застосовується для створення традиційних БД. Відмінності полягають у такому.
Процес проектування реляційних БД в основному направлений на ідентифікацію елементів даних, а не на визначення операцій з даними. Значна частина обмежень на дані і перетворення даних зазвичай розглядається на більш
пізніх етапах проектування БД і реалізується на програмному коді застосувань. Операції не є частиною моделі БД.
При проектуванні ООБД визначаються як дані, так і процедури їх обробки. На етапі реалізації обов'язково повинні використовуватися об'єктно-орієнтовані мови. При проектуванні ООБД дані і процедури вважаються єдиною сутністю і об'єкти розглядаються як окремі модулі.
Нормалізація зберігає своє значення і дозволяє зменшити збитковість даних. Для ідентифікації кожного об'єкта використовується унікальний ідентифікатор об'єкта. Кожен атрибут об'єкта залежить від ідентифікатора. Також для ідентифікації атрибутів об'єкта може вводитись первинний ключ. Схема БД містить опис структури даних об'єкта, обмеження, а також правила поведінки об'єкта.
В об'єктно-орієнтованих моделях є зв'язки двох типів:
- посилання між класами;
- наслідування в ієрархії класів.
Реляційні моделі використовують зв'язки на основі значень. Це означає, що зв'язки між сутностями встановлюються через спільні значення в одному або декількох атрибутах різних сутностей. На відміну від цього в об'єктно- орієнтованих моделях даних використовується підхід заснований на ідентифікаторах (OID), тому зв'язки не залежать від стану об'єкта.
В об'єктно-орієнтованих моделях даних створюється схема, в якій зв'язки складають частину структури БД. Об'єктно-орієнтовані БД є навігаційними: доступ до даних виконується за допомогою зв'язків, які зберігаються всередині самих даних. Об'єктно-орієнтовані моделі даних також передбачають доступ, орієнтований на множинність значень. Навігаційний доступ реалізується за допомогою ідентифікаторів OID.
Асоціативний доступ, орієнтований на множинність об'єктів, в об'єктно-орієнтованих моделях даних реалізується за допомогою явно визначених методів. При проектуванні операції для маніпуляції екземплярами об'єктів в цьому випадку реалізуються в схемі БД.
Процес об'єктно-орієнтованого проектування є ітеративним і послідовним. На рис. 11.1 показана послідовність об'єктно-орієнтованого проектування.
Модель, що отримується в результаті проектування може мати зв'язки "один до одного", "один до багатьох", "багато до багатьох", а також рекурсивні зв'язки, що пов'язано з більшою потужністю об'єктно-орієнтованої моделі. В об'єктно- орієнтованій моделі даних зв'язки між об'єктами представляються атрибутами, які реалізуються об'єктними ідентифікаторами OID.
Приклад. Зв'язок між об'єктами типу 1:1 представляється за рахунок додавання посилкових атрибутів у обидва об'єкти (рис. 11.2). Додаткові атрибути посилаються на ідентифікатор об'єкта (OID).
Зв'язок між об'єктами типу 1:M представляється за рахунок додавання посилкового атрибуту в перший об'єкт, який посилається на другий об'єкт, і атрибуту, який містить набір покажчиків на перший об'єкт, в другий об'єкт (рис. 11.3).
Зв'язок між об'єктами типу N:M представляється за рахунок додавання посилкового атрибуту, який містить набір покажчиків, в кожен об'єкт (рис. 11.4).
Об'єктно-орієнтовані СУБД являють собою результат комбінування об'єктно-орієнтованих можливостей
(поліморфізм, наслідування, інкапсуляція) з можливостями БД (цілісність, безпека, управління транзакціями і паралельним виконанням, резервне копіювання, відновлення, маніпулювання даними).
Об'єктно-орієнтована СУБД повинна відповідати таким вимогам:
- підтримка складних об'єктів;
- підтримка унікальної ідентифікації об'єктів (OID);
- підтримка класів або типів;
- підтримка наслідування;
- інкапсуляція об'єктів;
- управління БД;
- забезпечення паралельної роботи декількох користувачів;
- можливість відновлення після перебоїв;
- підтримка запитів до БД на мові високого рівня;
- запис і зчитування даних із зовнішніх пристроїв пам'яті.
Питаннями розвитку об'єктно-орієнтованих систем займається OMG (Object Management Group) - робоча група по розвитку стандартів об'єктного програмування. Цією групою розроблена мова UML (Unified Modeling Language), яка використовується для моделювання компонентів БД. Групою OMG також були створені стандарти об'єктів OMA (Object Management Architecture), які допускають взаємодію об'єктів на різних платформах і системах.
До переваг об'єктно-орієнтованих баз даних можна віднести такі:
- можливість включення детальної семантичної інформації в БД;
- можливість розширення базових типів даних, підтримка складних вкладених структур, визначення довільних структур (мультимедіа і т.ін.);
- можливість багаторазового використання класів, прискорення розробки застосувань за рахунок наслідування.
До недоліків об'єктно-орієнтованих баз даних належить:
- відсутність достатньо проробленої теоретичної бази у об'єктної моделі;
- складність структури;
- навігаційне управління даними, складність додавання атрибутів і методів;
- відсутність стандартної мови запитів.
Об'єктно-реляційні бази даних
Об'єктно-реляційна БД - база даних, в якій підтримується як реляційне, так і об'єктне представлення. В основі цих баз лежить розширення реляційної моделі. До характеристик цієї моделі можна віднести:
- визначення користувачем абстрактних типів даних;
- підтримку наслідування;
- можливість створювати більш складні у порівнянні з реляційною БД моделі;
- застосування унікальних ідентифікаторів, що генеруються системою.
Об'єктно-реляційні БД мають такі особливості:
- підтримують структурні типи атрибутів (множини. мультимножини і т.ін.), тобто компонент кортежу одного відношення здатний, в свою чергу, зберігати інше відношення;
- дозволяють визначати спеціальні операції, які виконуються над даним деякого типу, який оголошений користувачем;
- кортежі виконують функції об'єктів, тому у багатьох випадках вони мають унікальні ідентифікатори, які
дозволяють відрізняти один кортеж від іншого при рівних значеннях у всіх компонентах; - дозволяється використовувати посилання на кортежі відношення.
Література
1. Гайдамакин Н.А. Автоматизированные информационные системы, базы и банки данных. Вводный курс. - М.: Гелиос АРВ, 2002. - 368 с.
2. Гайна Г.А. Організація баз даних і знань. Мови баз даних: Конспект лекцій.-К .:КНУБА, 2002. - 64 с.
3. Гайна Г.А., Попович Н.Л. Організація баз даних і знань. Організація реляційних баз даних: Конспект лекцій. - К.:КНУБА, 2000. - 76 с.
4. Гарсиа-Молина Г., Ульман Д., Уидом Д. Системы баз данных.-М.: Издательский дом "Вильямс", 2003. - 1088 с.
5. Григорьев Ю.А., Ревунков Г.И. Банки данных.-М.: Изд-во МГТУ им. Н.Э.Баумана, 2002. - 320 с.
6. Грофф Дж., Вайнберг П. Энциклопедия SQL. - СПб.: Питер, 2003. - 896 с.
7. Дейт К.Дж. Введение в системы баз данных. - К.: Диалектика, 1998. - 784 с.
8. Диго С.М. Проектирование и использование баз данных.-М.: Финансы и статистика, 1995. - 208 с.
9. Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001. - 304 с.
10. Когаловский М.Р. Энциклопедия технологий баз данных.- М.: Финансы и статистика, 2002. - 800 с.
11. Конноли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. - М.: Издательский дом "Вильямс", 2003. - 1440 с.
12. Кренке Д. Теория и практика построения баз данных. - СПб.: Питер, 2003. - 800 с.
13. Малыхина М.П. Базы данных: основы, проектирование, использование. - СПб.: БХВ-Петербург, 2004. - 512 с.
14. Роб П., Коронел К. Системы баз данных: проектирование, реализация и управление. - СПб.: БХВ-Петербург, 2004. - 1040 с.