加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

转换为BCNF无损连接

(2018-03-12 16:28:03)
标签:

bcnf无损连接

bcnf

分类: 数据库

BCNF无损连接

引用王珊的数据库中的内容:

http://s14/mw690/003ORk9tzy7iPWlIJg90d&690
个人总结:

1)首先找到关键字

2)确认各函数依赖是否为BCNF,若不是拆分转化为BCNF,拆到最后其实就是二叉树结构的

BCNF:所有的函数依赖X-->Y都有X包含候选码,详细说就是:

1)所有非主属性完全依赖于候选码;

2)所有主属性完全依赖于每一个不包含它的码;

3)不存在主属性依赖于非主属性;

例1:设有关系模式R(UF),其中:

    U{ABCD}F{ABBCDB},把R分解成BCNF模式集:

解:1)候选码:AD

2)分解:

                               候选码AD,U=ABCD, 拆分

U1=BC,F1={B->C}为BCNF,                      U2={ABD}, F2={A-->B,D-->B}非BCNF继续拆分;

                                         U21=AB F21={A-->B}为BCNF               ,U22=DB,F22={D-->B}为BCNF

故分解为:BC  AB  BD


例2:设有关系模式R(ABCD),其上的函数依赖集:

    F{ACCABACDAC}

    (1).F的最小等价依赖集Fm

    (2).R的关键字。

    (3).R分解使其满足BCNF且无损连接性。

解:(1)最小函数依赖集:1)右边拆成单属性F={ACCABA,B->CDA,D-->C}

2)删除多余依赖:B-->A:B+=ABC,多余删去,D->A:D+=ACD,多余删去;F={ACCABCDC}

3)左边都为单属性,故最小依赖集: Fm={ACCABCDC}

(2)关键字BD;

(3)BCNF无损连接。

关键字:BD, U=ABCD拆分;

U1=AC,F1={A->C} 已为BCNF, U2=ABD,F2={B-->A,D-->A}非BCNF继续拆分;

U21=AB,F21={B-->A}, U22=AD,F22={D-->A}

故BCNF无损连接分解为:  AC,AB,AD;



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有