Реферат: Реляционное исчисление
(SX WHERE EXISTS SPX (SPX.S# = SX.S# AND
SPX.P# SPX = P# (‘P1’) ) );
Переменная кортежа SU из последнего примера определена на объединении множества кортежей поставщиков детали с номером ‘P1’. Обратите внимание, что в определении переменной кортежа SU используются переменные кортежей SX и SPX. Также обратите внимание на то, что в подобных определениях переменных, построенных на объединении отношений, объединяемые отношения, безусловно, должны быть совместимы по типу.
Замечание . Переменные кортежей не являются переменными в обычном смысле (как в языках программирования); они являются переменными в логическом смысле.
2.3. Свободные и связанные переменные кортежей.
Каждая ссылка на переменную кортежа (в некотором контексте, в частности в формуле WFF) является или свободной , или связанной . Сначала поясним это утверждение в чисто синтаксических терминах, а затем перейдем к обсуждению его смысла.
Пусть V – переменная кортежа. Тогда имеем следующее.
- Ссылки на переменную V в формулах WFF типа NOTp свободны или связаны в пределах этой формулы в зависимости от того, свободны ли они в формуле p.Ссылки на переменную V в формулах WFF типа (pANDq) и (pORq) свободны или связаны в зависимости от того, свободны ли они в формулах p и q.
- Ссылки на переменную V, которые свободны в формуле WFFp, связаны в формулах WFF типа EXISTSV(p) и FORALLV(p). Другие ссылки на переменные кортежей в формуле p будут свободны или связаны в формулах WFF типа EXISTSV(p) и FORALLV(p) в соответствии с тем, свободны ли они в формуле p.
Для полноты необходимо добавить следующие замечания.
- Единственная ссылка на переменную V в значении параметра <имя переменной кортежа> является свободной в пределах этого параметра <имя переменной кортежа>.
- Единственная ссылка на переменную V в значении параметра <ссылка на атрибут кортежа> V.A является свободной в пределах этого параметра <ссылка на атрибут кортежа>.
- Если ссылка на переменную V является свободной в некотором выражении exp, то эта ссылка будет также свободной в любом выражении exp’, непосредственно содержащем выражение exp как подвыражение, если только в выражении exp’ не вводится квантор, связывающий переменную V.
Приведём несколько примеров формул WFF, содержащих переменные
кортежей.
- Простые сравнения
SX.S# = S# (‘S1’)
SX.S# = SPX.S#
SPX.P# ≠PX.P#
Здесь все ссылки на переменные SX, PX и SPX являются свободными.
- Логические выражения из простых сравнений
PX.WEIGHT < WEIGHT (15.5) OR PX.CITY = ‘Rome’
NOT (SX.CITY = ‘London’)
SX.S# = SPX.S# AND SPX.P# ≠ PX.P#
PX.COLOR = COLOR (‘Red’) OR PX.CITY = ‘London’
Здесь также все ссылки на переменные SX,PX и SPX являются свободными.
- Формулы WFF с кванторами
EXISTS SPX (SPX.S# = SX.S# AND SPX.P# = P# (‘P2’) )
FORALL PX (PX.COLOR = COLOR (‘Red’) )