RANGE OF SY IS

(SX) WHERE SX.City = 'Смоленск',

(SX) WHERE EXISTS SPX (SPX.Sno = SX.Sno AND SPX.Pno = 1)

 

Здесь переменная кортежа SY может принимать значения из множества кортежей S для поставщиков, которые или размещены в Смоленске, или поставляют деталь под номером 1, или и то и другое.

 

Для сравнения с реляционной алгеброй рассмотрим некоторые запросы на языке исчисления кортежей, которые соот­ветствуют рассмотренным ранее.

 

1) Получить имена поставщиков, которые поставляют деталь под номером 2.

 

SX.Sname WНERE EXISTS SPX ( SPX.Sno = SX.Sno AND SPX.Pno = 2 )

 

2) Получить имена поставщиков, которые поставляют по крайней мере одну красную деталь.

 

SX.Sname WНERE EXISTS SPX ( SX.Sno = SPX.Sno AND

EXISTS РХ ( РХ.Рno = SPX.Рno AND PX.Color = 'Красный' ) )

 

3) Получить имена поставщиков, которые поставляют все детали.

 

SX.Sname WНERE FORALL РХ ( EXISTS SPX ( SPX.Sno = SX.Sno AND SPX.Pno = РХ.Рno ))

 

Как и в случае реляционной алгебры, вычислительные возможности реляционного исчисления можно расширить, включив но­вую категорию – скалярные выражения, в которых операнды могут быть константами, ссылками на атрибуты и (или) ссылками на итоговые функции.

 

Ранее утверждалось, что реляционная алгебра и реляционное исчисле­ние в своей основе эквивалентны. С помощью алгоритма, называемого «алгоритмом редукции Кодда», можно любое выражение исчисления преобразовать в семантически эквивалентное выражение алгебры. Из существования алгоритма преобразования Кодда следует, что реляционная алгебра обладает реляционной полнотой, т. е. не уступает по возможностям алгебре. Реляционную полноту рассматривают как основную меру выразительной силы языков баз данных вообще. В частности, так как исчисле­ние и алгебра реляционно полные, то они могут служить базисом для проектирования языков, не уступающих им по выразительности.