2 - клас об'єктів, що є зв'язками у взаємодії інших об'єктів.
Кожен клас може містити 3 групи параметрів з іменами:
MIPO - Main Identification Parameters of Objects - TypeGroup=0;
MNPO - Main Nonidentification Parameters of Objects - TypeGroup=1;
APO - Addinional Parameters of Objects - TypeGroup=2.
Ці групи параметрів визначають специфікацію об'єктів класу. При цьому параметри зі списку MIPO є ідентифікаційними (будь-які 2 об'єкта класу не повинні мати однаковий набір цих значень); параметри зі списку MNPO є іншими обов'язковими параметрами об'єктів класу, а параметри зі списку APO необов'язкові для того чи іншого об'єкта класу. Обов'язковою є наявність хоча б однієї з груп параметрів MIPO або MNPO.
Таблиця ClassInheritance описує зв'язки класів з спадкоємства (батьківський - дочірній) і являє собою орієнтований граф з певними компонентами для кожного типу класів. При цьому батьківський і дочірні класи визначаються через IdParentClass і IdChildClass, а тип групи TypeGroup визначає тип параметра дочірнього класу.
Таблиця ClassInclusion описує зв'язки включення класів (що включає - включається). Параметр IdInclusionClass визначає ідентифікатор класу зв'язку між включає класом IdInclud-ingClass і включеним класом IdIncludedClass (якщо IdInclusionClass=0, то визначається просте включення об'єктів включається класу в об'єкти включає класу). Параметр TypeInclusion визначає тип відносини між включала і містить класом:
0 - багато до багатьох;
1 - багато до одного;
2 - один до багатьох;
3 - один до одного.
Таблиця ClassInteraction описує класи взаємодії, що визначають взаємодію потоку об'єктів класу IdWhat від об'єкта класу IdFrom до об'єкта класу IdTo.
Для опису відношення включення об'єктів використовується одна з таблиць ObjInclu-sion_IdIncluding_IdIncluded_IdInclusion або ObjInclusion_IdIncluding_IdIncluded. Вони являють собою ациклічний орієнтований граф з навішеними на дуги параметрами входження включаемого об'єкта під включає. Параметр IdIncludingObject задає включає об'єкт класу Id-Including з назви таблиці. Параметр IdIncludedObject задає включається об'єкт класу IdIn-cluded з назви таблиці. Параметр IdInclusionObject задає об'єкт зв'язку між включає і включеним об'єктами класу IdInclusion з назви таблиці.
Таблиця ObjInheritance_IdParent_IdChild, де IdParent і IdChild - ідентифікатори класів, для кожного об'єкта IdChildObject класу IdChild з назви таблиці задає об'єкт IdParentObject класу IdParent з назви таблиці.
Таблиці ClassHistory, ParameterHistory і ObjHistory_IdClass описують динамічні зв'язки класів, об'єктів, параметрів відповідно (попередники - спадкоємці), визначають час перетворення (класів, об'єктів, параметрів) і являють собою ациклічні орієнтовані графи.
Таблиця ObjInteraction_IdF_IdT_IdW_IdH описує взаємодії об'єктів і дає уявлення орієнтованого графа з потоками (об'єктів IdWhat, IdInteraction), навішеними на дуги, що йдуть з об'єктів IdFrom в об'єкт IdTo.
4.Алгорітм виконання запиту
Провідну роль в алгоритмі грає схема шарів класів запиту, описана в [4] (див. рис. 7). Нагадаємо [6], що ODQL-запит (запит нижнього рівня) складається з фраз:
• select, визначальною вибірку даних запиту;
• from, визначальною класи об'єктів, де знаходяться ці дані; перший клас цієї...