关系
所用符号
使用的方法
1.) (|r ⨝ s|) = nr * (ns/V(A,s))
估计结果的规模
1.)w ⨝ x ⨝ y ⨝ z。
w ⨝ x = nw * (nxV(B,x)) = 1000 * (200050)=40000。
w ⨝ x ⨝ y ◃So_25B9" z = 2400000 * (400040) = 240000000。
2.)σC=20(y) ⨝ z。
σC=20(y)=300050=60。
我做的对不对,如果我做的不对,谁能给我纠正一下?
先谢谢你。
(不算是答案,但太长了,不好评论。)
我猜测 "V(relation,attribute)=关系中的不同属性 "的意思是指在关系中的数 鲜明 价值观 对于属性 attribute
与...有关 relation
. 这其实帮助不大,因为它并没有告诉我们,在(比如说)的属性值中是否有多少是被计算的。V(w,B)
等于 价值观 的人 V(x,B)
. 所以,为了开始解决这个问题
1.)w ⨝ x...。
之间的共同属性 w, x
是 B
. 我们得到的信息是有60种不同的 B
值在 w
即 V(w,B)
和50个不同的 B
值在 x
即: V(x,B)
.
V(x,B)
的60个值中可能有共同点。V(w,B)
所以加入的基数至少是50。在这种情况下,我们只能说10个来自于 V(w,B)
不能出现,所以最大的cardinality是(1000 - 10)乘以在 x
.w, x
可以是介于两者之间的任何东西。同样的不确定性适用于加入 y, z
. 那么你的 "使用的方法"。(|r ⨝ s|) = nr * (ns/V(A,s))
必须包括一大堆的假设。我不会去猜测这些假设, 但他们可能是一些关于分布的传播的东西 A, B
值内 w
和传播。B
之间的数值。w, x
.
你的教材中是否包含任何这样的假设解释的符号?
同样考虑问题
2.)σC=20(y) ⨝ z。
我们得到了 V(y,C) = 50
; 这并不能告诉我们这50个不同的值中是否有任何一个是 C=20
;如果有一个是,给定的并没有告诉我们是否所有的50个。V(y,D)
的元组会出现不同的值,并带有 C=20
,也许只有一个人这样做。
所以 σC=20(y)
是在零和(3000 - 49)之间的任何地方,在我们加入之前,同样是在 z
. 我看不出你的 "使用的方法 "能告诉我们任何关于单值限制所产生的基数的信息。σC=20
-- 除非我又做了一堆假设,猜测了一些关于你可能被告知的限制的 "深层背景"。
在一般情况下,对于实际表格中的实际数值,让数值均匀分布是非常不现实的。通常商业数据既表现出相同值在很多行中重复的聚类,也表现出很多可能的值根本没有出现的稀疏性。如果你是连接关系,通常在现实的商业数据中,会有 FOREIGN KEY
同名属性的约束,这意味着(比如)所有50个 V(w,B)
价值观 REFER TO
60个数值中的50个 V(x,B)
.
这整个问题给人的感觉就像一个抽象的、没有实际用途的学术练习。
哦,多说一句。自然连接 ⨝
是一个换算运算。w ⨝ x
== x ⨝ w
;和联想 (w ⨝ x) ⨝ y == w ⨝ (x ⨝ y)
,这就是为什么Q 1.可以写出 w ⨝ x ⨝ y ⨝ z
没有括号,没有歧义。所用方法 "公式不是换算式,此外,如果你把它扩展到适用于 4 个关系的连接,你会得到不同的结果,这取决于你如何对表达式进行分组(括号)。