BCNF:如果关系模式R(U,F)的所有属性(包括主属性和非主属性)都不传递依赖于R的任何候选关键字,那么称关系R是属于BCNF的。或是关系模式R,如果每个决定因素都包含关键字(而不是被关键字所包含),则BCNF的关系模式。
例:配件管理关系模式 WPE(WNO,PNO,ENO,QNT)分别表仓库号,配件号,职工号,数量。有以下条件
a.一个仓库有多个职工。
b.一个职工仅在一个仓库工作。
c.每个仓库里一种型号的配件由专人负责,但一个人可以管理几种配件。
d.同一种型号的配件可以分放在几个仓库中。
分析:由以上得 PNO 不能确定QNT,由组合属性(WNO,PNO)来决定,存在函数依赖(WNO,PNO) -> ENO。由于每个仓库里的一种配件由专人负责,而一个人可以管理几种配件,所以有组合属性(WNO,PNO)才能确定负责人,有(WNO,PNO)-> ENO。因为 一个职工仅在一个仓库工作,有ENO -> WNO。由于每个仓库里的一种配件由专人负责,而一个职工仅在一个仓库工作,有 (ENO,PNO)-> QNT。
找一下候选关键字,因为(WNO,PNO) -> QNT,(WNO,PNO)-> ENO ,因此 (WNO,PNO)可以决定整个元组,是一个候选关键字。根据ENO->WNO,(ENO,PNO)->QNT,故(ENO,PNO)也能决定整个元组,为另一个候选关键字。属性ENO,WNO,PNO 均为主属性,只有一个非主属性QNT。它对任何一个候选关键字都是完全函数依赖的,并且是直接依赖,所以该关系模式是3NF。
分析一下主属性。因为ENO->WNO,主属性ENO是WNO的决定因素,但是它本身不是关键字,只是组合关键字的一部分。这就造成主属性WNO对另外一个候选关键字(ENO,PNO)的部 分依赖,因为(ENO,PNO)-> ENO但反过来不成立,而P->WNO,故(ENO,PNO)-> WNO 也是传递依赖。
虽然没有非主属性对候选关键辽的传递依赖,但存在主属性对候选关键字的传递依赖,同样也会带来麻烦。如一个新职工分配到仓库工作,但暂时处于实习阶段,没有独立负责对某些配件的管理任务。由于缺少关键字的一部分PNO而无法插入到该关系中去。又如某个人改成不管配件了去负责安全,则在删除配件的同时该职工也会被删除。
解决办法:分成管理EP(ENO,PNO,QNT),关键字是(ENO,PNO)工作EW(ENO,WNO)其关键字是ENO
缺点:分解后函数依赖的保持性较差。如此例中,由于分解,函数依赖(WNO,PNO)-> ENO 丢失了, 因而对原来的语义有所破坏。没有体现出每个仓库里一种部件由专人负责。有可能出现 一部件由两个人或两个以上的人来同时管理。因此,分解之后的关系模式降低了部分完整性约束。

