BCNF和第三范式到底有何区别?

yanfeng 2005-10-09 10:28:17
根据定义根本看不出之间的差别,虽然定义一点也不同,但是就是想不出一个例子来区别二者:(,各位能举个例子说明他们之间的差别吗?
...全文
8588 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zengzhengliang 2006-02-10
  • 打赏
  • 举报
回复
鲍依斯-科得范式(BCNF):在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合BCNF 。
  假设仓库管理关系表为StorehouseManage(仓库ID, 存储物品ID, 管理员ID, 数量),且有一个管理员只在一个仓库工作;一个仓库可以存储多种物品。这个数据库表中存在如下决定关系:  (仓库ID, 存储物品ID) →(管理员ID, 数量)  (管理员ID, 存储物品ID) → (仓库ID, 数量)
 所以,(仓库ID, 存储物品ID)和(管理员ID, 存储物品ID)都是StorehouseManage的候选关键字,表中的唯一非关键字段为数量,它是符合第三范式的。但是,由于存在如下决定关系:  (仓库ID) → (管理员ID) (管理员ID) → (仓库ID)
yanfeng 2005-10-31
  • 打赏
  • 举报
回复
不知哪位兄弟能给个具体的例子呢?二楼的兄弟,我现在手上没这本书阿,没例子总是不清楚
yuyuxinqing 2005-10-10
  • 打赏
  • 举报
回复 1
适用于多个主键的字段,一个主键的情况,是看不出差别的,注意一个是依赖与主键,而一个是依赖于整个主键,例子举起来很麻烦,你找本《SQL Server 2000从入门到精通》,里面有例子。
yuyuxinqing 2005-10-10
  • 打赏
  • 举报
回复
3NF的规则是:在满足第2NF的规则的基础上,非主键字段必须直接依赖于主键。

而BCNF的规则是:非主键字段必须依赖于整个主键字!

也就是说,要想达到BCNF的标准,还要在3NF的基础上基础拆分表。

如果你不是做高层次开发的,研究数据库的,还有4NF,5NF之类的东西,根本就极少用到,没有研究的必要的,相对而言,学术意义更多一些。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