首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BCNF分解,何时停止分解?

BCNF分解,何时停止分解?
EN

Stack Overflow用户
提问于 2014-03-19 11:10:54
回答 2查看 231关注 0票数 0

我在理解BCNF分解时遇到了困难。

如果我有:

代码语言:javascript
复制
R=(A,B,C)

FDs: AB -> C, C -> B

计算闭包时,我得出的结论是最小键是{AB}和{AC}。

代码语言:javascript
复制
Therefore, 
   AB --> C is NOT in BCNF violation because AB is a key
   C --> B IS in violation because C is not a key.

I decompose C --> B like this

R1 = Closure of C = (C,B)
R2 = (A,C)

我不确定如何从这里开始。如果需要进一步分解,我该怎么做?如果我应该在这里结束,你怎么知道什么时候停止分解?

EN

回答 2

Stack Overflow用户

发布于 2014-03-19 16:05:52

R1和R2是当你停下来的时候。分解之后,您将识别新关系中的键和函数依赖项。R1中的密钥是C(使用FB: C -> B,没有BCNF冲突),R2中的密钥是AC (也没有BCNF冲突)。

票数 0
EN

Stack Overflow用户

发布于 2017-10-17 08:24:00

AB->CC->B编写闭包

代码语言:javascript
复制
{A,B}+ = {A, B, C} 
{C}+= {C, B}

A+B是一个超密钥,因此它没有违反BCNF。因此,我们使用违反规则的FD (C->B)进行分解。

代码语言:javascript
复制
{A, B, C} - {B, C} = {A} 

然后将左侧的C->B添加到{A}中,得到{A, C}{B, C},因此我们将R(A, B, C)分解为R(B, C)R(A, C)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22495446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档