Проектування баз даних
15


Два запитувальних зв'язки тотожні, якщо результати їх виконання збі­гаються.

Усі одновимірні запитувальні зв'язки не підлягають подальшому аналізу і перетворенням, їх можна одразу використовувати для побудови структурних зв'язків. Багатовимірні зв'язки необхідно додатково проаналі­зувати і перевірити їх на відповідність умовам канонічності.

7. На сьомому кроці інфологічного проектування запитувальні зв'язки перевіряють на відповідність умовам канонічності.

Канонічний запитувальний зв'язок — це такий багатовимірний зв'язок, у якому:

- тип співвідношення між будь-якими двома початковими об'єктами мо­же бути лише Б:Б;

- тип співвідношення між будь-яким початковим і кінцевим об'єктами не може бути Б:1.

Якщо багатовимірний запитувальний зв'язок не є канонічним, то вико­нується ряд перетворень для зведення його до канонічного вигляду.

Перетворення 1. Нехай у багатовимірному запитувальному зв'язку

Співвідношення між початковими об'єктами Т (Х12) = 1:Б, тобто порушено умову канонічності. Тоді запитувальний зв'язок потрібно перет­ворити на тотожний ланцюжок запитувальних зв'язків:

Наприклад:

«Видати список РОБІТНИКІВ, вказавши їх паспортні дані, заданих ЦЕХУ, ДІЛЬНИЦІ, БРИГАДІ».

У цьому запиті співвідношення Т (ЦЕХ:ДІЛЬНИЦЯ) = 1:Б, тобто необхідно виконати перетворення 1.

Подамо запит у вигдяді запитувального зв'язку і виконаємо перетво­рення 1.

В результаті отримаємо ланцюжок тотожних запитувальних зв'язків, який складається з одно- та багатовимірного запитувальних зв'язків. Багатовимірний запитувальний зв'язок знову потрібно перевірити на канонічність. Перевірка показує, що співвідношення між початковими об'єктами зв'язку Т (ДІЛЬНИЦЯ:БРИГАДА) = 1:Б, тому отриманий на пе­ршому кроці багатовимірний запитувальний зв'язок необхідно ще раз розк­ласти згідно з перетворенням 1. В результаті виконання двох ітерацій поча­тковий запитувальний зв'язок буде перетворено на такий тотожний ланцюжок запитувальних зв’язків:

Можливі багатовимірні запитувальні зв'язки, для яких перетворення 1 виконується багаторазово, в результаті чого початковий запитувальний зв'язок замінюється сукупністю, яка вміщує кілька одновимірних і закінчується багатовимірним запитувальним зв'язком меншої розмірності, ніж початковий, який одразу буде канонічним, тобто не підлягатиме розк­ладанню на простіші зв'язки.

Примітка 1. Після виконання перетворення 1 отримуємо деяку послідовність запитувальних зв'язків, які треба проаналізувати на доцільність їх урахування в інфологічній моделі. Аналіз виконують на базі аналізу семантики початкового залиту і форми видачі результатів користу­вачеві. Якщо в кінцевому підсумку користувача цікавить лише вибірка екземплярів об'єкта Хn і для нього можна задати ключ пошуку, то відомості про об'єкти Х1, Х2, ...., Хn-1 є надмірними і їх можна не включати до опису інформаційного запиту.

Якщо послідовність одновимірних запитувальних зв'язків використову­ється не лише для вибору екземплярів об'єкта Хп, а в алгоритмі відповідного процесу потрібні екземпляри об'єктів Х1, Х2, ...., Хn-1  то всі запитувальні зв'язки потрібно залишати і описати.

Перетворення 2. Нехай існує багатовимірний запитувальний зв'язок, співвідношення   між   початковим   і   кінцевим   об'єктами   якого Т (Х1, У) = 1:Б, тоді потрібно виконати таке перетворення:

Наприклад, дано запит «Вибрати всі ДЕТАЛІ заданого ТИПУ ВИКОНАННЯ по даному ЦЕХУ-виготовлювачу».

Тип виконання характеризує варіант виготовлення деталі: звичайний, тропічний, морський і т.д. Цьому запиту відповідає такий запитувальний зв'язок:

Зазначений запитувальний зв'язок характеризується такими співвід­ношеннями: Т (тип виконання: цех) = Б:Б; Т (тип виконання: деталь) == 1:Б. Тоді згідно з перетворенням 2 зв'язок можна перетворити так: