数据库三大范式(1NF,2NF,3NF)及ER图

数据库三大范式(1NF,2NF,3NF)及ER图

百度官方解释:数据库

设计关系数据库时,听从不一样的规范要求,设计出合理的关系型数据库,这些不一样的规范要求被称为不一样的范式,各类范式呈递次规范,越高的范式数据库冗余越小
 
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。知足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步知足更多规范要求的称为第二范式(2NF),其他范式以次类推。通常来讲,数据库只需知足第三范式(3NF)就好了
 
第一范式(1NF):强调数据表的原子性
所谓第一范式(1NF)是指在 关系模型中,对于添加的一个规范要求,全部的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不一样的属性。在符合第一范式(1NF)表中的每一个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域。
第二范式(2NF):在1NF基础上,消除了非主属性对于码的部分函数依赖
(sno, pno)->sname     sno->sname   pno->sname     =>sname部分函数依赖于(sno, pno)
在1NF的基础上,非码属性必须彻底依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)
第二范式(2NF)要求实体的属性彻底依赖于主关键字。所谓彻底依赖是指不能存在仅依赖主关键字一部分的属性,若是存在,那么这个属性和主关键字的这一部分应该分离出来造成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分一般须要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是在第一范式的基础上属性彻底依赖于主键。
第三范式(3NF):在2NF的基础上,消除了非主属性对于码的传递函数依赖
在2NF基础上,任何非主 属性不依赖于其它非主属性(在2NF基础上消除传递依赖)
巴斯-科德范式(BCNF):在3NF的基础上,消除了主属性对于码的部分函数依赖和传递函数依赖
Boyce-Codd Normal Form(巴斯-科德范式)
在3NF基础上,任何非主属性不能对主键子集依赖(在3NF基础上消除对主码子集的依赖)

 

通俗解释:数组

第一范式(1NF):数据表中的每一列(每一个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性;函数

 

 

第二范式(2NF):知足1NF后,要求表中的全部列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情;spa

 

 

第三范式(3NF):必须先知足第二范式(2NF),要求:表中的每一列只与主键直接相关而不是间接相关,(表中的每一列只能依赖于主键);设计

 

ER图:orm

1、那么什么是E-R模型?对象

 E-R模型即实体-联系模型,E-R模型的提出基于这样一种认识,数据库老是存储现实世界中有意义的数据,而现实世界是由一组实体和实体的联系组,E-R模型能够成功描述数据库所存储的数据。blog

2、为何要设计E-R模型?get

 设计E-R模型可以更有效和更好的模拟现实世界。it

3、E-R模型的基本要素

1) 实体 :实体是E-R模型的基本对象,是现实世界中各类事物的抽象,凡是能够相互区别,并能够被识别的事、物概念等都可认为是实体。在一个单位中,具备共性的一类实体能够划分为一个实体集,例如,学生李明,黄颖等都是实体,为了便于描述,能够定义学生这样的一个实体集,全部学生都是这个集合的成员。

2)属性:每一个实体都具备各类特征,称其为实体的属性,如学生有学号,姓名,年龄等属性。实体的属性值是数据库存储的主要数据。能惟一标识实体的属性或属性组称为实体键,如一个实体有多个键存在。则可从中选取一个做为主键。

3)联系:实体间会存在各类关系,如人与人之间可能存在领导与雇员关系等,实体间的关系被抽象为联系。

4、E-R图的四个组成的部分

矩形框:表示实体,在矩形框中写上实体的名字

椭圆形框:表示实体或联系的属性

菱形框:表示联系,在框中记入联系名

连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)。

 

相关文章
相关标签/搜索