Базы данных. Основы SQL реляционных баз данных. Копейкин М.В - 27 стр.

UptoLike

спроецировать результат предыдущей операции на атрибут Заказчик.
Мы четко сформулировали последовательность шагов выполнения запроса,
каждый из которых соответствует одной реляционной операции. Если же
сформулировать тот же запрос с использованием реляционного исчисления, которому
посвящается этот раздел, то мы получили бы формулу, которую можно было бы
прочитать, например, следующим образом: Выдать Заказчиков,
для которых планируется
выпуск изделий со значением Количество по плану > 10.
Во второй формулировке мы указали лишь характеристики результирующего
отношения, но ничего не сказали о способе его формирования. В этом случае система
должна сама решить, какие операции, и в каком порядке нужно выполнить над
отношениями ИЗДЕЛИЕ и ЦЕХ_ИЗДЕЛИЕ.
Обычно говорят
, что алгебраическая формулировка является процедурной, т.е.
задающей правила выполнения запроса, а формулировка на языке исчисления носит
описательный (или декларативный) стиль, поскольку она всего лишь описывает свойства
желаемого результата. Как мы указывали в начале параграфа, на самом деле эти два
механизма эквивалентны и существуют не очень сложные правила преобразования
одного
формализма в другой.
Так на языке SQL запрос будет оформлен следующим образом:
SELECT ИЗДЕЛИЕ.Заказчик
FROM ИЗДЕЛИЕ, Цех_Изделие
WHERE ИЗДЕЛИЕ.Шифр=Цех_Изделие.Шифр_изделия AND
Цех_Изделие.Количество_по_плану > 10;
Как видно из запроса, в любой момент времени переменная - ИЗДЕЛИЕ.Заказчик
представляет некоторый кортеж отношения ИЗДЕЛИЕ. При использовании кортежных
переменных в формулах
можно ссылаться на значение атрибута переменной (это
аналогично тому, как, например, при программировании на языке Паскаль и Си можно
сослаться на значение поля структурной переменной типа Record и Struct). Точка между
именем отношения и атрибутом этого отношения и указывает на этот факт, и является
обязательной в конструкциях языка.
Отметим, что результатом запроса всегда
будет таблица. Если проанализировать
инструкцию FROM, то ее результатом будет декартово произведение отношений
ИЗДЕЛИЕ и ЦЕХ_ИЗДЕЛИЕ. После выполнения инструкции WHERE получается