我很难理解这张幻灯片中有关关系代数的划分。我做了一些研究,并被很多人提到On Making Relational Algebra Comprehensible by Lester I McCann.,但我在理解其中一张幻灯片(幻灯片13)时遇到了麻烦。我实质上是重新创建下面的幻灯片。
查询:查找提供所有重量等于17的供应商的
sno值。 关系P
+-------------------------------+ | pno pname color weight city | +-------------------------------+ | P1 Nut Red 12.0 London | | . . . . . . . . . . . . . . . | | P6 Cog Red 19.0 London | +-------------------------------+
关系SPJ
+-------------------------+ | sno pno jno qty | +-------------------------+ | S1 P1 J1 200 | | . . . . . . . . . . . . | | S5 P6 J4 500 | +-------------------------+
我了解我需要以下架构。关系A投射了sno, pno
的列表。关系B告诉您哪个pno
等于17权重。
α (sno, pno) β (pno) α ← π sno,pno (SPJ) β ← π pno (σ weight=17 (P))
结果:
关系α
+---------+ | sno pno | +---------+ | S1 P1 | | S2 P3 | | S2 P5 | | S3 P3 | | S3 P4 | | S4 P6 | | S5 P1 | | S5 P2 | | S5 P3 | | S5 P4 | | S5 P5 | | S5 P6 | +---------+
关系β:
+-----+ | pno | +-----+ | p2 | | p3 | +-----+
但是幻灯片接着说:
找到答案中不属于 的值,然后 从可能的答案列表中删除它们。
在我们的P–SPJ示例中,可能的答案列表为
sno
中仅可用的α
值:+-----+ | sno | +-----+ | S1 | | S2 | | S3 | | S4 | | S5 | +-----+
这就是我被困住的地方。他在示例中说“ P-SPJ”,但是如果我这样做,我不会得到上面的关系。我认为甚至无法执行P-SPJ吗?根据数据库系统的第一门课程,当我们对关系应用差异运算时,两个表是否需要具有具有相同属性集的模式(P和SPJ没有)?
如果有人能指出我正确的方向,那将非常感谢!我有一本书数据库系统的第一门课程,第4章讲授关系代数,但不幸的是没有讲除法(我偶然发现并想学习)。
答案 0 :(得分:4)
找到不属于答案的值,并将其从可能的答案列表中删除。
当他们说“查找不属于答案的值”时,这就是他们稍后要做的事情。 “不属于的值”的关系将为π sno (δ)
。
当他们说“并将其从可能的答案列表中删除”时,表示答案是一种关系差异,他们最终会在以后找到下一个&π sno (δ)
的“可能的答案列表”关系之间进行区别。他们在那之后找到的。
在我们的P–SPJ示例中,可能的答案列表只是
sno
中可用的α
值:
当他们说“在我们的P-SPJ示例中,...”时,它们的意思是“在我们的涉及P&SPJ关系的示例中,...”。他们使用破折号;他们没有为关系差异使用减号。他们接下来计算并显示的是“可能答案列表”关系π sno (α)
。
(最后,他们得到了答案,π sno (α) - π sno (δ)
。)