关系代数和基数?

时间:2018-03-14 03:57:04

标签: relational-algebra cardinality

当涉及到关系代数中的基数主题时,我感到非常困惑。我知道基数本质上是指表或数据集的唯一性。因此,我将解决我试图解决的问题,也许有人可以帮助我,或者给我比我找到的更好的资源。

我有一个表R2,其中包含属性D,E和F,其中D是主键,E和F是与下表的主键相关的外键。表R3,具有属性G,H和I,其中G和H是PK。 R2的基数N2 = 100,R3的基数N3 = 200.那么,在将R2加到R3并且条件为E = G且F = H的情况下,最小和最大基数是多少?

我的答案是最小值为1,最大值为200或N3。我的思维过程是E和F是FK,所以它们可以有许多重复值,只要它们来自G和H,但由于G和H是PK,因此E和F的至少一个值是唯一的,D也是一个PK,所以至少有一个值也是唯一的。因此我假设这些唯一值意味着基数必须至少为1,并且最多它可以具有与R3相同的基数,即200.但老实说,我自己的推理对我来说甚至没有意义。

整个想法对我来说似乎很抽象。属性I是问题中唯一的非FK / PK,那么它如何影响基数?对于长篇大论的问题,我很抱歉,我对这个问题感到非常困惑,并且非常喜欢这个主题的任何帮助。

1 个答案:

答案 0 :(得分:0)

你不是等于FK-to-CK(候选键的外键)。您正在等待与GH子元组匹配的EF子组。虽然每个E都有G&每个F都有一个H,没有一个EF-GH匹配。 G& H是唯一的,因此GH是唯一的,因此每个EF最多可以匹配一个,因此结果中可能有0到100行。

(如果你想进行声音分析,你需要找到引用(必须出现在其他地方)其他列的列集上的各种连接情况的最小和最大结果。你可以通过处理超级密钥来处理更多的情况(唯一列集)不是CK(候选键)(超短键不包含较小的超级键)。当你说“PK”(主键)时你的意思是CK - 每个表最多只能有一个PK。没有重复或空值, SQL UNIQUE是超级密钥& FOREIGN KEY是外来超级密钥。