我遇到了一个陈述
的问题考虑以下与学生有关的关系模式
其中主键以下划线显示。中的元组数量 学生和注册表分别为120和8。什么是最大值 和(学生*注册)中可以出现的最小元组数, 其中'*'表示自然连接?
根据我的理解。最大元组应该是8,最小元组也应该是8,因为对于每个(rollnum,course),学生应该有一个卷数。任何可以在这方面提供帮助的人
答案 0 :(得分:4)
如果存在参考约束,确保Enroll中的每个rollno也必须出现在Student中,那么最小值和最大值的答案都是正确的。然而,问题实际上没有提到任何这样的限制。没有必要假设RI约束只是因为rollno属性出现在两个表中而存在。所以最好的答案是0最小和8最大。如果这是一个多项选择题,而0,8不是给定答案之一,那么回答8,8 - 并告诉你的老师这个问题不清楚。
答案 1 :(得分:4)
我希望,你明白什么是自然加入。您可以查看here。
如果表R和S包含公共属性,并且两个表中每个元组中该属性的值相同,则自然连接将产生n * m个元组,因为它将返回元组的所有组合。
考虑以下两个表
表R(具有属性A和C)
A | C ----+---- 1 | 2 3 | 2
表S(具有属性B和C)
B | C ----+---- 4 | 2 5 | 2 6 | 2
自然连接R * S的结果(如果两个表中属性C的域相同)
A | B | C ---+---+---- 1 | 4 | 2 1 | 5 | 2 1 | 6 | 2 3 | 4 | 2 3 | 5 | 2 3 | 6 | 2
您可以看到R和S都包含属性C,在每个元组中值为2。表R包含2个元组,表S包含3个元组,其中Result表包含2 * 3 = 6个元组。
此外,在执行自然连接时,如果两个关系之间没有共同属性,自然连接将表现为笛卡尔积。在这种情况下,你显然有m x n作为最大元组数。
考虑以下两个表
表R(具有属性A和B)
A | B ----+---- 1 | 2 3 | 2
表S(具有属性C和D)
C | D ----+---- 4 | 2 5 | 2
自然连接的结果R * S
A | B | C | D ---+---+----+---- 1 | 2 | 4 | 2 1 | 2 | 5 | 2 3 | 2 | 4 | 2 3 | 2 | 5 | 2
希望这有帮助。
答案 2 :(得分:-1)
如果您询问可能出现在R和S的自然连接中的最大元组数 它是两个元组的笛卡尔积
答案 3 :(得分:-1)
是的答案应该是8,8。 因为Rollno是Student表中的键,而rollno,courseno是复合键。 学生与登记表之间的关系为1:M。 因此,最大元组数与多边相同。 8 如果外键以其他方式存在,则元组的最小数目为8。
所以答案是8,8。