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)
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)
我不认为“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)
不,您的功能依赖关系非常清楚地表明客户不能确定银行家。
我认为应该是 (banker, bname) 和 (customer, banker)。对我来说看起来更像是外键关系。