2

目前在数据库课上学习关系代数,并与另一个学生就这个陈述进行辩论

/Project pizza (/Select age < 24 (Person ⋈ Eats))

这个声明会归还 24 岁以下的人吃的所有比萨饼吗?

这里的模式 -

Person (name, age, gender)  
Frequents (name, pizzeria)  
Eats (name, pizza)      
Serves (pizzeria, pizza, price) 

我的同事认为,因为我们正在投影披萨,而这个人的模式不包括披萨,所以它不会起作用。但是我相信,因为我们加入了 Person 和 Eats,因此我们创建了一个新的关系,我们可以通过它来投射比萨饼,并且可以按年龄选择。

4

1 回答 1

2

要获得正确答案,只需评估表达式:

人/加入吃

将产生一张桌子,每个吃披萨的人都在场。它的架构现在是:

(姓名、年龄、性别、披萨)

现在你选择。选择不影响架构,因此其结果的架构是相同的。

现在你投影披萨。架构很简单(披萨)。

所以你现在已经预测了 24 岁以下的人吃的比萨饼的名称。

所以,是的,你是对的。JOIN 创建一个新表。

--dmg

于 2013-05-02T08:03:31.433 回答