morozov_lektsiyi
.pdf
Проектування машин баз даних та знань |
31 |
-синхронне;
-асинхронное/с розповсюдженням;
-активізоване/відкладене.
2) Стратегії доступу до копій
-всі копії доступні для оновлень;
-деякі копії доступні тільки для читання.
Якщо звернутися до довгострокових перспектив, пов’язаних з оптимальними розподіленими середовищами баз даних майбутнього, то тиражування даних представлялося спочатку як деяке проміжне рішення на шляху до створення „остаточної моделі” множини баз даних, що містять досяжні в рамках глобальної мережі (Global Area Network, GAN) фрагменти даних. Хіба лише для прискорення доступу передбачалося розміщувати в стратегічно важливих пунктах в глобальній організації копії даних, до яких можна звертатися тільки для читання, що рідко обновляються.
Тиражування може бути реалізовано різними способами. Найпростіша модель має на увазі наявність програмного інтерфейсу, за допомогою якого прикладні програми самі здійснюють створення копій, а також реалізують стратегії їх координації і синхронізації (мал. 5.7). В більш розвинутих декларативних моделях (мал. 5.8) правила тиражування і управління копіями вбудовуються безпосередньо в саму базу даних.
Програмний
інтерфейс
Розподілена база даних з тиражуванням
Мал. 5.7. Програмне управління копіями
Як показано на мал. 5.12, декларативне управління оновленням копій може здійснюватися засобами активних баз даних. Кажучи стисло, активна база даних володіє засобами, наприклад механізмами тригерів і процедур, що зберігаються, які дозволяють автоматизувати виконання деяких дій в базі даних на основі заданих правил, а не засобами програмної логіки управління базою даних з боку додатку або системи. В такому середовищі оновлення якої-небудь з копій об’єкту може, наприклад, активізувати тригер, який забезпечить автоматичне розповсюдження змін по всій решті копій.
Програма
Активна база даних
Розповсюдження змін на копії при активізації тригерів
Мал. 5.8. Декларативне управління копіями за допомогою активних баз даних
Проектування машин баз даних та знань |
32 |
Тема 6. Об’єктно-орієнтовані бази даних
6.1. Характеристики і мотивація об’єктно-орієнтованих баз даних
Коли об’єкти реального світу моделюються і врешті-решт транслюються в структури даних, що підтримуються в комп’ютері, наприклад, в таблиці реляційних баз даних, має місце втрата семантики. Навіть спроби нейтралізувати цю проблему втрати інформації шляхом використовування методів моделювання даних, здатних утримувати семантику (наприклад, розширеної моделі „сутність-зв’язок”, функціональних моделей або семантичних моделей даних), все-таки стикаються з іншою серйозною трудністю. Річ у тому, що самі реалізації систем баз даних не володіють здатністю підтримки і використовування якої-небудь семантики внутрішніми модельними засобами.
Деякі класи додатків, які стали актуальними в 80-і роки, зокрема автоматизоване проектування (Computer-Aided Design, CAD) і автоматизована розробка програмного забезпечення (Computer-Aided Software (or Systems) Engineering, CASE) або систем, яскраво проявили ці недоліки, оскільки CAD, CASE, а також подібні їм додатки виявлялися надзвичайно важкими для виконання у вигляді надбудови над реляційними системами баз даних Якщо виразити цю ситуацію в більш спеціальних термінах, розробники додатків зіткнулися з великими труднощами, пов’язаними з відображенням структур даних, необхідних для CADабо CASE-систем, в табличні структури реляційних баз даних.
Першим природним кроком в подальшій еволюції до об’єктно-орієнтованого підходу в області баз даних було створення структур, що враховують специфіку додатків і здатних утримувати семантику. Ці структури могли використовуватися додатками як деякий вид сурогатного механізму управління даними, що спрощує розробку і підтримку програм. Як показано на мал. 6.1, інформація, управління якою здійснюється на цих рівнях, трансформується далі в підтримуючі таблиці реляційної бази даних відповідно до правил і алгоритмів відображення, з тим щоб зберегти якомога більше семантичній інформації. Завдяки цьому спрощується розробка додатку.
Хоча процес програмування додатків може спроститися завдяки використовуванню багаторівневого підходу такого роду, фундаментальна проблема залишається; підтримуючі реляційні засоби управління даними і структури даних, як правило, не здатні підтримувати всю семантику, необхідну для додатків. Ця проблема існує в наступних областях:
-Типи даних. Реляційні СУБД підтримують обмежену множину типів даних (літерні, цілі, з плаваючою крапкою, дати і деякі інші); моделі реального світу і моделі проміжного представлення відводять важливе місце абстрактним типам даних, що визначаються користувачем (наприклад, тип „відео”).
-Операції. Прикладні програми, поки що необхідні для підтримки всієї процедурної логіки в системі, оскільки підтримуюча реляційна система не може управляти представленням бізнес-правил, оголошенням і виконанням операцій, специфічних для об’єктів (наприклад, не дати службовцю місячний бонус, якщо він або вона не досягли деякою певною системою мети), і інших подібних операцій.
Наступним логічним кроком (що представляють мотивацію об’єктно-орієнтованих баз даних і СУБД) була спроба вбудувати семантику в сам механізм управління базою даних. Одним з аргументів на користь такого рішення було прагнення розірвати окови світу реляційних баз даних і створити четверту модель даних (разом з ієрархічною, мережною і реляційною). Цілі ООБД і ООСУБД полягали в тому, щоб виключити проміжні рівні
Проектування машин баз даних та знань |
33 |
відображення, що раніше використовуються, і побудувати середовище, подібне до представленого на мал. 6.2.
Прикладні
програми
Об’єкти |
Створюється з |
Семантично багата |
реального світу |
|
модель даних для |
спеціальних додатків
Відображається в
Підтримуючі таблиці реляційних баз даних
Мал. 6.1. Сурогатний об’єктно-орієнтований рівень
Прикладні
програми
Об’єкти |
Створюється з |
Об’єктно- |
реального світу |
|
орієнтована |
|
|
база даних |
Мал. 6.2. Просте середовище ООСУБД/ООБД (більше ніяких відображень)
Об’єктно-орієнтовані бази даних (або об’єктно-орієнтований підхід взагалі) мають наступні характеристики:
-Високоефективні уявлення, що враховують особливості типів. Замість того щоб завжди відображати конструкції реального світу в незручні табличні уявлення, в середовищі ООСУБД забезпечується ефективне управління вибором самих цих уявлень.
-Використовування інкапсуляції. Здійснюється в цілях ізоляції додатку від змін у вказаних вище уявленнях. При інкапсуляції система є сукупністю модулів, кожний з яких доступний через повністю певний інтерфейс. Цей інтерфейс - специфікація - не залежить від способів реалізації. Реалізації можуть модифікуватися, не зачіпаючи при цьому специфікації тієї частини, яка видима для інших компонентів системи.
Проектування машин баз даних та знань |
34 |
-Високий ступінь несуперечності. Операції заданого об’єкту є несуперечливими незалежно від того, який додаток їх викликає, за умови, що цей об’єкт підтримується для даних додатків ООСУБД. Якщо бізнес-правила, що вживаються до деякого об’єкту, повинні процедурно підтримувати і виконувати самі додатки, то швидко порушується синхронізація додатків один з одним щодо кроків в операції. Наприклад, додаток Замінити_Зіпсовану_Касету може мати процедурні правила, що передбачають приміщення нової копії відеокасети в інвентарний список магазину. В той же час подібні правила також міг би мати інший додаток - Замовити_Щойно_Випущену_Касету. Будь-які зміни в процедурах продажу касет (наприклад, додавання маніпуляцій з штрих-кодами в існуючі кроки або друк мітки Нової_Касети_В_Магазині для реклами про надходження) повинні підтримуватися і приводять до змін в обох цих додатках, а також, можливо, і в інших додатках в системі. При підтримці цих правил засобами самих об’єктів Відеокасети зміни можуть бути зроблені тільки в цих об’єктах, а не в процедурному коді додатків.
-Зниження вартості розробки нових додатків завдяки повторному використовуванню
коду/об’єктів. Визначення, які з зареєстрованих у бібліотеці класів, можуть повторно використовуватися в додатках або функціях, що знов розробляються.
Мотивація використовування об’єктно-орієнтованих баз даних, а також сукупності їх характеристик, що сформувалася з часу первинних експериментів в 80-х років, витікає головним чином з мети - представлення реального світу.
6.2.Концепції об’єктно-орієнтованих баз даних
З характеристик об’єктно-орієнтованих баз даних викристалізувався ряд концепцій. До їх числа відносяться:
-індивідуальність об’єктів;
-атрибути;
-методи;
-класи;
-ієрархії класів і наслідування.
6.2.1.Індивідуальність об’єктів
Кожний об’єкт в об’єктно-орієнтованій системі має унікальний ідентифікатор, названий ID об’єкту (від IDentificator) або OID (від Object IDentifier). Унікальність OID повинна підтримуватися навіть у розподілених об’єктних середовищах. Використовування OID дозволяє змінювати значення будь-якого атрибуту об’єкту, у тому числі і тих атрибутів, які утворюють первинний ключ, не порушуючи при цьому посилань на даний об’єкт.
Слід зазначити, що концепція унікальних OID берет свій початок в (або, як заявляють деякі експерти, є зворотним кроком від) унікальності, заснованій на значеннях, в реляційній моделі, що використовується. У будь-якому випадку одна з фундаментальних передумов ООБД полягає в наявності унікального немінливого OID (ніяка операція не може колинебудь змінити асоціацію між об’єктом і його індивідуальністю).
6.2.2. Атрибути
Кожен об’єкт завжди має два аспекти: стан і поведінка. Стан об’єкту визначається множиною значень його атрибутів (або властивостей, або змінних екземплярів, або полів - використовується ряд термінів). В об’єктно-орієнтованих середовищах значення будь-якого заданого атрибуту повинно підкорятися деяким правилам, пов’язаним з типом даних (чи визначеним користувачем, чи абстрактним), з діапазоном або списком значень, а також з заданою характеристикою, єдине або множинне значення якої може бути задано, і т.д.
Проектування машин баз даних та знань |
35 |
6.3.3. Методи
Точно так, як атрибути описують стан об’єкту, методи, звані також процедурами або операціями, описують його поведінку.
Якщо наш об’єкт - це CD (компакт-диск), то можна застосувати такі методи:
-Метод 1 - введення даних. Перш ніж ввести дані, переконатися, що ID для даного CD, що вводиться є унікальним.
-Метод 2 - оновлення продажної ціни. Отримати значення у службовця, що володіє на це повноваженнями, переконатися, що воно належить допустимому діапазону цін, і відновити значення в базі даних.
-Метод 3 - зняття з продажу. Понизити ціну на кожний CD цього типу, що є в даний час в магазині, на 40% зараз і додатково на 20% наступного тижня для залишку; більше не замовляти такі CD.
Завдяки передачі явних повідомлень між об’єктами системи виклик інкапсульованих методів і доступ до атрибутів заданого об’єкту здійснюються відповідно до правил даної ООСУБД.
6.3.4.Класи
Класи, звані також типами, є конструкціями, які є групами об’єктів, що володіють одною і тою ж множиною атрибутів і методів. Класи можуть бути примітивними (всі цілі або всі рядкові об’єкти), і в цьому випадку вони можуть не мати атрибутів. Вони можуть також володіти атрибутами і методами, і в цьому випадку всі об’єкти в цьому класі мають одну і ту ж множину атрибутів і методів (хоча і, мабуть, різні значення атрибутів).
6.3.5. Ієрархії класів і наслідування
Якщо розглянути приклад про службовців і товари, то такий приклад ієрархії класів, в якій підкласи успадковують атрибути суперкласу (іноді використовуються терміни „підтип” і „супертип”) і мають також деякі нові атрибути, специфічні для цих об’єктів. Наприклад, клас Товари має деяку множину атрибутів (Назва, Кількість в наявності і т.д.), які відносяться як до CD, так і до відеокасет. Підклас CD має, разом з ними і такі атрибути, як Число доріжок, Ім’я артиста, Головний розповсюджувач. Підклас Відеокасети не має цих атрибутів CD, але має інші атрибути - Звичайна і Поточна ціни прокату, чи Є записаний на касеті фільм продовженням і т.д.
6.3.6. Довготривале зберігання
На відміну від реляційних баз даних, що беруть участь в управлінні даними інформаційних систем, корені об’єктно-орієнтованих баз даних великою мірою лежать в мовах програмування. Середовище ООСУБД має наступні характерні риси:
-включаюча мова програмування є також і мовою маніпулювання даними (ММД);
-моделі, пов’язані з представленням в оперативній пам’яті і в зовнішній пам’яті, зливаються;
-не вимагається ніякого перетворення коду між моделями і мовами.
Насправді довготривале зберігання даних в середовищі програмування забезпечується завдяки можливостям ООСУБД.
Пригадаємо (див. мал. 8.2), що модель бази даних і реалізація є одними і тими ж, і тому не вимагається ніякого відображення (у тому числі також і для об’єктів реального світу). Створення нового об’єкту, що зберігається тривалий час, у мові програмування породжує об’єкт бази даних, який може використовуватися безпосередньо в програмі без необхідності відображати його в структури пам’яті мови програмування.
Проектування машин баз даних та знань |
36 |
Одна з переваг довготривалого зберігання даних, що базується на мові програмування, полягає в тому, що воно виключає невідповідність імпедансу між мовою бази даних і середовищем програмування. Потрібно взяти до уваги, що звичайна реляційна СУБД має засновану на SQL мову маніпулювання даними, який підтримує основні типи даних, такі, як цілі і літерні. Більшість ООСУБД використовує включаючі об’єктно-орієнтовані мови програмування (ООМП) C++ або Smalltalk.
Разом з об’єднанням семантичний багатої моделі даних і реалізаційної моделі з довготривалим зберіганням, інкапсуляцією і іншими можливостями, які обговорювалися в цьому розділі, методології розробки систем, застосовні до середовищ ООСУБД, мають і інші значні переваги в порівнянні з їх більш традиційними двійниками.
6.4. Співвідношення гібридного і розширеного реляційного підходів
На мал. 6.3 показано два різні підходи до об’єднання реляційної і об’єктно-орієнтованої технологій. Гібридні СУБД включають, як і звичайні реляційні системи, реляційні внутрішні механізми управління даними, але в їх архітектурі передбачається рівень об’єктноорієнтованого зовнішнього інтерфейсу, з яким додатки можуть взаємодіяти, точно так, як і якби вони працювали з „чистою ООСУБД”.
Гібридні СУБД |
Реляційні
СУБД
-Об’єктно-орієнтований зовнішній інтерфейс
-Реляційні механізми керування даними
Об’єктно-орієнтовані СУБД
- Реляційний |
|
|
|
|
|
- Об’єктно-орієнтований |
зовнішній |
|
|
|
|
|
зовнішній інтерфейс |
інтерфейс |
|
|
|
|
|
- Об’єктно-орієнтовані |
- Реляційні |
|
|
|
|
|
механізми керування |
|
|
|
||||
механізми |
|
|
|
|
|
даними |
|
|
|
|
керування
даними
- Інтерфейс та механізми керування даними – реляційні але з об’єктно-орієнтованими
розширеннями
Розширені реляційні СУБД
Мал. 6.3. Співвідношення класів СУБД: реляційних, об’єктно-орієнтованих, гібридних і розширених реляційних
Інший підхід, технологічно більш просунутий і віддається перевага в даний час більшістю розробників реляційних СУБД, - це розширений реляційний підхід, при якому самі внутрішні механізми управління даними СУБД розширяються об’єктно-орієнтованими можливостями (наслідування, абстрактні типи даних і т.д.). В гібридних СУБД повинні виконуватися алгоритми відображення об’єктів, видимих на зовнішньому інтерфейсі, в таблиці підтримуючої реляційної бази даних, і навпаки, об’єкти повинні відтворюватися з їх представлення в табличному середовищі зберігання, коли вони запитуються користувачами або додатками.
Проектування машин баз даних та знань |
37 |
Гібридні СУБД забезпечують додатки об’єктно-орієнтованим представленням підтримуючого середовища бази даних і значно полегшують розробку, а також рішення проблеми зручності експлуатації. Проте їх слабим місцем часто виявляється продуктивність на стадії виконання у зв’язку з необхідністю постійного звернення до алгоритмів відображення об’єктів зовнішнього інтерфейсу в „реальну табличну інформацію”. Проте такий підхід був популярний в кінці 80-х роках не стільки в комерційних СУБД (хоча деякі системи з архітектурою такого роду все-таки потрапили на ринок програмного забезпечення), скільки в програмних продуктах CASE, CAD, репозиторіях і в подібних середовищах, що використовують реляційне управління середовищем зберігання і надають користувачам і додаткам нереляційні інтерфейси.
Гібридний підхід забезпечує (або намагається забезпечити) прозорий рівень об’єктного представлення даних між об’єктно-орієнтованою мовою програмування (ООМП) і реляційним середовищем управління даними навіть тоді, коли сервер бази даних не володіє об’єктно-орієнтованими можливостями.
Програмні продукти, що реалізовують гібридний підхід, ймовірно, розвиватимуться у напрямі домінуючих розробок механізмів об’єктно-орієнтованого рівня, які дозволяють використовувати для їх підтримки різні реляційні сервери баз даних і можуть, наприклад, бути засобами програмного забезпечення проміжного шару. Швидше за все, вони поставлятимуться незалежними постачальниками (тобто постачальниками, що не є розробниками СУБД). Можливо, що до кінця 90-х рр. цей ринок поступово зникне, оскільки більш масове розповсюдження отримають розширені реляційні системи. Але реалії успадкованих систем приводять нас до упевненості в тому, що багато організацій ще використовуватимуть гібридне програмне забезпечення проміжного шару для забезпечення з’єднаних можливостей ООСУБД і РСУБД.
Сьогодення
Об’єктно-орієнтовані програми
Відображення; можливі втрати семантики
Реляційні СУБД
Майбутнє
Об’єктно-орієнтовані програми
Без відображення; втрати семантики мінімізуються
Розширені реляційні СУБД
Мал. 6.4. Вірогідна еволюція інтерфейсів між об’єктно-орієнтованими мовами і Реляційними СУБД
Варто зауважити, що, оскільки об’єктно-орієнтовані можливості додаються до механізмів управління даними реляційних баз даних, вдається створити більш розвинуті інтерфейси об’єктно-орієнтованої мови з РСУБД (мал. 6.4). У випадку ж використовування базисних механізмів управління даними РСУБД декларовані і використовувані в об’єктноорієнтованій мові програмування класи повинні відображатися в таблиці підтримуючої реляційної бази даних, що часто приводить до втрат семантики, пов’язаних з нездатністю РСУБД адекватно представляти ієрархії, наслідування, методи і операції, а також інші об’єктно-орієнтовані можливості.
Проектування машин баз даних та знань |
38 |
Якщо ж ці можливості включаються в механізми самих РСУБД, функції відображення скорочуватимуться, завдяки чому досягатиметься більш високий ступінь семантичної еквівалентності (але, ймовірно, не 100%), чим це забезпечується сьогодні між представленнями в ООМП і в РСУБД. Семантичні втрати в деякій мірі неминучі, коли підтримуюча база даних повинна обслуговувати численні потреби і представлення. Існує природний взаємозв’язок між гнучкістю (здатністю обслуговувати низку потреб) і семантичними втратами, які неминуче мають місце, якщо повний додаток не буде вбудований в базу даних за допомогою збережуваних процедур і подібних їм засобів.
6.5. Об’єктно-орієнтовані механізми управління даними і моделі
Маніфест об’єктно-орієнтованих систем баз даних, дотримується того погляду, що об’єктно-орієнтовані бази даних і СУБД не повинні стримуватися реляційною спадщиною, що дослідницькі системи і їх наступники, що насправді розробляються, повинні використовувати найдоцільніші технологічні основи, можливо, навіть незалежно від стурбованості долею існуючих систем і середовищ.
Оголошеною метою маніфесту було уточнення термінології, а не стандартизація мов. Інакше кажучи, на відміну від авторів стандарту ODMG-93, які сконцентрували свою увагу як на термінології (тобто на концепціях), так і на мовах, автори маніфесту в 1989 року вважали своєю задачею перешкоджати розвитку розбіжностей в концепціях різних експериментальних систем. Вони вважали, що стандартизація мов може відбутися пізніше, точно так, як і SQL став стандартизованою мовою, що підтримується багатьма розробниками, лише через роки після того, як реляційні бази даних почали з’являтися в дослідницьких лабораторіях.
Маніфест встановлює три категорії характеристик ООБД:
1)обов’язкові - система повинна володіти цими характеристиками для того, щоб вона „заслуговувала” права вважатися ООБД;
2)необов’язкові – ці характеристики покращують функціональні можливості системи, але не є обов’язковими;
3)відкриті ~ характеристики, які проектувальник може вибирати серед прийнятних альтернатив.
Обов’язкові характеристики були далі розбиті на два класи:
1. Система повинна бути СУБД, і це означає, що вона повинна підтримувати:
-довготривале зберігання даних;
-управління зовнішньою пам’яттю;
-паралелізм;
-відновлення;
-засоби обробки нерегламентованих запитів.
Перераховані характеристики є широко відомими функціями, які вже розглядалися. Тому не обговорюватимемо їх тут детально.
2. Система повинна бути ООСУБД, і тому їй повинні бути властиві наступні вісім характеристик:
-підтримка складних об’єктів;
-індивідуальність об’єктів;
-інкапсуляція;
-типи і класи;
-спадкоємство;
-перевантаження в поєднанні з пізнім зв’язуванням;
-обчислювальна повнота;
-розширюваність.
Проектування машин баз даних та знань |
39 |
Перші п’ять характеристик ми вже обговорювали раніше. Шоста, перевантаження і пізнє зв’язування, означає, що для різних операцій може використовуватися одне і те ж ім’я (наприклад, операція „display” виконуватиметься по-різному для голосу, відео, нерухомого образу або для текстових даних). Завдяки перевантаженню (або перевизначенню) імен різні операції для цих різних типів даних можуть мати одне і те ж ім’я. Для підтримки такої можливості зв’язування імен операцій в програмі на стадії компіляції непридатний, воно повинне здійснюватися на стадії виконання (пізніше зв’язування).
Обчислювальна повнота означає, що будь-яка обчислювана функція повинна бути відображувана засобами мови маніпулювання даними (ММД) ООСУБД і виконання таких функцій не повинне покладатися на включаючу мову програмування.
Нарешті, розширюваність означає, що будь-яка множина наперед визначених типів повинна допускати додаткове включення типів, визначених користувачем, і між цими двома категоріями типів не повинно бути яких-небудь відмінностей (принаймні, для розробника додатків).
Необов’язкові характеристики підрозділяються на об’єктно-орієнтовані (множинне наслідування, наприклад) і інші, більш загального вигляду. До них відносяться:
1.Множинне наслідування. Ця характеристика була віднесена до категорії необов’язкових, оскільки відсутня єдина думка щодо того, чи повинно множинне наслідування підтримуватися будь-якою ООСУБД і, що більш важливо, як повинно вирішуватися конфлікти в таких середовищах. Прикладом конфлікту є наслідування двох однойменних операцій, що мають різну семантику.
2.Перевірка типів і вивід типів. Кращим є таке середовище, в якому велика частина перевірки типів здійснюється на стадії компіляції. Проте маніфест залишає відкритим питання про те, чи має це місце і якою мірою виконується така перевірка на стадії компіляції.
3.Розподіл. Обговорення технологій розподілених баз даних відноситься також і до об’єктно-орієнтованих баз даних.
4.Проектні трансакції. Цей термін був використаний авторами маніфесту для позначення довгих трансакцій або вкладених трансакцій. У сьогоднішніх інформаційних системах загальноприйнятою є головним чином модель коротких плоских трансакцій, яка не задовольняє вимогам більшості середовищ ООБД (хоча вони і можуть використовуватися в деяких таких системах).
5.Версії. Вельми бажана підтримка множини версій об’єктів.
Нарешті, до числа відкритих характеристик, для яких існує безліч варіантів, авторами Маніфесту віднесено:
1.Парадигма програмування. Розробник повинен мати нагоду використовувати будьяку парадигму, яку він побажає, - процедурну, декларативну, засновану на правилах і т.д.
2.Система уявлення. Атомарні типи (з мов програмування) і конструктори (конструктори множин, списків і кортежів) можуть бути розширені багатьма різними способами для підтримки об’єктної орієнтації.
3.Система типів. Всі „формувачі типів”, за винятком інкапсуляції, такі, як родові типи
ігенератори типів, обмеження, об’єднання і функції, є необов’язковими.
4.Однорідність. В маніфесті пропонується трирівнева архітектура (реалізація, мова програмування і інтерфейс), по відношенню до якої на такі питання, як чи „Є тип об’єктом?”, можуть даватися різні відповіді залежно від контексту, в якому задається це питання.
6.6. Діяльність ODMG по стандартизації
Object Database Management Group, яка взяла на себе рішення цих проблем. Мета ODMG полягала в тому, щоб забезпечити переносимість:
- схем даних;
Проектування машин баз даних та знань |
40 |
-зв’язування мов програмування;
-мов маніпулювання даними;
-мов запитів.
Коротше кажучи, мета діяльності ODMG полягає в забезпеченні переносимості додатків. ODMG розраховує на підтримку запропонованих нею стандартів в перспективних програмних продуктах компаній - членів консорціуму (Versant, Objectivity, Servio і ін.), що забезпечить пропозиціям ODMG статус стандарту де-факто для індустрії ООСУБД.
ODMG визначає ООСУБД як „СУБД, яка сполучає в собі можливості баз даних з можливостями об’єктної мови программирования”. При використовуванні ООСУБД об’єкти бази даних неможливо вирізнити від об’єктів мови програмування. ООСУБД використовується для того, щоб прозорим чином розширити цю мову засобами довготривалого зберігання даних, управління паралелізмом, специфікації асоціативних запитів, а також іншими можливостями баз даних.
ODMG визначає деяку об’єктну модель, концептуально подібну до реляційної моделі, на якій ґрунтуються РСУБД (термінологічні і концептуальні відмінності між програмними продуктами і системами, долаються за рахунок уніфікованої об’єктної моделі ODMG).
Як і було слід чекати, основний модельний примітив - це об’єкт, і об’єкти можуть бути розділені на категорії за типами. Поведінка об’єкту визначається множиною операцій, а стан будь-якого заданого об’єкту - множиною значень його властивостей. Властивості, у свою чергу, можуть бути або атрибутами цього заданого об’єкту, або зв’язками між цим об’єктом і одним або більш інших об’єктів. На мал. 6.4 представлений перелік основних елементів об’єктної моделі ODMG.
Тип
Об’єкт Об’єкт
Об’єкт Об’єкт
Операції
Поведінка
Об’єкт
Стан |
Атрибути |
|
|
Властивості
Зв’язки
Мал. 6.5. Основні елементи об’єктної моделі ODMG
Модель ODMG підтримує три різні варіанти часу життя об’єкту:
-у межах процедури. Об’єктам з таким часом життя виділяється пам’ять при виклику процедури, але ця пам’ять звільняється, коли процедура повертає управління програмі, що викликала її;
-у межах процесу. Об’єктам з таким часом життя виділяється пам’ять виконавчою системою мови програмування на період виконання процесу;
