Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление данными (пособие).pdf
Скачиваний:
283
Добавлен:
21.05.2015
Размер:
5.42 Mб
Скачать

65

7.2.Реляционное исчисление

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

Речь идет о реляционном исчислении.

Алгебра и исчисление представляют собой два альтернативных подхода к построению формальной системы, реализующей часть реляционной модели, касающуюся операций над данными. Принципиальное отличие этих двух подходов состоит в следующем. Алгебра позволяет в явном виде записать последовательность операций (выборка, проекция, объединение и т.д.), позволяющих в конечном итоге из набора входных отношений получить необходимый результат. Другими словами, алгебра является средством, позволяющим сообщить системе, каким образом может быть получено результирующее выходное отношение.

Исчисление же представляет собой формальный способ описания выходного отношения в терминах входных отношений, не определяя способ получения этого выходного отношения.

Поясним это на примере.

Пусть исходные отношения имеют вид.

СТУДЕНТЫ

КОД_СТУД

ИМЯ

ГОРОД

С2

Иванов

Орел

С5

Петрова

Курск

С4

Сидоров

Москва

С7

Кузнецов

Брянск

С8

Зайцева

Липецк

С3

Павлов

Воронеж

С10

Котов

Орел

С15

Лукин

Воронеж

С23

Белкин

Воронеж

УСПЕВАЕМОСТЬ

КОД_СТУД

КОД_ДИСЦИПЛ

ОЦЕНКА

С2

Д2

5

С4

Д2

4

С8

Д2

5

С7

Д6

3

С7

Д1

4

С3

Д4

5

Рассмотрим следующий запрос: «Получить имена и города для студентов, сдавших дисциплину Д2».

Алгебраический вариант этого запроса можно представить в виде последовательности следующих действий.

1.Выбрать из отношения УСПЕВАЕМОСТЬ кортежи, для которых значение атрибута КОД_ДИСЦИПЛ равно Д2.

2.Произвести операцию естественного соединения (JOIN) полученного отношения с отношением СТУДЕНТЫ.

66

3. Выполнить проекцию полученного отношения на атрибуты ИМЯ и ГОРОД.

Этот же запрос, построенный на принципах реляционного исчисления, будет иметь следующий вид: «Получить значение атрибутов ИМЯ и ГОРОД из кортежей отношения СТУДЕНТЫ, для которых в отношении УСПЕВАЕМОСТЬ существуют кортежи с совпадающими значениями атрибута КОД_СТУД и со значениями атрибута КОД_ДИСЦИПЛ равными Д2».

Видно, что приведенная формулировка фактически задает характеристики или условия, которым должны удовлетворять кортежи результирующего отношения, не касаясь того, каким образом это отношение может быть получено, предоставляя решение этого вопроса СУБД.

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

При этом следует иметь в виду, что при всем при этом алгебра и исчисление являются эквивалентными друг другу в том смысле, что любой запрос, построенный с использованием алгебры, может быть преобразован в форму, основанную на исчислении, и наоборот. Алгебра и исчисление являются в этом смысле двумя возможными стилями формулировки запроса, при этом, алгебра ближе к процедурным языкам программирования, а исчисление к естественному человеческому языку.

Реляционное исчисление основывается на разделе математики, называемом

исчисление предикатов.

Предикат (predicate) – это логическая функция, которая для некоторого аргумента (аргументов), принимает значения – ИСТИНА или ЛОЖЬ.

Центральным понятием реляционного исчисления является понятие переменной, принимающей значение из некоторой области определения. В связи с этим, различают два варианта реляционного исчисления: исчисление кортежей и исчисление доменов. В исчислении кортежей областью определения такой переменной являются кортежи отношения, а в исчислении доменов переменная определена на доменах отношения.

Рассмотрим основные понятия реляционного исчисления на примере исчисления кортежей.

Следующие примеры определений

RANGE OF SX IS СТУДЕНТЫ

RANGE OF DX IS ДИСЦИПЛИНЫ

RANGE OF MX IS УСПЕВАЕМОСТЬ

указывают, что областью определения переменной SX являются кортежи отношения СТУДЕНТЫ (значениями переменной SX являются кортежи этого отношения). Соответственно переменная DX определяется на множестве