了解关系代数的除法

时间:2018-12-17 22:46:08

标签: relational-algebra relational-division

我很难理解这张幻灯片中有关关系代数的划分。我做了一些研究,并被很多人提到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章讲授关系代数,但不幸的是没有讲除法(我偶然发现并想学习)。

1 个答案:

答案 0 :(得分:4)

  

找到不属于答案的值,并将其从可能的答案列表中删除。

当他们说“查找不属于答案的值”时,这就是他们稍后要做的事情。 “不属于的值”的关系将为π sno (δ)

当他们说“并将其从可能的答案列表中删除”时,表示答案是一种关系差异,他们最终会在以后找到下一个&π sno (δ)的“可能的答案列表”关系之间进行区别。他们在那之后找到的。

  

在我们的P–SPJ示例中,可能的答案列表只是sno中可用的α值:

当他们说“在我们的P-SPJ示例中,...”时,它们的意思是“在我们的涉及P&SPJ关系的示例中,...”。他们使用破折号;他们没有为关系差异使用减号。他们接下来计算并显示的是“可能答案列表”关系π sno (α)

(最后,他们得到了答案,π sno (α) - π sno (δ)。)