数据库之候选键的确定

Posted rhanqtlnuse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库之候选键的确定相关的知识,希望对你有一定的参考价值。

候选键的确定

设关系模式 \(R\) 中有 \(n\) 个属性,分别为 \(A_1, ... , A_n\)

《数据库原理、编程与性能》一书中给出的方法如下:

\(K := Head(T) \\ for each attribute A in K { \\ if (K - A)_F^+ contains all the attributes in T { \\ K := K - {A} \\ } \\ }\)

但这种方法需要考虑所有的属性序列,对每个属性序列依次进行上述算法。另一种较快速的算法如下:

每个属性在函数依赖集中一定符合以下 4 种形式之一:

  • 在左右都出现
  • 只在左边出现
  • 只在右边出现
  • 未出现

算法步骤:

  1. 只在函数依赖的右边出现的属性,不属于候选键
  2. 只在函数依赖的左边出现的属性,一定属于某个候选键
  3. 外部属性一定存在于每个候选键中
  4. 其他属性逐个与步骤 2 和 3 所得的属性组合,求属性闭包,直至 X 的闭包等于 \(Head(T)\)

以上是关于数据库之候选键的确定的主要内容,如果未能解决你的问题,请参考以下文章

面试复习之数据库

面试复习之数据库

面试复习之数据库

数据库中主键超键候选键外键是什么?

数据库—超键候选键主键外键

外键为啥必须是唯一键?为啥至少唯一键才能作为其他表的外键?不唯一为啥不可以?