ього використовується позначка списку MarkList індекс-вибірки класу (її значення, згідно [5], так само 1).
2. Схема шарів є ациклічним графом, який може не бути деревом. Тобто може існувати в схемі верств клас в одному з нижніх шарів, який має декілька шляхів зв'язків з базовим класом (наприклад, це може виникнути в результаті множинного спадкоємства через класи в більш верхніх шарах чи в результаті декількох включень в інший клас в більш верхньому шарі схеми). При виконанні другого етапу (корекції індекс-вибірок) проблем не виникне. Але при виконанні третього етапу (побудова «дерев» даних об'єктів) порядок обходу «гілок» получающегося циклу (циклів) може бути кращим (менший перебір), якщо спочатку вибираються «гілки», що мають менше число зв'язків включення і спадкування (нижче в одному з прикладів цей випадок буде розглянутий).
5.Пример
Розглянемо кілька прикладів, описують виконання ODQL-запиту і схеми до цих запитах, що базуються на основному прикладі в розділі 2.
Запит 1. Для кожної Шини, що відповідає групі «Діагональні шини», визначити стандарт, назва, позначення, модель і показники з їх нормами (див. рис. 8).
Рис. 8. Схема шарів запиту 1
Мовою SODQL запит виглядає наступним чином:
for ТехнологіческаяГруппа=«Діагональниешіни»
select НаіменованіеШіни, ОбозначеніеШіни, МодельШіни,
НаіменованіеСтандарта, НаіменованіеПоказателя, НіжняяНорма, ВерхняяНорма Після перетворення запиту в мову нижнього рівня ODQL отримаємо: for НаименованиеТехнологическойГруппы=«Діагональні шини» select НаіменованіеШіни, ОбозначеніеШіни, МодельШіни,
НаіменованіеСтандарта, НаіменованіеПоказателя, НіжняяНорма, ВерхняяНорма from Шина, Стандарт Ст, Показник Пок, НормиПродукціі Норм,
ТехнологіческіеГруппи ТГ links ТГ contains Шина, Ст parent Шина, Ст contains (Норм) Пок Виконання цього запиту визначається наступними діями:
1. Проводимо початкову установку індекс-вибірки для класу Технологічні групи з обмеженням фрази for. При цьому використовуємо внутрішнє включення для визначення всіх груп, вкладених в групу, задану умовою фрази for. Для решти класів Шина, Стандарт, Показники, Норми продукції встановлюємо позначку MarkList всіх вибраних об'єктів.
2. Приступаємо до корекції позначок об'єктів класів. Оскільки фраза for позначила об'єкти єдиного класу і він не є базовим, то по фразі links визначаємо пов'язаний з цим класом ставленням включення включає клас Шина. Помічаємо об'єкти класу Шина для всіх помічених об'єктів класу Технологічні групи. На цьому етап корекції закінчується.
3. Починаємо обхід схеми шарів з базового класу Шина. Вибираємо по черзі його помічені об'єкти.
4. Для поточного вибраного об'єкту класу Шина вибираємо значення полів НаіменованіеШіни, ОбозначеніеШіни, МодельШіни і заносимо в поточний буфер.
5. Вибираємо перший клас, пов'язаний з базовим класом, по фразі links. Це клас Технологічні групи. Оскільки дані об'єктів цього класу не входять в обира...