数据库有三个范式吗?
我看书上,只注意到有第一范式,第二范式.....第五范式啊!

解决方案 »

  1.   

    任何一本数据库书籍都有解释
    第一范式(1NF;The First Normal Form)第一范式是最低的规范化要求,第一范式要求数据表不能存在重复的记录,即存在一个关键字。1NF的第二个要求是每个字段都不可再分,即已经分到最小,关系数据库的定义就决定了数据库满足这一条。主关键字达到下面几个条件:
    1.    主关键字段在表中是唯一的
    2.    主关键字段中没有复本
    3.    主关键字段不能存在空值
    4.    每条记录都必须有一个主关键字
    5.    主关键字是关键字的最小子集满足1NF的关系模式有许多不必要的重复值,并且增加了修改其数据时疏漏的可能性。为了避免这种数据冗余和更新数据的遗漏,就引出了第二范式(2NF)。第二范式(The Second Normal Form)定义:如果一个关系属于1NF,且所有的非主关键字段都完全地依赖于主关键字,则称之为第二范式,简记为2NF。
    为了说明问题现举一个例子来说明:有一个库房存储的库有四个字段(零件号码,仓库号码,零件数量,仓库地址),
    这个库符合1NF,其中“零件号码”和“仓库号码”构成主关键字。
    但是因为“仓库地址”只完全依赖与“仓库号码”,即只依赖于主关键字的一部分,所以它不符合2NF,
    这样首先存在数据冗余,因为仓库数量可能不多。
    其次,存在如果更改仓库地址时,如果漏改了某一记录,存在数据不一致性。
    再次,如果某个仓库的零件出完了,那么这个仓库地址就丢失了,即这种关系不允许存在某个仓库中不放零件的情况。
    我们可以用投影分解的方法消除部分依赖的情况,而使关系达到2NF的标准。
    方法是从关系中分解出新的二维表,是每个二维表中所有的非关键字都完全依赖于各自的主关键字。
    我们可以如下分解:分解成两个表(零件号码,仓库号码,零件数量)和(仓库号码,仓库地址)。
    这样就完全符合2NF了。第三范式(The Third Normal Form)定义:如果一个关系属于2NF,且每个非关键字不传递依赖于主关键字,这种关系是3NF。
    从2NF中消除传递依赖,就是3NF。比如有一个表(姓名,工资等级,工资额),其中姓名是关键字,
    此关系符合2NF,但是因为工资等级决定工资额,这就叫传递依赖,它不符合3NF,
    我们同样可以使用投影分解的办法分解成两个表:(姓名,工资等级),
    (工资等级,工资额)。一般情况,规范化到3NF就满足需要了
      

  2.   

    可以这么简单的理解:
    第一范式:数据库表的每一列都是不可再分割。
    第二范式:满足第一范式,且要求数据库表中的每个实例或行必须可以被惟一地区分。
    第三范式:满足第二范式,且要求一个数据库表中不包含已在其它表中已包含的非主关键字信息