relational-database - 这个关系代数陈述是否会满足我的期望

标签 relational-database relational-algebra

目前正在数据库课上学习关系代数,并与另一名学生就该说法进行辩论

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

这个声明会返还24岁以下的人吃过的所有披萨吗?

此处的架构-

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

我的同事认为,因为我们正在投影披萨,而该人的模式不包含披萨,所以它不会起作用。但我相信,因为我们加入了 Person 和 Eats,从而创建了一种新的关系,我们可以根据该关系来投影披萨,并可以根据年龄进行选择。

最佳答案

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

人/加入吃饭

将生成一张 table ,其中每个吃披萨的人都在场。它的架构现在是:

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

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

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

现在您已经预测了 24 岁以下人群吃的披萨的名称。

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

--dmg

关于relational-database - 这个关系代数陈述是否会满足我的期望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15944907/

相关文章:

mysql - 在可为空的列上进行 LEFT JOIN。行为是什么?

mysql - Yii2 GridView只显示相关记录

mysql - 如何在 MySql 工作台中连接表?

sql - 为什么关系在 SQL 实现中很重要?

sql - 如何将 Sql 命令转换为关系代数?

c# - 匹配系统的表设计

mysql - NoSQL/SQL 架构和实现,1 个集合/表或更多?

sql - 关系代数和混淆一个复杂的例子

sql - C. J. Date 的 "SQL and Relational Theory"中的关系理论