加入外键'基数(关系代数)

时间:2015-07-19 19:21:07

标签: join relational-algebra

来自不同表的多个外键连接的基数(行数)是什么?为什么?

例如

(R1⋈(b=d)R2) ⋈(f=g)R3

关系是:

  • R1(a,b,c) - a是主键
  • R2(d,e,f) - d和e是主键
  • R3(g,h,i) - g是主键

其中b引用d,f引用g。 行数是R1还是在R1和R1 * R3之间?希望你们理解我的问题。

1 个答案:

答案 0 :(得分:0)

存在引用SB的外键RA意味着(a)SA的每个值都出现在SB中,而b)B是S的键。如果在A = B上将R与S连接,则按每(R)每个R row在S和per(b)中匹配,在S中只有一个匹配。因此,连接的行数与S相同。

如果表中的列中存在外键,则该列上的连接结果具有相同的外键。这是因为结果只有该表所执行的那列的值,因此结果中该列的每个值也都在引用的表和列中。

因此,对于您的示例:第一个连接具有S1行。结果有一个从f到R3 g的外键,因为S2做了。所以第二次连接的结果有S1行。