-1

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

我正在使用的属性集是:

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 不是由任何东西决定的,而是由它自己决定的,那么这个集合中还会有任何候选键吗?

任何见解都值得赞赏。谢谢!

4

1 回答 1

1

回想一下(维基百科

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

因此,

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

这仅仅意味着 H 将包含在R 可能拥有的每个候选键中。例如,ACFH 是候选键。你可以推断 B 因为 AC->B,D 因为 C->D,E 因为 AD->E,G 因为 E->G。另一方面,您不能从 ACH 推断 F,从 ACF 推断 H,从 AFH 推断 C,从 CFH 推断 A。

于 2013-10-15T11:29:04.867 回答