Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
бд.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.92 Mб
Скачать

Цільові списки і вирази реляційного обчислення

Отже, WFF забезпечують засоби формулювання умови вибірки з відншень БД. Щоб можна було використовувати числення для реальної роботи з БД, потрібен ще один компонент, який визначає набір і назви стовпців результуючого відношення. Цей компонент називається цільовим списком (target_list).

Цільовий список будується з цільових елементів, кожен з яких може мати наступний вигляд:

  • var.attr, де var - назва вільної змінної відповідної WFF, а attr - назва атрибута відношення, на якому визначена змінна var;

  • var, що еквівалентно наявності підсписку var.attr1, var.attr2, ..., var.attrn, де attr1, attr2, ..., attrn включає назви всіх атрибутів визначального відношення;

  • new_name = var.attr; new_name - нова назва відповідного атрибута результуючого відношення. Цей варіант потрібен у випадках, коли в WFF використовуються декілька вільних змінних з однаковою областю визначення.

Виявом реляційного обчислення кортежів називається конструкція виду target_list WHERE wff. Значенням виразу є відношення, тіло якого визначається WFF, а набір атрибутів та їх назви - цільовим списком.

32. Реляційне числення на доменах.

6.5. Реляційне числення на доменах

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

Основною формальною відмінністю числення доменів від числення кортежів є наявність додаткового набору предикатів, що дозволяють виражати так звані умови членства. Якщо R - це n-арне відношення з атрибутами a1, a2, ..., an, то умова членства має вигляд:

R(<a1: v1>, <a2: v2>, ..., <an: vn>), (m <= n),

де vj - це або літерально задається константа, або назва кортежної змінної.

Умова членства приймає значення true в тому і тільки в тому випадку, якщо стосовно R існує кортеж, що містить вказані значення вказаних атрибутів. Якщо vj - константа, то на атрибут ajзадається жорстка умова, не залежна від поточних значень доменних змінних, якщо ж vj - назва доменної змінної, то умова членства може приймати різні значення при різних значеннях цієї змінної.

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

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

СПІВРОБІТНИК_НОМЕР, СПІВРОБІТНИК_ПІБ WHERE EXISTS СПІВРОБІТНИК_ЗАРПЛАТНЯ2 (СПІВРОБІТНИКИ (СПІВРОБІТНИК_ЗАРПЛАТНЯ2) AND СПІВРОБІТНИКИ (СПІВРОБІТНИК_НОМЕР, СПІВРОБІТНИК_ПІБ, СПІВРОБІТНИК_ЗАРПЛАТНЯ1) AND СПІВРОБІТНИК_ЗАРПЛАТНЯ1 > СПІВРОБІТНИК_ЗАРПЛАТНЯ2)

Реляційне числення доменів є основою більшості мов запитів, заснованих на використанні форм. Зокрема, на цьому численні базувалася відома мова Query-by-Example (QBE), яка була першою (і найбільш цікавою) мовою в сімействі мов, заснованих на табличних формах.