3nf和bcnf分解_如何分解成3nf

3nf和bcnf分解_如何分解成3nf1.3NF分解先求出正则覆盖Fc对于Fc里面的所有函数依赖a->b,均转化为Ri=ab对于所有的模式Ri如果包含候选码,进行第4如果都不包含候选码,将任意一个候选码添加到模式Ri里面如果一个模式被另一个模式包含,则去掉此被包含的模式。例子:…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

相关系列:
ER图转为关系模式
无损分解和保持依赖
3NF分解与BCNF分解
正则覆盖与候选码
如何设计ER图(弱实体集)
如何设计ER图(映射基数)


1. 3NF分解

在这里插入图片描述

  1. 先求出正则覆盖Fc
  2. 对于Fc里面的所有函数依赖a->b,均转化为Ri=ab
  3. 对于所有的模式Ri
    • 如果包含候选码,进行第4
    • 如果都不包含候选码, 将任意一个候选码添加到模式Ri里面
  4. 如果一个模式被另一个模式包含,则去掉此被包含的模式。

例子:U={A,B,C,D,E,G},F={B->G,CE->B,C->A,CE->G,B->D,C->D}

  1. 正则覆盖为{B->DG,CE->B,C->AD}
  2. R1=BDG,R2=CEB,R3=CAD
  3. CE是候选码,R2包含CE
  4. R1,R2,R3没有包含关系
  5. 3NF分解为{BDG},{CEB},{CAD}

例子关系模式r(A,B,C,D,E,F),函数依赖集F: A->BCD,BC->DE,B->D,D->A
1.函数依赖是:A->BC.B->DE,D->A
2.R1=ABC,R2=BDE,R3=DA,不包含候选码(AF,BF,DF)中任意一个,所以任意添加一个R4=AF
3. 3NF分解为{ABC,BDE,DA,AF}

2.BCNF分解

给出R和函数依赖集F:

  1. 求出候选码
  2. 观察函数依赖集,如果左边不是超码(候选码),则不满足条件
  3. 用不满足条件的函数依赖(A->B)进行分解,这样分解之后就满足了
    • R1=AB(这样就满足了)
    • R2=(R-R1)∪A
    • F2={…}去掉B的所有函数依赖,尽可能写全
  4. 对F2进行步骤1的计算。
  5. 重复直到所有的满足条件

在这里插入图片描述在这里插入图片描述


例:R(A,B,C,D,E)
F={A->C,C->D ,B->C,DE->C,CE->A}
候选码为BE
考虑A->C,
R1=AC,R2=ABDE
F2={A->D,B->D,DE->D,BE->A,DE->A},候选码为BE,不是BCNF分解,所以继续分解。
考虑A->D
R21=AD,R22=ABE
F22={BE->A} 候选码为BE,全部满足
所以为{AC,AD,ABE}


例子:
在这里插入图片描述

R候选码为A,CD,BC,E
存在非候选码B,B->D
所以R不是BCNF分解。
考虑B->D,
R1=BD
R2=ABCE
F2={A->BC,BC->E,E->A,BC->A}候选码为A,E,BC
所以BCNF分解为{ABCE,BD}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/219147.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • JAVA留言板_java项目实例源码

    JAVA留言板_java项目实例源码java实现简单留言板功能的代码实例数据库对应的表:guestbook:id,name,phone,email,title,content,time;id新建webproject:guestbookbuildPath:引入连接数据库的驱动的类库在webRoot目录中加入:+faceditor+jsweb.xml代码:xmlns=”http://java….

  • 简述nginx日志管理切割日志(亲测可行)

    简述nginx日志管理切割日志(亲测可行)

  • java少儿编程 pdf_Java少儿编程

    第0章 被称作黑魔法的编程1书写魔法:算法 2第 1章咒语之书 6你好,世界 8我们的第 一次实践 11第 2章变量宝藏 14什么是变量 14运算符 18第0章 被称作黑魔法的编程1书写魔法:算法 2第 1章咒语之书 6你好,世界 8我们的第 一次实践 11第 2章变量宝藏 14什么是变量 14运算符 18关于变量和运算符的一些挑战 21电子存钱罐 23附录:你还可以用字符…

  • 国内NFT平台及玩法一览[通俗易懂]

    国内NFT平台及玩法一览[通俗易懂]2021年被称为NFT的“元年”,互联网巨头、各大企业、艺术家、明星纷纷入局NFT,屡创新高的NFT价格更是让其成为大众关注焦点。此推出NFT系列专题研究,盘点和总结NFT的发行市场、平台背景、投融资状况、市场热点、政策监管等相关内容,帮助读者对NFT市场有更全面地了解。随着国外NFT风潮的火热,国内风潮总算是姗姗来迟,入局NFT的选手也是越来越多。NFT发行平台是为NFT提供发行、交易等服务的平台,根据平台的所在地,NFT发行平台能够被分为国内和国外两个市场。本文主要对于国内NFT发行平台.

  • 菜鸟级入门学习maven的使用,很实用的入门教程

    菜鸟级入门学习maven的使用,很实用的入门教程一、前言       早就知道maven在java项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档。发现这些文档的作者都是java的大腕,大多都是站在掌握了一定maven基础的角度上进行介绍,让我这初学者看的云里雾里不知所云。于是又去查看maven的官方网站,总算是有所了解,但一旦动手实际操作却又雾里看花。唉,没办法,就只有一遍一遍的动手尝试,经过种种磨难总算是

  • pytest测试框架和unittest_pytest测试框架从入门到精通

    pytest测试框架和unittest_pytest测试框架从入门到精通运行unittest时要保证默认测试环境是unittest

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号