来自功能依赖性的数据库候选键 - 特定技术性

时间:2013-10-12 20:24:13

标签: database functional-dependencies candidate-key

我正在使用关系数据库的一组属性和一组函数依赖项,并且有一个特定的问题,即哪些键将被视为此模式的候选键。

我正在使用的属性集是:

R = (A, B, C, D, E, F, G, H)

功能依赖的集合是:

F = { AC -> B, AB -> C, AD -> E, C -> D, BC -> A, E -> G, ABE -> D, FG -> E}

所以这就是我想弄清楚的:这组属性是否有任何候选键,因为在功能依赖集中根本没有确定/提到H?

根据定义,候选键确定其他所有内容,对吗?如果H本身没有确定任何东西,那么这个集合中是否还有候选键?

任何见解都表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

召回(Wikipedia

  

在数据库的关系模型中,关系的候选键是   这种关系的最小超级钥匙;也就是说,一组属性   使得该关系不具有两个不同的元组(即行或   记录在通用数据库语言中)具有相同的值   属性(这意味着属性集是一个超级键)   (1)成立的这些属性没有适当的子集   (这意味着该集合很小)。

因此,

  

所以这就是我想弄清楚的:这组属性是否有任何候选键,因为在功能依赖集中根本没有确定/提到H?

这只是意味着H将包含在每个候选键R中。例如,ACFH是候选密钥。由于AC-> B,D可以推断B,因为AD-> E,因为C-> D,E,并且因为E-> G,所以可以推断G.另一方面,您不能从ACH推断F,从ACF推断H,从AFH推断C,从CFH推断A.