数据库设计范式 3NF与BCNF(望高手解答)

cj359864746 2009-11-11 12:38:26
网上说3NF,去掉所有的非主键的传递依赖
BCNF,去掉所有的传递依赖(包括主键与非主键)。


《数据库设计入门经典》上说:BCNF,表中的每个决定因子是候选键。如果只有一个候选键,则3NF和BCNF相同。


我想不通这两个BCNF的解释有什么联系。

望高手解答!
...全文
413 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cj359864746 2009-11-11
  • 打赏
  • 举报
回复
那这样的话,岂不是有传递依赖,就要划分一张表啊。。。
cj359864746 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hery2002 的回复:]
http://baike.baidu.com/view/176744.htm
BC范式  设关系模式R <U,F>∈1NF,如果对于R的每个函数依赖X→Y,若Y不属于X,则X必含有候选码,那么R∈BCNF。
  若R∈BCNF
  每一个决定属性集(因素)都包含(候选)码
  R中的所有属性(主,非主属性)都完全函数依赖于码
  R∈3NF(证明)
  若R∈3NF 则 R不一定∈BCNF
  在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。
  每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称 : (S,J)→T,(S,T)→J,T→J
  一个满足BCNF的关系模式的条件:
  1.所有非主属性对每一个码都是完全函数依赖。
  2.所有的主属性对每一个不包含它的码,也是完全函数依赖。
  3.没有任何属性完全函数依赖于非码的任何一组属性。
  由于R∈BCNF,按定义排除了任何属性对码的传递依赖与部分依赖,所以R∈3NF。但是若R∈3NF,则R未必属于BCNF。
[/Quote]


每一个决定属性集(因素)都包含(候选)码 (决定因素必须是唯一的,能够作为候选键的)
R中的所有属性(主,非主属性)都完全函数依赖于码 (主,非主属性是主,非主键中的非候选键,他必须依赖于候选键)

当然如果决定因数只有一个得话,说明只有一个候选键,那主键中就没有传递依赖,所以就变成了3NF,
不知道我的理解对不对呢
hery2002 2009-11-11
  • 打赏
  • 举报
回复
http://baike.baidu.com/view/176744.htm
BC范式  设关系模式R<U,F>∈1NF,如果对于R的每个函数依赖X→Y,若Y不属于X,则X必含有候选码,那么R∈BCNF。
  若R∈BCNF
  每一个决定属性集(因素)都包含(候选)码
  R中的所有属性(主,非主属性)都完全函数依赖于码
  R∈3NF(证明)
  若R∈3NF 则 R不一定∈BCNF
  在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。
  每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称 : (S,J)→T,(S,T)→J,T→J
  一个满足BCNF的关系模式的条件:
  1.所有非主属性对每一个码都是完全函数依赖。
  2.所有的主属性对每一个不包含它的码,也是完全函数依赖。
  3.没有任何属性完全函数依赖于非码的任何一组属性。
  由于R∈BCNF,按定义排除了任何属性对码的传递依赖与部分依赖,所以R∈3NF。但是若R∈3NF,则R未必属于BCNF。
--小F-- 2009-11-11
  • 打赏
  • 举报
回复
全部是概念 晕

34,575

社区成员

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

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