对功能依赖性的困惑

时间:2014-04-09 13:58:10

标签: sql database relational-database functional-dependencies

我目前正在修读关系数据库课程,但我无法理解功能依赖关系以找到合适的主键。

这是我的表格:D = {P,Q,R,S,T,U,V,W,X,Y,Z}

这是我的功能依赖集:

{P,R} - > {Q,T,U}

{T} - > {S}

{V,W} - > {X,Z}

{X} - > {Y}

有人可以了解如何找到D的主键吗?

1 个答案:

答案 0 :(得分:1)

你弄清楚了; {PRVW}是D的唯一候选键。

但是你应该知道功能依赖性并不能确定“正确的主键”。相反,功能依赖性确定候选键集。通常有不止一个候选键。

没有正式的,合乎逻辑的基础来说,“这个候选键显然是主键,而其他候选键都不符合条件。”但是,选择其中一个通常是有实际意义的。例如,较窄的键在索引中占用较少的空间,这通常对应于更快的性能。因此,作为一个纯粹的实际问题,将最窄的候选键作为主键有时是有意义的。但是,这又是一个实际问题,而不是一个正式的逻辑问题。