Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_Otveti_po_liksiam.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
346 Кб
Скачать
☆
  1. Реляционная модель данных: реляционное исчисление кортежей Реляционное исчисление

Реляционное исчисление основано на логике первого порядка. Если два варианта реляционного исчисления:

  • The Исчисление доменов (DRC), где переменными являются элементы (атрибуты) кортежа.

  • The исчисление кортежей (TRC), где переменными являются кортежи.

Мы хотим обсудить исчисление кортежей потомучто оно лежит в основе большинства реляционных языков. Подробное обсуждение DRC (и также TRC) смотри у [Дейта, 1994 год] или [Ullman, 1988 год].

Исчисление кортежей

Запросы, использующие TRC, представлены в следующем виде: x(A) ∣ F(x) где x - это переменная кортежа, A - это множество атрибутов и F - формула. Результирующие отношение состоит из всех кортежей t(A), которые удовлетворяют F(t).

Если мы хотим ответить на вопрос из примера Запрос с использованием реляционной алгебры, с помощью TRC, то мы сформулируем следующий запрос:

{x(SNAME) ∣ x ∈ SUPPLIER ∧ \nonumber

∃ y ∈ SELLS ∃ z ∈ PART (y(SNO)=x(SNO) ∧ \nonumber

z(PNO)=y(PNO) ∧ \nonumber

z(PNAME)='Screw')} \nonumber

Вычисление запроса над таблицами из Базы данных поставщиков и товаров опять приведёт к тому же результату что и в Запрос с использованием реляционной алгебры.

Реляционная алгебра и реляционное исчисление

Реляционная алгебра и реляционное исчисление имеют одинаковую выражающую мощность; т.е. все запросы, которые можно сформулировать с помощью реляционной алгебры, могут быть также сформулированы с помощью реляционного исчисления и наоборот. Первым это доказал E. F. Codd в 1972 году. Это доказательство основано на алгоритме (“алгоритм редукции Кодда”) по которому произвольное выражение реляционного исчисления может быть сокращено до семантически эквивалентного выражения реляционной алгебры. Более подробное обсуждение смотри у [Дейта, 1994 год] и [Ullman, 1988 год].

Иногда говорят, что языки, основанные на реляционном исчислении "высокоуровневые" или "более описательные", чем языки, основанные на реляционной алгебре, потому что алгебра (частично) задаёт порядок операций, тогда как исчисление оставляет компилятору или интерпретатору определять наиболее эффективный порядок вычисления.

Википедия

Исчисление кортежей — направление реляционного исчисления, где областями определения переменных являются тела отношений базы данных, то есть допустимым значением каждой переменной является кортеж тела некоторого отношения.

Операторы исчисления кортежей (в синтаксисе языка QUEL)

Определение кортежной переменной

RANGE ИмяПеременной IS ИмяОтношения

Ссылка на значение атрибута аналогична ссылке на значение поля структурной переменной в Си:

ИмяПеременной. ИмяАтрибута

Правильно построенные формулы

Правильно построенная формула (Well-Formed Formula, WFF) служит для выражения условий, накладываемых на кортежные переменные.

Простые условия

Простые условия представляют собой операции сравнения скалярных значений. Примеры:

ИмяПеременной. ИмяАтрибута = СкалярноеЗначение

ИмяПеременнойА.ИмяАтрибутаБ = ИмяПеременнойВ.ИмяАтрибутаГ

ИмяПеременной. ИмяАтрибута <> СкалярноеЗначение

ИмяПеременнойА.ИмяАтрибутаБ < ИмяПеременнойВ.ИмяАтрибутаГ

Сложные условия

Сложные условия строятся с помощью логических связок NOT, AND, OR и IF … THEN с учетом обычных приоритетов операций (NOT > AND > OR) и возможности расстановки скобок. Так, если Формула — правильно построенная формула, а Условие — простое сравнение, то

NOT Формула

Условие AND Формула

Условие OR Формула

IF Условие THEN Формула

являются правильно построенными формулами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]