возникает вопрос: зачем включать в РМД и алгебру, и исчисление?
Ответ кроется в разном уровне процедурности этих механизмов.
РА представляет в явном виде набор операций, которые можно
использовать для вычисления необходимого результата. Выражения
реляционной алгебры имеют процедурную интерпретацию. Они
сообщают системе, как из базовых отношений построить требуемое
производное отношение. Оно может быть вычислено в соответствии с
определениями элементарных алгебраических операций, с учетом их
старшинства и возможных скобок.
В отличие от РА, РИ есть просто система обозначений для
определения производного отношения в терминах других отношений.
Для формул РИ процедурной интерпретации нет. Они декларативны.
Формула просто определяет условия, которым должны удовлетворять
кортежи результирующего отношения, – требуемые данные
1
.
Например, запрос: «Получить имена поставщиков,
поставляющих деталь Р2» в терминах алгебры имеет вид:
(( SPJ JOIN S) WHERE P# = ‘P2’)[Sn];
и описывает следующую процедуру:
построить естественное соединение SPJ и J по атрибуту S#;
выбрать из результата кортежи, в которых P# = ‘P2’;
выполнить проекцию результата на атрибут Sn.
Однако можно и не указывать, какие соединения, проекции и
селекции строить. Можно сформулировать на некотором формальном
языке фразу следующего содержания:
«Получить значения атрибута Sn для таких поставщиков, для
которых в SPJ существуют кортежи с тем же значением атрибута
S# и со значением атрибута P# = ‘P2’.»
Подобной фразой можно точно указать системе характеристики
интересующего нас отношения. Пусть она сама решает, какие
вычисления нужно проделать для того, чтобы получить его.
Формальный язык для точной записи подобных высказываний
называется реляционным исчислением. Его основой является
1
Предполагается, что человеку легче сформулировать запрос к данным в
терминах исчисления. Однако, на самом деле это не всегда так.