来自不同表的多个外键连接的基数(行数)是什么?为什么?
例如
(R1⋈(b=d)R2) ⋈(f=g)R3
关系是:
其中b引用d,f引用g。 行数是R1还是在R1和R1 * R3之间?希望你们理解我的问题。
答案 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行。