`
tjukk
  • 浏览: 42953 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

数据库三范式

 
阅读更多

第一范式(1NF):字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式) 

       数据库表中的字段都是单一属性的,不可再分。例如,姓名字段,其中的姓和名必

须作为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两

个独立的字段。 

   

  第二范式(2NF): 

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必

须先满足第一范式(1NF)。 

要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储

各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。 

   

第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖

主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成

一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,

以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。 

    

 第三范式的要求如下: 

满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一

个数据库表中不包含已在其它表中已包含的非主关键字信息。 所以第三范式具有如下特征: 

          1,每一列只有一个值 

          2,每一行都能区分。 

          3,每一个表都不包含其他表已经包含的非主关键字信息。 

例如,帖子表中只能出现发帖人的id,而不能出现发帖人的id,还同时出现发帖人姓名,

否则,只要出现同一发帖人 id 的所有记录,它们中的姓名部分都必须严格保持一致,这就

是数据冗余。

 

 

(1) 原子性

(2) no 部分依赖

(3) no 传递依赖

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics