Основи реляційного числення ⇐ ПредыдущаяСтр 6 из 6
У реляційній моделі визначаються два базових механізми маніпулювання даними: · заснована на теорії множин реляційна алгебра · засноване на математичній логіці реляційне числення. Так як і вирази реляційної алгебри формули реляційного числення визначаються над відносинами реляційних баз даних, і результатом обчислення також є відношення. Ці механізми маніпулювання даними розрізняються рівнем процедурності: · запит, представлений мовою реляційної алгебри, може бути обчислений на основі обчислення елементарних алгебраїчниих операцій з урахуванням їх старшинства і можливих дужок · формула реляційного числення тільки встановлює умови, яким повинні задовольняти кортежі результуючого відношення. Тому мови реляційного числення є більш непроцедурними чи декларативними. Припустимо, що ми працюємо з базою даних, що має схему СПІВРОБІТНИКИ (СПІВ_НОМ, СПІВ_ІМ'Я, СПІВ_ЗАРП, ВІД_НОМ) і ВІДДІЛИ (ВІД_НОМ, ВІД_КІЛ, ВІД_НАЧ), і хочемо дізнатися імена і номери співробітників, що є начальниками відділів з кількістю співробітників більше 10. Іншими словами, дані двоє відношень: СПІВРОБІТНИКИ (СПІВ_НОМЕР, СПІВ_ІМ'Я, СПІВ_ЗАРПЛ, ВІД_НОМЕР) Ми хочемо довідатися імена і номери співробітників, що є начальниками відділів з кількістю працівників більш 10. Виконання цього запиту засобами реляційної алгебри розпадається на чітко визначену послідовність кроків: (1).виконати з'єднання відношень СПІВРОБІТНИКИ і ВІДДІЛИ за умовою СПІВ_НОМ = ВІДДІЛ_НАЧ.
(2).з отриманого відношення зробити вибірку за умовою ВІД_КІЛ > 10 З2 = З1 [ВІД_КІЛ > 10]. (3).спроецировать результати попередньої операції на атрибути СПІВ_ІМ'Я, СПІВ_НОМЕР З3 = З2 [СПІВ_ІМ'Я, СПІВ_НОМЕР] Помітимо, що порядок виконання кроків може вплинути на ефективність виконання запиту. Так, час виконання приведеного вище запиту можна скоротити, якщо поміняти місцями етапи (1) і (2). У цьому випадку спочатку з відношення СПІВРОБІТНИКИ буде зроблена вибірка всіх кортежів зі значенням атрибута ВІДДІЛ_КІЛ > 10, а потім виконане з'єднання результуючого відношення з відношенням ВІДДІЛИ. Машинний час заощаджується за рахунок того, що в операції з'єднання беруть участь менше відношень. Якби для формулювання такого запиту використовувалася реляційна алгебра, то ми одержали б алгебраїчний вираз, що читався б, наприклад, у такий спосіб: · виконати з'єднання відношень СПІВРОБІТНИКИ і ВІДДІЛИ за умовою СПІВ_НОМ = ВІД_НАЧ; · обмежити отримане відношення за умовою ВІД_КІЛ > 10; · спроектувати результат попередньої операції на атрибут СПІВ_ІМ'Я, СПІВ_НОМ. Ми чітко сформулювали послідовність кроків виконання запиту, кожний з який відповідає однієї реляційної операції. Мовою реляційного числення даний запит може бути записаний як: Видати СПІВ_ІМ'Я і СПІВ_НОМ для СПІВРОБІТНИКИ таких, що існує ВІДДІЛ з таким же, що і СПІВ_НОМ значенням ВІД_НАЧ і значенням ВІД_КІЛ більшим 10. Іншими словами, якщо сформулювати той же запит з використанням реляційного числення, якому присвячується цей розділ, то ми одержали б формулу, котру можна було б прочитати, наприклад, у такий спосіб: Видати СПІВ_ІМ'Я і СПІВ_НОМ для співробітників таких, що існує відділ з таким же значенням ВІД_НАЧ і значенням ВІД_КІЛ більшим 10. В другому формулюванні ми вказали лише характеристики результуючого відношення, але нічого не сказали про спосіб його формування. У цьому випадку система (СУБД) повинна сама вирішити, які операції й у якому порядку потрібно виконати над відносинами СПІВРОБІТНИКИ і ВІДДІЛИ. Задача оптимізації виконання запиту в цьому випадку також лягає на СУБД. Звичайно говорять, що алгебраїчне формулювання є процедурним, тобто задає правила виконання запиту, а логічне - описовим (чи декларативним), оскільки воно усього лише описує властивості бажаного результату. Як ми вказували на початку лекції, насправді ці два механізми еквівалентні й існують не дуже складні правила перетворення одного формалізму в іншій.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|