我正在学习斯坦福数据库课程,但有一个问题,就是我们要找到所有比萨饼店,这些比萨饼店只能使用Relational Algebra服务于30岁以上的人们所食用的每个比萨饼。

问题由a small database with four relations:组成

Person(name, age, gender)       // name is a key
Frequents(name, pizzeria)       // [name,pizzeria] is a key
Eats(name, pizza)               // [name,pizza] is a key
Serves(pizzeria, pizza, price)  // [pizzeria,pizza] is a key


我知道如何找出30岁以上披萨店的人吃的东西并制作它们的交叉产品,因此我可以检查哪个披萨店兼有两种。

我可以列出所有披萨店的披萨店,但我不知道如何删除只有一种组合的披萨店(如多米诺骨牌)。

Chicago Pizza   cheese  cheese
Chicago Pizza   cheese  supreme
Chicago Pizza   supreme cheese
Chicago Pizza   supreme supreme
Dominos         cheese  cheese
Dominos         cheese  supreme


问答论坛告诉我们使用除法和point us to several presentations.,虽然我知道操作的结果是什么,但是我并不真正理解如何将公式的表达式转换为关系代数语法。

谁能解释我所缺少的,希望能不给出彻底的解决方案?

最佳答案

解决方案是join div运算符
http://en.wikipedia.org/wiki/Relational_algebra#Division_.28.C3.B7.29

看到
http://oracletoday.blogspot.com/2008/04/relational-algebra-division-in-sql.html

关于relational-algebra - 如何找到所有30岁以上的披萨饼店都可以食用的比萨饼?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7821695/

10-08 21:50