我有一个关系R {id,building,floor,sequence,capacity}其中:
(building,floor,sequence) -> id
id -> (building,floor,sequence)
(building,floor,sequence) -> capacity
id -> capacity
这似乎不违反任何正常形式。然而,即使id是主键,id依赖于(建筑物,楼层,序列),反之亦然吗? 如果不是,可以做些什么?
答案 0 :(得分:2)
在与多个候选键的任何关系中,它们之间不可避免地存在循环依赖性 - 因为任何候选键都可以唯一地标识每个元组,并且每个元组具有每个候选键的值。
选择一个键为"更平等"比其他人和被命名为主键是无关紧要的。 (当我们抽象地谈论时,就像这里一样。某些数据库产品可能具有确实使主键“#34;比备用键更平等”的功能)