Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

RANGE OF SPX IS SP;



RANGE OF SY IS (SX) WHERE SX.Гopoд_П = 'Москва',
(SX) WHERE EXISTS SPX (SPX.П# = SX.П# AND
SPX.Д# = 'P1');

Переменные SX и SPX в первых двух примерах определены соответственно на отношениях S и SP соответственно (рис. 3.7). Третий пример иллюстрирует запись выражений при определении переменной кортежа. Переменная SY здесь может принимать значения из множества кортежей отношения S для поставщиков из Москвы или поставщиков, которые поставляют деталь Р1 (или для тех и других).

Синтаксис выражений исчисления рассматривается ниже. Запись выражения, формулирующего запрос на языке исчисления кортежей с помощью формы Бэкуса-Наура, упрощенно можно представить следующим образом:

<выражение>::= (у, [, у; [..., у^ ]...]) [ WHERE wff]

у::= {<переменная> | <переменная>.<атрибут> } [ AS <атрибут> ]

wff::=-<ycлoвиe> |

NOT wff |

< ycлoвиe >AND wff|

<условие> OR wff|

IF< условие >THEN wff |

EXISTS <переменная> (wff) |

FORALL <переменная> (wff) |

(wff)

Общий смысл записи выражения состоит в перечислении атрибутов результирующего (целевого) отношения, атрибуты которого должны удовлетворять условию истинности формулы wff (well formulated formula — правильно построенная формула). Список атрибутов целевого отношения, или целевой список, в терминах реляционной алгебры по существу определяет операцию проекции, а формула wff — селекцию кортежей.

В паре <переменная>.<атри6ут> первая составляющая служит для указания переменной кортежа (определенной конструкцией RANGE), а вторая — для определения атрибута отношения, на котором изменяется переменная кортежа. Необязательная часть " AS <атрибут> " используется для переименования целевого отношения. Если она отсутствует, то имя атрибута целевого отношения наследуется от соответствующего имени атрибута исходного отношения.

Употребление в качестве элемента целевого отношения просто имени переменной Т равносильно перечислению в списке всех соответствующих атрибутов, т. е. Т.А1, Т.А2, ..., Т.Аn, где А1, А2,.., Аn — атрибуты отношения, сопоставляемого с переменной Т.

Пример 2. Варианты записи пары <переменная>.<атрибут>.

SX.П#

SX.П# AS Город_Поставщика

SX

SX.П#, SХ.Город_П AS Город_Поставщика, РХ.Д#, РХ.Город_Д# AS Город_Детали

В приведенном определении wff <условие> представляет собой либо формулу wff, заключенную в скобки, либо простое сравнение вида:

<операнд1> Q <операнд2>,

где в качестве любого операнда выступает переменная или скалярная константа, а символ Q обозначает операцию сравнения =,?ь, >, >, <, < и т. д.

Ключевые слова NOT, AND и OR обозначают логические операции соответственно: И, НЕ и ИЛИ. Ключевые слова IF и THEN переводятся соответственно «если» и «то». И, наконец, ключевые слова EXISTS и FORALL называются кванторами. Первый из них — квантор существования, а второй,— квантор всеобщности. Рассмотрим эти кванторы несколько подробнее.

Формула wff вида: EXISTS x (f) означает: " Существует по крайней мере одно такое значение переменной x, что вычисление формулы f дает значение истина ". Выражение вида: FORALLx(f) интерпретируется как высказывание: " Для всех значений переменной х вычисление формулы f дает значение истина ". В общем случае переменные кортежей в формулах могут быть свободными или связанными. В формулах EXISTS х (f) и FORALL х (f) переменные кортежей х всегда являются связанными.

Пример 3. Запись выражения.

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

SX.Город_П WHERE FORALL PX (EXISTS SPX (SPX.П# = SX.П# AND SРХ.Д# = SX.Д#))

Равносильное этому выражение выглядит так:





Дата публикования: 2015-07-22; Прочитано: 527 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...