Информационное обеспечение систем управления

       

существует некоторый кортеж s, принадлежащий


Например, формула (
s)(R(s)) означает, что отношение не пусто, т.е. существует некоторый кортеж s, принадлежащий R.

5. Формулы могут при необходимости заключаться в скобки. Используется следующий порядок старшинства:

§        арифметические операторы сравнения;

§        кванторы
 и
;

§        ?, ?, ¬.

6. Ничто иное не является формулой.

В качестве примера можно записать выражение реляционного исчисления на переменных-кортежах, соответствующее операции проекции в реляционной алгебре:

.

Введем ограничения на конечность реальных отношений в БД, чтобы исключить возможность формирования выражений типа {t|-R(t)}, не имеющих смысла. Это выражение обозначает все возможные, не принадлежащие R кортежи, арность которых согласуется с t.

С этой целью в реляционном исчислении рассматривают только безопасные выражения {t|?(t)}, для которых выполняется условие, что каждый компонент (элемент столбца) любого кортежа t, удовлетворяющего ?(t) является элементом некоторого множества элементов D(?). Множество D(?) определяется как функция фактических отношений, которые указываются в ?(t), и констант, присутствующих в формуле ?(t) и элементов кортежей тех отношений, которые указаны в ?(t). Так как все отношения в БД предполагаются конечными, то и множество D(?) – конечно:

D(?)={a1.?}
{a2.?}
{an.?}
?1(R1)
?2(R1)
?k(Rn),

где a1.?, a2.?, ..., an.? – константы, встретившиеся в формуле ?(t); ?1(R1), …, ?k(Rn) – проекции кортежей фактических отношений R1, ..., Rn, встретившихся в формуле ?(t) (в данном случае – компоненты кортежей).

При таком определении множества D(?) справедливо следующее:

D(?1(t) ??2(t))= D(?1)
D(?2),

D(?1(t) ??2(t))= D(?1)
D(?2),

D(?1(t) ?¬?2(t))= D(?1)
D(?2) и т.п.

Например, если задано выражение {t|c ?R(t)}, где R – бинарное отношение, то

D(?)={c}
?1(R)
?2(R).


Содержание  Назад  Вперед