Здавалка
Главная | Обратная связь

Основи реляційного числення



У реляційній моделі визначаються два базових механізми маніпулювання даними:

· заснована на теорії множин реляційна алгебра

· засноване на математичній логіці реляційне числення.

Так як і вирази реляційної алгебри формули реляційного числення визначаються над відносинами реляційних баз даних, і результатом обчислення також є відношення.

Ці механізми маніпулювання даними розрізняються рівнем процедурності:

· запит, представлений мовою реляційної алгебри, може бути обчислений на основі обчислення елементарних алгебраїчниих операцій з урахуванням їх старшинства і можливих дужок

· формула реляційного числення тільки встановлює умови, яким повинні задовольняти кортежі результуючого відношення. Тому мови реляційного числення є більш непроцедурними чи декларативними.

Припустимо, що ми працюємо з базою даних, що має схему СПІВРОБІТНИКИ (СПІВ_НОМ, СПІВ_ІМ'Я, СПІВ_ЗАРП, ВІД_НОМ) і ВІДДІЛИ (ВІД_НОМ, ВІД_КІЛ, ВІД_НАЧ), і хочемо дізнатися імена і номери співробітників, що є начальниками відділів з кількістю співробітників більше 10.

Іншими словами, дані двоє відношень:

СПІВРОБІТНИКИ (СПІВ_НОМЕР, СПІВ_ІМ'Я, СПІВ_ЗАРПЛ, ВІД_НОМЕР)
ВІДДІЛИ(ВІД_НОМЕР, ВІД_КІЛ, ВІД_НАЧ)

Ми хочемо довідатися імена і номери співробітників, що є начальниками відділів з кількістю працівників більш 10.

Виконання цього запиту засобами реляційної алгебри розпадається на чітко визначену послідовність кроків:

(1).виконати з'єднання відношень СПІВРОБІТНИКИ і ВІДДІЛИ за умовою СПІВ_НОМ = ВІДДІЛ_НАЧ.


З1 = СПІВРОБІТНИКИ [СПІВ_НОМ = ВІД_НАЧ] ВІДДІЛИ

(2).з отриманого відношення зробити вибірку за умовою ВІД_КІЛ > 10

З2 = З1 [ВІД_КІЛ > 10].

(3).спроецировать результати попередньої операції на атрибути СПІВ_ІМ'Я, СПІВ_НОМЕР

З3 = З2 [СПІВ_ІМ'Я, СПІВ_НОМЕР]

Помітимо, що порядок виконання кроків може вплинути на ефективність виконання запиту. Так, час виконання приведеного вище запиту можна скоротити, якщо поміняти місцями етапи (1) і (2). У цьому випадку спочатку з відношення СПІВРОБІТНИКИ буде зроблена вибірка всіх кортежів зі значенням атрибута ВІДДІЛ_КІЛ > 10, а потім виконане з'єднання результуючого відношення з відношенням ВІДДІЛИ. Машинний час заощаджується за рахунок того, що в операції з'єднання беруть участь менше відношень.

Якби для формулювання такого запиту використовувалася реляційна алгебра, то ми одержали б алгебраїчний вираз, що читався б, наприклад, у такий спосіб:

· виконати з'єднання відношень СПІВРОБІТНИКИ і ВІДДІЛИ за умовою СПІВ_НОМ = ВІД_НАЧ;

· обмежити отримане відношення за умовою ВІД_КІЛ > 10;

· спроектувати результат попередньої операції на атрибут СПІВ_ІМ'Я, СПІВ_НОМ.

Ми чітко сформулювали послідовність кроків виконання запиту, кожний з який відповідає однієї реляційної операції.

Мовою реляційного числення даний запит може бути записаний як:

Видати СПІВ_ІМ'Я і СПІВ_НОМ для СПІВРОБІТНИКИ таких, що існує ВІДДІЛ з таким же, що і СПІВ_НОМ значенням ВІД_НАЧ і значенням ВІД_КІЛ більшим 10.

Іншими словами, якщо сформулювати той же запит з використанням реляційного числення, якому присвячується цей розділ, то ми одержали б формулу, котру можна було б прочитати, наприклад, у такий спосіб: Видати СПІВ_ІМ'Я і СПІВ_НОМ для співробітників таких, що існує відділ з таким же значенням ВІД_НАЧ і значенням ВІД_КІЛ більшим 10.

В другому формулюванні ми вказали лише характеристики результуючого відношення, але нічого не сказали про спосіб його формування. У цьому випадку система (СУБД) повинна сама вирішити, які операції й у якому порядку потрібно виконати над відносинами СПІВРОБІТНИКИ і ВІДДІЛИ. Задача оптимізації виконання запиту в цьому випадку також лягає на СУБД.

Звичайно говорять, що алгебраїчне формулювання є процедурним, тобто задає правила виконання запиту, а логічне - описовим (чи декларативним), оскільки воно усього лише описує властивості бажаного результату. Як ми вказували на початку лекції, насправді ці два механізми еквівалентні й існують не дуже складні правила перетворення одного формалізму в іншій.

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.