目前在数据库课程和学习关系代数,并与另一名学生就此声明进行辩论
/Project pizza (/Select age < 24 (Person ⋈ Eats))
这个声明是否会回馈24岁以下的人吃掉的所有比萨饼?
架构在这里 -
Person (name, age, gender)
Frequents (name, pizzeria)
Eats (name, pizza)
Serves (pizzeria, pizza, price)
我的同事认为,因为我们正在投射披萨而且这个人的架构不包括披萨,它不会起作用。但是我相信,因为我们加入了人和吃,因此我们创造了一个新的关系,我们投射比萨饼,并可以按年龄选择。
要获得正确答案,请简单评估表达式:
人/加入吃
将产生一张桌子,其中每个吃披萨的人都在场。它的架构现在是:
(姓名,年龄,性别,披萨)
现在你选择。选择不会影响架构,因此其结果的架构是相同的。
现在你投射披萨。架构很简单(披萨)。
所以你现在已经预测了24岁以下人们吃的比萨饼的名字。
是的,你是对的。 JOIN创建一个新表。
--dmg