如何通过关系数据库理论中的函数依赖来确定候选键

时间:2018-03-28 00:27:24

标签: database relational-database database-theory

考虑学生记录的数据库关系如下: Student (I,G,P,M,S,Y,E,L,R,C)

(a)展示如何为学生推导出两个候选键,或证明为什么不能这样做。

(b)学生的正常形式是什么?展示合理的答案。

(c)如果F包含MSY→LRCE而不是PMSY→LRCE,这对纸张意味着什么 名字呢? (即M的值)

(d)为学生找到一个最小的封面(即一组不可约的函数依赖)。

(e)将学生分解为第三范式(3NF)。

我坚持关于候选键的第一个问题。我知道候选键必须是(I,P,M,S,Y,L,R)的子集,因为它们出现在上面的功能依赖性的左侧并确定所有剩余的属性。我们可以删除由P确定的M,但后来我对如何使这些属性最小化感到困惑,特别是来自复杂的函数依赖,例如PMSY→LRCE。感谢任何解决方案和建议。

1 个答案:

答案 0 :(得分:0)

我不会做你的作业,而是作为(a)的提示;

F:IGPMSYELRC->IGPMSYELRC

始终坚持。根据{{​​1}},您可以删除F:P->M并获取

M

现在应用F:IGPSYELRC->IGPMSYELRC 来获取

F:R->C

重复此操作,直到您无法从左侧删除任何属性。 然后你有一个候选键。

使用F:IGPSYELR->IGPMSYELRC . 的不同排列,这可能会产生其他候选键。