具有循环功能依赖性的Boyce-Codd普通形式

时间:2012-11-05 23:37:40

标签: database-design relational-database functional-dependencies bcnf

在关系数据库设计中,例如,有架构S(银行家,bname,客户)和功能依赖(FD)

banker-> BNAME 顾客,bname->银行家

BCNF中的模式S?或者它应该是: (银行家,bname)和(客户,银行家)

2 个答案:

答案 0 :(得分:1)

我不认为'S'在BCNF。这是Chris Date对BCNF的非正式定义。

  

当且仅当唯一的决定因素是候选者时,relvar才在BCNF中   键。 (数据库系统简介,第7版,第367页)

术语 determinant 表示功能依赖的左侧。如果存在功能依赖,其左侧不是候选键,则该关系不在BCNF中。

让我们用传统的符号重写你的例子。

R{ABC}
A->B
BC->A

有两个候选键:AC和BC。 A-> B的左侧不是候选键。所以R不在BCNF。

  

或者它应该是:(银行家,bname)和(客户,银行家)

没有。您的功能依赖性非常清楚地表明客户决定银行家。

答案 1 :(得分:0)

我认为应该是(银行家,bname)和(客户,银行家)。看起来更像是与我的外键关系。