Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чичкань.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.15 Mб
Скачать
          1. Об'єктно-орієнтовані бази даних

До цього часу термінологія ще не устоялася, існує багато різних визначень і трактувань. Представляється, що об'єктно-орієнтована база даних (ООБД) – база даних, заснована на принципах об'єктно-орієнтованої технології. До основних описових моментів, пов'язаних з ООБД, в літературі [26] відносять:

  • об'єкти (у ООБД будь-яка сутність – об'єкт і обробляється як об'єкт); відзначимо, що тут використовується поняття "об'єкт" об'єктно-орієнтованого програмування, яке відрізняється від поняття "об'єкт", що розглядався раніше в наших лекціях.

  • класи (поняття "Тип даних" реляційної моделі замінюється поняттями "клас" і "підклас");

  • спадкоємство (класи утворюють ієрархію спадкоємства, запозичуючи властивості один у одного);

  • атрибути (характеристики об'єкту моделюються його атрибутами);

  • повідомлення і методи (кожен клас має певну сукупність методів, класи взаємодіють один з одним за допомогою механізму повідомлень);

  • інкапсуляція (внутрішня структура об'єктів прихована);

  • ідентифікатори об'єктів – дескриптори.

Схема представлення об'єкту наводиться на мал. 14.1

Мал. 14.1.  Схема представлення об'єкту

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

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

Схема представлення класу об'єктів наводиться на мал. 14.2

Мал. 14.2.  Схема представлення класу об'єктів

Використовуючи спадкоємство, всім об'єктам ПІДРОЗДІЛ можна приписати властивість об'єкту-батька (ФАКУЛЬТЕТ) – назва факультету, номер факультету. Схема представлення об'єктів ФАКУЛЬТЕТ і ПІДРОЗДІЛ наводиться на мал. 14.3.

Мал. 14.3.  Фрагменти представлення конкретних об'єктів

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

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

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

На нашу думку, істотним обмеженням розвитку об'єктно-орієнтованого підходу до створення баз даних є те, що методи об'єкту містяться усередині об'єкту і нерозривно пов'язані з ним. Це робить, по суті, неможливим створення для об'єктно-орієнтованої бази даних відповідної системи управління базою даних в традиційному розумінні СУБД, функціями якої, зокрема, є реалізація операцій обробки даних. Тому ООСУБД часто є не системою управління базами даних, а бібліотекою програм, за допомогою якої можна побудувати об'єктно-орієнтовану базу даних. Прикладом такої бібліотеки є ООСУБД ObjectStore. У зв'язку з цим, виникає проблема реалізації непередбачених запитів.

Для переходу до об'єктно-орієнтованих БД стандарт об'єктного програмування був доповнений стандартизованими засобами доступу до баз даних (стандарт ODMG 93; Object Database Management Group – група управління об'єктно-орієнтованими базами даних). До теперішнього часу цей стандарт не реалізований. Стан проблеми детально описаний також в роботах [26], [4], [2], [18], [3] і ін. Відзначимо лише, що ООБД використовуються, але доки не стали реальною альтернативою реляційним базам даних.

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