101
В реляционном же исчислении, если t кортеж r, а у кортеж s, этот
запрос может включать в себя следующие компоненты:
t.Назв_дет - целевой список;
t in r and у in s and t.Кoд_дет = у.Код_дет and t.Bec = у.Вес and
t.Hазв_дет = у.Назв_дет — определяющее выражение.
В рассмотренных примерах были использованы операции выбора,
пересечении и проецирования реляционной алгебры.
Аналогично можно
получить конструкции реляционного исчисления, соответствующие ряду
других операций: объединению, разности и произведению.
Несколько иначе выглядят аналоги только двух операций
реляционной алгебры — операций соединения и деления. Для построения
аналогов этих операций требуются кванторы: квантор существования для
соединения и квантор всеобщности для деления.
8.2.2. Квантор существования
Квантор существования означает, что существует
хотя бы один
экземпляр определенного типа вещей. В реляционном исчислении квантор
существования используется для задания условия того, что определенный
тип строк в отношении существует.
Рассмотрим отношения:
ПОТРЕБНОСТИ СКЛАД
Код_дет Назв_дет Количество Код_дет Стеллаж Кол_дет
01
02
03
04
05
А
Д
В
С
Е
1
2
2
3
1
01
03
04
05
10
02
100
250
2
Запрос: Перечислить названия деталей, потребности в которых
покрываются деталями, хранящимися на складе.
Очевидно, что решением этой задачи будет отношение, содержащее
названия некоторых деталей. Это отношение состоит из одного столбца,
так что в этом случае целевым списком является:
t.Назв_дет,
где t— строка из отношения ПОТРЕБНОСТИ.
Пусть s — строка отношения СКЛАД.
Формирование определяющего
выражения осуществляется, исходя
из следующего. Для того чтобы деталь вошла в отношение решения,
должно удовлетворяться условие, что на складе эта деталь имеется в
достаточном количестве. Другими словами, если Код_дет встречается в
строке отношения СКЛАД с Кол_дет > Количество в строке отношения
ПОТРЕБНОСТИ, то эта деталь должна быть включена в
решение. Таким
образом, условие таково: существует хотя бы одна строка в отношении