素数属性可以相互依赖吗?

时间:2015-04-29 14:28:41

标签: database primary-key normalization composite-key

我有一个关系R {id,building,floor,sequence,capacity}其中:

(building,floor,sequence) -> id 
id -> (building,floor,sequence)
(building,floor,sequence) -> capacity
id -> capacity

这似乎不违反任何正常形式。然而,即使id是主键,id依赖于(建筑物,楼层,序列),反之亦然吗? 如果不是,可以做些什么?

1 个答案:

答案 0 :(得分:2)

在与多个候选键的任何关系中,它们之间不可避免地存在循环依赖性 - 因为任何候选键都可以唯一地标识每个元组,并且每个元组具有每个候选键的值。

选择一个键为"更平等"比其他人和被命名为主键是无关紧要的。 (当我们抽象地谈论时,就像这里一样。某些数据库产品可能具有确实使主键“#34;比备用键更平等”的功能)