Реляційне числення

Реляційна алгебра і реляційне числення являють собою два альтернативних підходи Принципова відмінність між ними полягає в наступному Реляційна алгебравизначає в явному вигляді набір операцій (зєднання, обєднання, проекція і тд), які можна використовувати, щоб повідомити системі, як в базі даних з певних відносин сформуватидеякий необхідне відношення, ареляційне числення просто задає систему позначень для визначення необхідного відносини в термінах існуючих відносин Наприклад, розглянемо запит: Вибрати номера постачальників і назви міст, в яких знаходяться постачальники деталі з номером Р2. Алгебраїчна версія цього запиту може бути складена приблизно так (ми навмисне не використовуємо формальний синтаксис, наведений в главе7)

■ Виконати підключення відносин постачальників і поставок SР по атрибуту S #

■ За допомогою операції скорочення виділити з результатів цього зєднання кор

тежі, які відносяться до деталі з номером Р2

■ Сформувати проекцію результатів цієї операції скорочення за атрибутами s #

І CITY

Цей же запит в термінах реляційного числення формулюється приблизно таким чином

■ Отримати атрибути s # і CITY для таких постачальників, для яких щодо SP існує запис про поставку з тим же значенням атрибута s # і зі значенням атрибута Р #, рівним Р2

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

Підкреслимо, однак, що згадані відмінності існують тільки зовні Насправді реляційна алгебра і реляційне числення логічно еквівалентні Кожному висловом в алгебрі відповідає еквівалентне вираження в обчисленні, і точно також кожному виразу в обчисленні відповідає еквівалентне вираження в алгебрі Це означає, що між ними існує взаємно-однозначна відповідність, а відмінності повязані лише з різнимистилямивираження: числення ближче до природної мови, а алгебра – до мови програмування Але, повторимо ще раз, ці відмінності тільки здаються, а не реальні Зокрема, жоден з цих підходів не можна назвати більш непроцедурного в порівнянні з іншим Детальніше питання еквівалентності цих двох підходів розглядатиметься в розділі 84 цієї глави

засновано на розділі математичної логіки, який називається обчисленням предикатів Ідея використання числення предикатів в якості основи мови баз даних вперше була висловлена у статті Кунса (Kuhns) [86] Поняття реляційного числення, тобто спеціального методу застосування обчислення предикатів в реляційних базах даних, вперше було сформульовано Коддом в [61], а в [81] Коду представив мову, заснований безпосередньо на реляційному численні і названий підмовою даних ALPHA. Сама мова ALPHA ніколи не був реалізований, проте мова QUEL [85], [810] – [812], який дійсно був реалізований і деякий час серйозно конкурував з мовою SQL, дуже був схожий на мову ALPHA, що зробив помітний вплив на побудову мови QUEL

Основним засобом реляційного числення є поняття змінної області значень Згідно з коротким визначенням, змінна області значень – це змінна, приймаюча значення з деякого заданого відношення, тобто змінна, допустимими значеннями якої є кортежі заданого відносини Іншими словами, якщо змінна області значень v змінюється в межах відносини г, то в будь-який конкретний момент вираз v представляє деякий кортеж t відносини р Наприклад, запит Отримати номери постачальників, що знаходяться в Лондоні може бути представлений на мові QUEL таким чином

RANGE OF SX IS S

RETRIEVE ( SXS# ) WHERE SXCITY = &quotLondon&quot

Єдиною змінною області значень тут є змінна SX, яка приймає значення з відносини, що представляє собою поточне значення змінної відносини S (оператор RANGE – оператор визначенняцієї змінної області значень) Оператор RETRIEVE означає наступне: Для кожного можливого значення змінної SX вибирати компонент S # цього значення тоді і тільки тоді, коли компонентом CITY цього значення є London .

У звязку з тим, що первинна версія реляційного числення заснована на змінних області значень (на відміну від обчислення доменів, мова про який піде нижче), її називають також обчисленням кортежів Обчислення кортежів докладно описано в розділі 82

Примітка Для зручності приймемо наступну угоду: далі в цій книзі терміни числення і реляційне числення, наведені без такого уточнення, як кортежів або доменів, означатимуть саме числення кортежів (там, де це відіграє якусь роль)

Згодом Лакруа (Lacroix) і Піротт (Pirotte) [87] запропонували альтернативну версію обчислення, звану обчисленням доменів, в якій змінні області значень приймають значення з доменів, тобто є змінними, змінюваними

на доменах, а не на відносинах (Даний термін нелогічний, адже якщо обчислення доменів називається так із зазначеної причини, то з тієї ж причини числення кортежів слід було б назвати обчисленням відносин) У літературі пропонується безліч мов обчислення доменів Найбільш відомим з них, мабуть, є QBE (Query-By-Example – мова запитів за зразком), який вперше описаний в [814] в дійсності мова QBE є змішаним, оскільки в ньому присутні і елементи обчислення кортежів Існує кілька комерційних реалізацій мови QBE, або QBE-подібного мови У загальних рисах числення доменів буде описано в розділі 87, а сама мова QBE коротенько розглядається в розділі 88

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

(Див розділ 7) Ми також опускаємо розгляд відповідних версій реляційних операторів оновлення Всі ці відомості представлені в [33]

Джерело: Дейт К Дж, Введення в системи баз даних, 8-е видання: Пер з англ – М: Видавничий дім «Вільямс», 2005 – 1328 с: Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*