3

In relational database design, For example, there is schema S(banker, bname, customer) and function dependencies (FDs)

banker->bname customer,bname->banker

Is schema S in BCNF? Or it should be: (banker, bname) and (customer, banker)

4

2 回答 2

2

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

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

术语行列式是指函数依赖的左侧。如果存在左侧不是候选键的函数依赖关系,则该关系不在 BCNF 中。

让我们用传统符号重写您的示例。

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

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

或者应该是:(banker, bname) and (customer, banker)

不,您的功能依赖关系非常清楚地表明客户不能确定银行家。

于 2012-11-06T13:34:17.003 回答
0

我认为应该是 (banker, bname) 和 (customer, banker)。对我来说看起来更像是外键关系。

于 2012-11-05T23:41:32.693 回答