1

我对表格中的独立属性(如常量列)有疑问。以下示例的主键和 fds 应该是什么:

令 a,b,c,d,e 是属性,a,b,c 唯一标识一行,d,e 是独立列。那么关键属性应该是什么,fds是什么

4

2 回答 2

2

令 a,b,c,d,e 是属性,a,b,c 唯一标识一行,d,e 是独立列。那么关键属性应该是什么,fds是什么

如果 ABC 唯一标识一行,并且如果 ABC 没有一个子集唯一标识一行,则 ABC 是不可约超级键,也称为候选键。假设 ABC 是唯一的候选键,并且假设 ABC 也是唯一的行列式,那么这些就是 FD。

  • ABC->D
  • ABC->E

ABC->ABC 是一个微不足道的依赖。琐碎的依赖关系通常被忽略。

假设 ABC 是唯一的行列式是什么意思?这意味着您没有任何其他未表达的 FD,例如 D->E,或 AB->D,或 D->A。

于 2013-07-23T14:46:56.787 回答
0

如果一个属性没有出现在该集合中任何依赖项的左侧或该集合中任何(非平凡)依赖项的右侧,则通常称该属性相对于某些依赖项集是独立的。独立并不一定意味着常数,它只是意味着该属性不由其他属性决定。

对模式中独立于任何其他属性的属性建模的“正确”(第 5 范式)方法是将其放在自己的表中。

应该在打算由任何表建模的依赖关系集和在表中实际有效的依赖关系集之间进行区分。您的问题并不完全清楚,因为您说 d,e 是表中的“独立”属性,然后询问依赖关系是什么。如果 a,b,c 是您所说的(超级)键,那么实际上的依赖关系是表中的所有属性都由 a,b,c 确定 - 所以 d 和 e 在全部。

另一方面,如果您不打算实现对 d 或 e 的任何依赖,那么您可以将 (a,b,c,d,e) 设为候选键(因此仅 a,b,c 不再唯一标识)或者您可以将 d 和 e 分别分解为它们自己的表。

于 2013-07-23T18:03:25.257 回答