Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OРГАНІЗАЦІЯ БАЗ ДАНИХ І ЗНАНЬ-ЛЕКЦІЯ.doc
Скачиваний:
0
Добавлен:
06.01.2020
Размер:
815.1 Кб
Скачать

2 Об'єктно-орієнтовані моделі даних (оомд)

Основні труднощі об'єктно-орієнтованого моделювання даних пов'язані з відсутністю розвинутого математичного апарату їх обробки.

Формальна основа ООМД передбачає:

  • виділення двох рівнів моделювання об'єктів: нижній (структурний) і верхній (поведінковий, маніпуляційний). На структурному рівні підтримуються складні об'єкти, їх ідентифікація і різновид зв'язку "IS-A". База даних - це набір елементів даних, пов'язаних відношеннями "ВХОДИТЬ ДО КЛАСУ" або "Є АТРИБУТОМ". Отже, БД може розглядатися як орієнтований граф. В якості первинних концепцій схемного рівня ООБД виступають типи і класи: тип припускає наявність деякої множини значень, обумовленої структурою даних цього типу; клас також припускає наявність множини об'єктів, але ця множина визначається користувачем. Таким чином, типи і класи грають різну роль й мають бути одночасно підтриманими;

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

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

  • Значення можуть бути атомарними або структурними.

  • Структурні значення будуються зі значень або об'єктів, поданих своїми ідентифікаторами, за допомогою конструкторів множин, кортежів і списків.

  • Елементи структурних значень доступні за допомогою визначених операцій (примітивів). Можливі два види організації даних: класи, прикладами яких є об'єкти, що інкапсулюють дані і поведінку, і типи, прикладами яких є значення. Кожному класу співставляється тип, що описує структуру примірників класу.

  • Типи визначаються рекурсивно на основі атомарних типів і раніше визначених типів і класів із застосуванням конструкторів.

  • Поведінкова сторона класу визначається набором методів. Об'єкти і значення можуть бути іменованими, що визначає тривалість їх збереження (persistency): будь-які іменовані об'єкти або значення довготривалі; будь-який об'єкт або значення, що є частиною іншого іменованого об'єкта або значення, долготривалий.

  • Метод - програмний код, прив'язаний до конкретного класу і застосовується до об'єктів цього класу.

Визначення методу в СУБД O2 відбувається у два етапи:

  • Обява сигнатури методу, тобто його імені; класу, типів або класів аргументів; типу або класу результату. При цьому, методи можуть бути публічними (доступними з об'єктів інших класів) або приватними (доступними тільки всередині даного класу).

  • Реалізація класу на одній з мов програмування O2. В моделі підтримується множинне спадкування класів на основі відношення супертип/підтип.У підкласі допускається додавання і/або перевизначення атрибутів і методів.

При множинному спадкуванні можливі двозначності (по назві атрибутів і методів) розвязуютсья або шляхом перейменування, або явною вказівкою на джерело спадкування. Об'єкт підкласу є об'єктом кожного суперкласу, на основі якого даний підклас породжений. Підтримується визначений клас "Оbject", що є коренем дерева класів; будь-який інший клас вважається неявним спадкоємцем класу "Object" і успадковує визначені методи ("is_same", "is_value_equal", тощо).

Характерною особливістю моделі O2 є можливість оголошення додаткових "виключних" атрибутів і методів для названих об'єктів, тобто конкретний іменований об'єкт-представник класу може мати тип, що є підтипом типу класу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]