R2 的最小和最大基数加入 R3,条件是 E = G 且 F = H?

问题描述 投票:0回答:1

基数是指表或数据集的唯一性。

表 R2 具有属性 D、E 和 F,其中 D 是主键,E 和 F 是与表 R3 的主键相关的外键,具有属性 G、H 和 I,其中 G 和 H 是 PK 。 R2 的基数 N2 = 100,R3 的基数 N3 = 200。

在 E = G 和 F = H 的条件下,将 R2 与 R3 连接创建的表的最小和最大基数是多少?

我的答案是最小值是1,最大值是200,或者N3。 E和F是FK,因此它们可以有很多重复值,只要它们来自G和H,但由于G和H是PK,所以E和F至少有一个值是唯一的,D也是PK ,因此至少有一个值在那里也是唯一的。因此,这些唯一值意味着基数必须至少为 1,最多可以具有与 R3 相同的基数,即 200。

我的推理有哪些缺陷?

属性 I 是问题中唯一的非 FK/PK,那么它如何影响基数?

join foreign-keys primary-key relational-algebra cardinality
1个回答
0
投票

您没有将 FK-to-CK(外键与候选键)等值连接。您正在与 GH 子元组匹配的 EF 子元组进行等连接。尽管每个 E 都有一个 G,每个 F 都有一个 H,但不必存在单个 EF-GH 匹配。 G & H 是唯一的,因此 GH 是唯一的,因此每个 EF 最多可以匹配一个,因此结果中可能有 0 到 100 行。

(如果您想进行合理的分析,您需要找到引用(必须出现在其他地方)其他列集上的各种连接情况的最小和最大结果。您可以通过处理超级键(唯一的列)来处理更多情况集)而不是 CK(候选键)(不包含更小的超级键的超级键)。当您说“PK”(主键)时,您指的是 CK——每个表最多可以有一个 PK。对于没有重复项或空值,SQL UNIQUE 是superkey & FOREIGN KEY 是外国超级键。

© www.soinside.com 2019 - 2024. All rights reserved.