`
Iuranus
  • 浏览: 38546 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

数据库设计三范式

阅读更多

通俗版:

        通俗地理解三个范式,对于数据库设计大有好处(并不是最科学最准确的理解)。
        第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
        第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
        第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
        没有冗余的数据库设计可以做到,然而没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。

        具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。


理论版:

数据库设计三范式

        所谓范式,是关系型数据库关系模式规范化的标准,从规范化的宽松到严格,分别为不同的范式,通常使用的有第一范式、第二范式、第三范式及BC范式等。范式是建立在函数依赖基础上的。

函数依赖

        定义:设有关系模式R(U),X和Y是属性集U的子集,函数依赖是形为X→Y的一个命题,对任意R中两个元组t和s,都有t[X]=s[X]蕴涵 t[Y]=s[Y],那么FD X→Y在关系模式R(U)中成立。X→Y读作‘X函数决定Y’,或‘Y函数依赖于X’。通俗的讲,如果一个表中某一个字段Y的值是由另外一个字段或一组字 段X的值来确定的,就称为Y函数依赖于X。函数依赖应该是通过理解数据项和企业的规则来决定的,根据表的内容得出的函数依赖可能是不正确的。

第一范式(1NF)

        定义:如果关系模式R的每个关系r的属性都是不可分的数据项,那么就称R是第一范式的模式。

        简单的说,每一个属性都是原子项,不可分割。1NF是关系模式应具备的最起码的条件,如果数据库设计不能满足第一范式,就不称为关系型数据库。关系数据库设计研究的关系规范化是在1NF之上进行的。

第二范式(2NF)

        定义:如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么就称R是第二范式。

        简单的说,第二范式要满足以下的条件:首先要满足第一范式,其次每个非主属性要完全函数依赖与候选键,或者是主键。也就是说,每个非主属性是由整个主键函数决定的,而不能由主键的一部分来决定。

举个例子:

第三范式(3NF)

         定义:如果关系模式R是2NF,且关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递依赖,则称关系R是属于第三范式。

         简单的说,第三范式要满足以下的条件:首先要满足第二范式,其次非主属性之间不存在函数依赖。由于满足了第二范式,表示每个非主属性都函数依赖于主键。如果非主属性之间存在了函数依赖,就会存在传递依赖,这样就不满足第三范式。

BC范式(BCNF)

         BC范式是第三范式的增强版,不过也有人说是直接从1NF发展过来的,即每个属性,包括主属性或非主属性,都完全依赖于候选键,并且不存在传递依赖情况。


相关链接:

数据库设计三大范式

java数据库设计中的14个技巧

分享到:
评论

相关推荐

    数据库三大范式详解

    设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的...

    经典SQL语句大全,sql基础培训资料,数据库设计三范式

    内含经典SQL语句大全,sql基础培训资料,数据库设计三范式

    05-数据库设计三范式1

    第一范式 第一范式(确保每列保持原子性) 第一范式是最基本的范式 第一范式的合理遵循需要根据系统的实际需求来定 第一范式 第一范式 第一范式 第二范式 第二范式

    数据库设计三大范式应用实例剖析

    数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入、删除和更新操作异常。第一范式:数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本...

    数据库设计范式数据库设计范式

    目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多...

    数据库设计三范式(希望对大家有帮助)

    希望有帮助.......................

    数据库设计模式范式简介

    设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式...

    数据库设计三大范式

    此文档是关于数据库三大范式的描述,以及在何种情况下应该用何种范式已达到数据库的良好效率!

    什么是数据库范式?什么是设计范式?

    设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式...

    数据库设计三大范式应用实例剖析.pdf

    数据库设计三大范式应用实例剖析 PDF版 简明扼要,绝对的好东西

    Mysql数据库设计三范式实例解析

    主要介绍了Mysql数据库设计三范式实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    数据库设计范式简单入门

    设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式...

    数据库设计的第一范式第二范式第三范式描述和实例

    数据库设计的第一范式第二范式第三范式描述和实例

    数据库的三范式

    数据库的设计的学习,一些基本的介绍,简单明了,还是很容易理解。

    关系型数据库设计范式

    尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介绍。 在你设计数据库之时,若能符合这几个范式,你就是数据库设计的高手。

    Oracle 数据库设计范式 PowerDesigner

    Oracle 数据库设计范式 PowerDesignerOracle 数据库设计范式 PowerDesignerOracle 数据库设计范式 PowerDesigner

Global site tag (gtag.js) - Google Analytics