细说数据库范式
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
ame} Non-prime attribute: Address 浅白版:“2NF针对的是复合候选键(即键包含的字段个数>1)的情况,非主属性不能只依赖于复合候选键中的一部分字段。”显然,如果是非复合候选键,如果它符合1NF,那么它一定符合2NF。 假设有这样一张涉及艺人与唱片公司的关系表: Artist 艺人 Company 唱片公司 DurationYears 签约总年数 CompAddr 公司住址 Babyface Solar 4 Indiana Babyface Laface 2 Indiana 显然,{Artist,Company}为可以作为一个候选键,DurationYears在这没有问题,但CompAddr是违反2NF的,它只依赖于候选键的一部分(依赖于Company),这是违反2NF的,为了消除这种情况,我们可以: Artist 艺人 CompID 唱片公司 DurationYears 签约总年数 Babyface 1 4 Babyface 2 2 ID Company 唱片公司 CompAddr 公司住址 1 Solar Indiana 2 Laface Indiana 总结: 对于2NF,如果关系中的候选键只包含一个属性,可以直接略过。 在考虑2NF的过程中,不要把几个无关的实体的属性杂揉放在一个关系中,比如Artist是一个实体、Company是一个实体,它们可以有一系列的关联表(也是实体),但在关联表中尽量不要引入前两个实体的无关属性。 3NF(Third normal form) Every non-prime attribute is non-transitively dependent on every key of the table. 不存在非主属性对任一键(候选键)的传递依赖。 传递依赖,你可以顾名思义,这里就不再引入定义了,举个例子,有下面一张表: Tournament 赛事 Year 年份 Winner 冠军 Winner Date of Birth 冠军生日 Indiana Invitational 1998 Al Fredrickson 21 July 1975 Cleveland Open 1999 Bob Albertson 28 September 1968 Des Moines Masters 1999 Al Fredrickson 21 July 1975 Indiana Invitational 1999 Chip Masterson 14 March 1977 这里的候选键为{Tournament,Year},显然有这样的决定关系: {Tournament,Year}→Winner {Tournament,Year}→Winner→Winner Date of Birth 其中第二条就属于违反3NF的情况,因为Winner Date of Birth依赖于Winner而不是直接依赖于候选键。这种情况下,可以将Winner,Winner Date of Birth单独作为一张表,这里不赘述。 总结: 我觉得大多数人凭借直观感觉,就可使设计的关系符合3NF,所以这些理论,你只需要姑且读之。 BCNF(Boyce-Codd normal form)(Boyce与Codd是该范式的两名作者。) Every non-trivial functional dependency in the table is a dependency on a superkey. 表中的任何非平凡函数依赖,都必须是对superkey的依赖。 non-trivial functional dependency:非平凡函数依赖,如果存在一个决定关系x→y,且y并非x的子集,则叫着y非平凡函数依赖于x。 BCNF与3NF的最大区别是它并不仅针对非主属性(non-prime attribute)来说,它发生的时候常常是表中根本不存在非主属性,以至于它不可能违反2NF或3NF。而BCNF的出现就是为了扩大“打击面”。 于是BCNF的主旨是:补充对发生在主属性(prime attribute)身上的函数依赖的约束,因为对于非主属性的约束已经在3NF中完成了。 例子,使用关系表描述学生、课程、教师的关系(假定一名教师只负责一门课程,一门课程则可以由多位教师负责): Student 学生 Course 课程 Teacher 教师 S1 C1 T1 S1 C2 T2 S2 C1 T1 S2 C2 T3 S2 C3 T2 候选键: {Student,Course} {Student,Teacher} 因此这里不存在非主属性,而在主属性的函数依赖中,存在Teache |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于细说数据库范式的所有评论