展开全部

BCNF范式在3NF基础上消除对主码子集的62616964757a686964616fe78988e69d8331333431373230依赖。

以仓库管理关系表为例:仓库号,存储物品号,管理员号,数量。首先该表满足第三范式,也就是说一个管理员只在一个仓库工作,一个仓库能够存储多种物品。表中存在有如下依赖关系:

(仓库号,存储物品号)——>(管理员号,数量)

(管理员号,存储物品号)——>(仓库号,数量)

由以上依赖关系可以得知(仓库号,存储物品号)和(管理员号,存储物品号)为表关系中的候选码。

表中唯一非关键字段为数量,它是符合第三范式的。但是,由于存在如下决定关系:

(仓库号)——>(管理员号)

(管理员号)——>(仓库号)

即存在关键字段决定关键字段的情况,因此其不符合BCNF。

解决方法:把仓库管理关系表分解为两个关系表仓库管理表(仓库号,管理员号)和仓库表(仓库号,存储物品号,数量),这样这个数据库表是符合BCNF的,并消除了删除异常、插入异常和更新异常。

扩展资料:

巴斯-科德范式(BCNF)是第三范式(3NF)的一个子集,即满足巴斯-科德范式(BCNF)必须满足第三范式(3NF)。通常情况下,巴斯-科德范式被认为没有新的设计规范加入,只是对第二范式与第三范式中设计规范要求更强,因而被认为是修正第三范式。

也就是说,它事实上是对第三范式的修正,使数据库冗余度更小。这也是BCNF不被称为第四范式的原因。某些书上,根据范式要求的递增性将其称之为第四范式是不规范,也是更让人不容易理解的地方。而真正的第四范式,则是在设计规范中添加了对多值及依赖的要求。

mysql中bcnf_请问数据库设计中BCNF范式是什么意思?相关推荐

  1. mysql的设计模式_数据库设计中使用设计模式

    一.引言 现代的企业开发中,越来越多地引入了多层架构设计模式,即使是小型的企业信息系统也逐渐向多层架构发展,以满足系统的可伸缩性以及可维护性.目前企业开发的平台占主导地位的是 J2EE 和 .NET ...

  2. mysql数据库设计中的14个技巧

    作者: sirfei 链接:https://blog.csdn.net/sirfei 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单 ...

  3. mysql视图和中间表_数据库设计中的14个技巧

    时 间:2006-09-15 00:00:00 作 者: 摘 要:数据库设计中的14个技巧 正 文: 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关 ...

  4. 数据库设计中的命名规范

    1.引言 数据库设计过程中表.字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理性.为了项目最终的协调稳定性,而命名规范则更多的是为了确保设计的正式和统一.公正的讲, ...

  5. 极客新闻——16、数据库设计中的5个常见错误

    本文笔记全部来自<极客新闻>--新鲜的技术资讯.权威的趋势剖析.别样的技术洞察 本文作者总结了数据库设计中的5个常见错误,以供开发人员参考. 1.糟糕的预规划 好的数据库是深思熟虑的结果, ...

  6. 数据库设计中的14个关键技巧收藏[转]

    1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对 ...

  7. 数据库设计中的14个技巧

    数据库设计中的14个技巧     选择自 sirfei 的 Blog 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对 应且只对应 ...

  8. 数据库设计中,多对多关系使用使用逗号分割关联讨论

    进公司一个月,发现公司很多人喜欢用逗号分割,去存储其它表的主键,做多对多关联,但存在很多乱用现象.这里对这种方式做了下总结. 在传统数据库设计中,多对多关系存储通常都是用一张中间表来简历两张表的关系. ...

  9. 总结数据库设计中的14个技巧

    总结数据库设计中的14个技巧 时间:2010-04-08 21:20来源:草根站长 作者:编辑整理 责任编辑: 雨儿 我要投稿 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一 ...

最新文章

  1. animate默认时长所带来的问题及解决
  2. php pdo 执行多条语句,php – 在pdo预处理语句中执行多插入或多个不同插入是更好/更快?...
  3. 兰州理工大学c语言试题答案,兰州理工大学c语言题库81058116.doc
  4. 终于开通我自己的cnblogs了,自我恭喜下··
  5. Java高级面试题!java构造方法的作用和特点
  6. 文章中嵌入代码块_如何在您的文章中嵌入多项选择测验问题
  7. DEVEXPRESS---TREELIST的使用
  8. mysql主键unsigned_mysql – 主键应该总是unsigned?
  9. 彭文华:详解数字化转型的破局之道(附直播视频)
  10. 千寻和省cors精度对比_测量员新手上路攻略:解析省CORS和千寻CORS账号区别及其如何选择运用...
  11. DP(三)——简单的完全背包
  12. 由H3C高层变动对厂商认证的思考
  13. c++vector查找元素所在的索引下标
  14. 计算机审计学心得思考,计算机审计学习心得体会范文
  15. iOS UIViewController跳转
  16. vue-meta实现router动态设置meta标签
  17. Codeforces Round #702 (Div. 3)---C. Sum of Cubes 两种方法 cbrt()函数应用
  18. 表现与数据分离、web语义化的理解
  19. codecamp_波特兰(和华盛顿西南部)CodeCamp 2006
  20. Matlab数值分析编程:牛顿下山法解方程

热门文章

  1. 基于EKF滤波的二阶RC电池模型的Soc估计仿真
  2. js 解密jwt令牌
  3. 【洛谷 1348】Couple number
  4. 笔记本硬盘故障与简单维修
  5. system函数返回值
  6. 2021年N2观光车和观光列车司机考试技巧及N2观光车和观光列车司机考试试题
  7. WWDC2016 观后杂感
  8. smartGit过期解决方案
  9. L4和L7负载均衡原理和常用负载均衡架构实现
  10. Ubuntu 16.04 DNS 配置