Википедия об операторе пересечения Кодда - т. Е. Ваше ∩
Для объединения множеств и разности наборов, два задействованных отношения должны быть union- совместимый - то есть два отношения должны иметь одинаковый набор атрибутов. Поскольку пересечение множеств определяется в терминах объединения множеств и разности множеств, два отношения, участвующих в пересечении множеств, также должны быть совместимы с объединением.
Ничего о количестве кортежей в аргументах.
Кстати, «реляционный», на который вы ссылаетесь, кажется очень плохим. На странице «Объяснение [sic] всех операторов и их синтаксиса» нет объяснения ни семантики, ни синтаксиса операторов. Я ожидал бы, что это объяснит о требовании, чтобы атрибуты были одинаковыми. У него есть только один пример, использующий ∩
, «Это некоторые допустимые запросы». и это очень сложно и неверно во многих отношениях:
ρ id➡i,name➡n(A) - π a,b(π a,b(A)) ∩ σage > 25 or rank = weight(A)
σage > 25 or rank = weight(A)
неверно: для сравнения должно быть двойное ==
, как в первом примере. - Кажется, что между двоичными операторами нет системы приоритетов, поэтому
-
связывается более жестко, чем ∩
? - В любом случае, аргументы для
-
и ∩
несовместимы с объединением: проекция π a,b(A)
имеет только атрибуты a,b
, тогда как выделение σ
имеет все атрибуты A
(включая age, rank
), а проекция ρ
имеет все атрибуты, кроме переименованных на i, n
.
Неудивительно, что вы запутались. Кто тебе сказал использовать программу реляционную? Я бы выбросил это.