BCNF与3NF的区别例子相关推荐

  1. 关系数据库的模式分解:FD和BCNF、3NF以及MVD和4NF

    一个优秀的关系模式的分解应当满足三个条件:消除异常(冗余.更新异常.删除异常),信息的可恢复以及依赖的保持. 对关系数 据库模式进行BCNF分解之后可以消除FD带来的冗余,并满足信息的可恢复(通过自然 ...

  2. mysql仅仅属于bcnf_Mysql数据库如何判断BCNF和3NF。课本定义看不懂,求直白,各有例子就更好了。谢谢。满意会加分...

    判断是否是 3NF 的条件: 对于 R 上的每个函数依赖 X->A (X 是关系 R 属性的一个子集, A 是 R 的一个属性) ,以下条件中的一个成立: 1 X ∈ A 2 X 是超码 3 A ...

  3. python中的str与expr的一个区别例子

    我也说不清楚到底python中的str()与repr()到底有什么区别,下面的例子也许从某些方面能够说明: >>> hi = "Hello\nWorld" > ...

  4. 结构化分析和面向对象分析的区别 例子_管理游戏测评例子

    在测评中心技术中,有一个非常有趣的场景的模拟测评,打造敏捷高绩效团队,提高执行力(包括人才测评),旨在帮助学生培养自主性,了解自己,以独立的意见做出决策,采取果断的行动:培养赋权型领导:树立分享意识, ...

  5. 星型模型 3nf的区别_数据库和数据仓库的区别和联系

    数据库与数据仓库的区别和联系https://www.zhihu.com/video/1252167793992593408 在以往我们和客户的沟通过程中,大家经常会问到这样的一个问题,数据库和数据仓库 ...

  6. 结构化分析和面向对象分析的区别 例子_企业微信和微信的区别在哪里?

    原标题:企业微信和微信的区别在哪里? 都在说企业微信有多厉害和将会有多厉害,可是没有人说清楚,到底谁适合做企业微信?我来说一下,如果你是做餐饮的,那你是最适合用企业微信的:如果你做的是教育培训.美妆零 ...

  7. 三张图搞透第一范式(1NF)、第二范式(2NF)和第三范式(3NF)的区别

    第一范式(1NF):   列1唯一确定列2, 列3, 列4, ...,即列2, 列3, 列4, ...不能再分裂出其它列.   假设有关系模式列1: 订单名; 列2: 商品.一个订单下可以有多个商品, ...

  8. 星型模型 3nf的区别_贵州省遵义市工业模型经典案例展示

    随着城市的发展,沙盘模型在城市建设中发展着越来越重要的作用.地产商在开发一个片区时候,都会首先和一些专业的沙盘模型公司联系,用以来构建未来的的展现效果.那平时制作沙盘模型都有哪些方法,都使用了哪些原料 ...

  9. 规范化:范式(主属性,非主属性,1NF,2NF,3NF,BCNF:定义,例子等)

    主属性:         在一个关系中,如果一个属性是构成某一个候选关键字的属性集中的一个属性,则称它为主属性. 非主属性: 不包含在任何一个候选码中的属性称为非主属性. 非主属性是相对与主属性来定义 ...

最新文章

  1. 服务器群装系统,手把手教你安装及配置服务器集群系统
  2. linux系统报错01031,在Linux环境下设置 ora-01031:insufficient privileges解决方法总结
  3. linux系统打开m3u8文件,M3U8 文件扩展名: 它是什么以及如何打开它?
  4. [转帖]Oracle 11G RAC For Windows 2008 R2部署手册
  5. php 未实例化类调用方法的问题
  6. Adobe Flash Player不是最新版本的解决方法
  7. 电脑浏览器连接不上网络,微信都有网络
  8. 迅雷“去中心化”再升级 转型中All in 区块链
  9. 计算机软件工程专业选科要求,选考科目科普:软件工程专业要求哪些选考科目?...
  10. P2345 [USACO04OPEN]MooFest G 【树状数组】
  11. reboot复位ipcam,为何不可靠?
  12. [附源码]PHP计算机毕业设计小区水电管理系统(程序+LW)
  13. Java实现水仙花数简单代码
  14. python输出一年有多少天多少时分秒_python编程如何显示从1970年1月1日到今天多少天又多少小时...
  15. 计算机学院篮球队介绍,计算机学院研究生代表队获得篮球联赛冠军
  16. 什么是大数据?什么是数据科学
  17. html文标题党,「深度好文」教你如何成为一个合格的标题党
  18. (P5)模型运行及结果可视化(netCDF)
  19. SAP MIR4不允许删除采购预制发票,杜绝会计凭证断号
  20. Linux 驱动开发环境构建

热门文章

  1. MYSQL字符串聚合函数
  2. Invalidate()函数
  3. win10系统不认ps2键盘怎么办?圆口键盘win10系统无法使用的解决方法,亲测有效!!
  4. 同步,异步的区别 异步操作同步化
  5. 深入浅出之dtype( )和astype( )函数
  6. AI+CFD:面向空天动力的科学机器学习新方法与新范式
  7. Android--CoordinatorLayout源码分析及NestedScrolling机制
  8. 微信PC端技术研究(2)-保存聊天语音
  9. CSS三列布局(五种方式)
  10. 正则表达式匹配任意字符串