Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпаргалки на іспит з бд (1).docx
Скачиваний:
10
Добавлен:
23.04.2019
Размер:
3.74 Mб
Скачать

9.4. Об’єкти мови odl odmg: дерево об’єктів, система типів, властивості об’єктів.

B OOMD дані та методи, що їх опрацьовують, об'єднуються в структури, які називаються об'єктами. Типи об'єктів називаються класами. З точки зору баз даних є такі важливі особливості ООМ:

1)підтримка структур даних , що мають довільний рівень складності;

2)ідентифікованість та унікальність об'єктів;

3)належність об'єктів класам;

4)інкапсуляція;

5)успадкування та ієрархії класів;

6)поліморфізм.

1.Складні структури даних. Це не відмінна риса ООМ, проте ООМ без механізму породження складних структур даних неможлива.

Складні об'єкти будуються з простіших за допомогою конструкторів. Найпростішими об'єктами є числа, символи, рядки символів, булеві змінні тощо. Існують різні конструктори складних об'єктів (кортежі множин, мультимножин, списків, масивів).

Мінімальний набір конструкторів – це конструктори множин, списків і кортежі.

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

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

2.Ідентифікованість, унікальність і стани об'єктів. Кожний об'єкт є унікальним. Стан об'єкта – це поточне значення, приписане об'єкту. Об'єкт може мати єдиний стан протягом свого життєвого циклу або переходити з одного стану в інший.

Унікальність об'єкта не залежить від його стану. Два об'єкти, що перебувають в одному й тому ж стані, є рівними, але не ідентичними. У моделі з ідентифікованістю об'єктів об'єкт існує незалежно від свого значення. Тобто можливі два трактування еквівалентності об’єтків:

  • Об’єкти можуть бути ідентичними, тобто це один і той же об’єкт;

  • Об’єкти можуть бути рівними, тобто перебувати в одному і тому ж стані.

Тому розрізняють розрізнення і змінення об’єктів.

Розрізнення об’єктів: у моделі з об’єктами, що ідентифікуються, два об’єкти можуть спільно використовувати компоненти (зокрема інші об’єкти). Тобто схематично така ситуація задається графом. У схемах без ідентифікованості об’єктів – це дерево об’єктів .

Поведінка об’єктів – це сукупність операцій( методів), які він надає. Лише через ці операції розкривається семантика об’єкта. Виконання операцій є єдиним способом взаємодії між об’єктами. Всі можливі операції об’єкта утворюють його інтерфейс. Лише використовуючи операції, можна змінити стан об’єкта.

9.5. Класи об’єктів мови odl odmg: визначення, поняття екстенту і ключа, оголошення.

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

Клас є водночас фабрикою та сховищем об’єктів.

Як фабрика об’єктів клас використовується для створення нових об’єктів.

Як сховище даних до класу приєднується набір об’єктів, що є екземплярами. Тобто класи використовуються для створення об’єктів і маніпулювання ними.

Інкапсуляція – це властивість класу і його об’єктів. Вимагає, щоб дані та програмні коди для маніпуляції даними були приховані. Тому об’єкт поділяється на інтерфейсну та реалізаційну частини.

Інтерфейсна частина є специфікацією набору операцій, допустимих над об’єктом. Лише вона видима для методів інших об’єктів.

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

Спадкування – це механізм створення нових класів з використанням даних і методів інших класів. Це уможливлює опис спільних для багатьох класів властивостей у базовому класі. Спадкування дає змогу будувати ієрархію класів.