首页 > 编程知识 正文

数据库的三大范式是哪三范式,数据库中的范式是怎么理解的

时间:2023-05-05 13:57:19 阅读:163038 作者:1928

第一范式(1NF )无重复列

1NF的定义为:符合1NF的关系中的每个属性都不可再分

第一正则表达式(1NF )是指指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性如果出现重复属性,则必须定义由重复属性组成的新实体。 新图元和原始图元之间存在一对多的关系。 在第一正则表达式(1NF )中,表中的每一行只包含一个实例信息。 简而言之,第一范式是无重叠的列。

下表所示情况不符合1NF的要求。

说明:在所有关系数据库中,第一范式(1NF )是关系模型的基本要求,不满足第一范式(1NF )的数据库不是关系数据库。

第二范式(2NF)属性完全依赖于主键第二范式(2NF )是基于第一范式(1NF )而制作的。 即,要满足第二范式) 2NF )首先必须满足第一范式) 1NF )。 第二正则表达式(2NF )必须能够唯一区分数据库表中的每个实例或行。 为了实现区分,通常需要向表中添加列以存储每个实例的唯一标识符。 例如,在员工信息表中添加了员工编号(emp_id )列。 每个员工的员工编号都是唯一的,因此可以唯一区分每个员工。 这个唯一的属性列称为主键或主键、主键。

在第二范式(2NF )中,要求实体的属性完全依赖于主关键字。 完全依赖是指不能存在只依赖于主键的一部分的属性,如果存在的话,这个属性和主键的这个部分应该分开形成新的实体,新的实体和原实体之间有一对多的关系。 为了实现区分,通常需要向表中添加列以存储每个实例的唯一标识符。简而言之,第二范式就是属性完全依赖于主键。

要满足第三范式(3NF )属性不依赖于其它非主属性第三范式) 3NF )必须首先满足第二范式) 2NF )。 简单地说,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息例如,有部门编号(dept_id )、部门名称、部门概要等信息的部门信息表。 在的员工信息表中记录了部门编号后,无法将部门名称、部门简介等部门信息添加到员工信息表中。 如果部门信息表不存在,也应该基于第三模式(3NF )构建它。 否则,大量数据将变得冗长。简而言之,第三范式就是属性不依赖于其它非主属性。也就是说, 如果存在非主属性对于码的传递函数依赖,则不符合3NF的要求。

实例讲解:第一范式如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF(即R符合第一范式)。

两点:分

另一方面,每个字段只能存储单个值

课程有两个值,不符合第一个范式。 可以更改为

二.每项记录应可利用一个唯一主键进行识别

这里出现了重复群,同样不满足第一范式。 唯一的识别码不足,可以改为

第二范式若关系模式R1NF(即R符合第一范式),并且每一个非主属性都完全依赖于R的码,则R2NF(即R符合第二范式)。

这里,表中的号码是(学校号码、课程),可以看出这两个是否能确定学部名称、宿舍、分数,或者知道这三个依赖于前两个

分数依赖(学号、课程)、系名部分依赖)、学号、课程),也就是说,知道学号或课程就可以确定系名。 住宿部分依赖)学号、课程)即知道学号或课程就可以确定住宿。 由于非主属性类名称,宿舍完全不依赖代码,不符合第二范式,所以改为

表1

http://www.Sina.com/http://www.Sina.com /

上表2不符合第三范式。 这是因为你知道系名,同样也知道宿舍。 据说宿舍传达依赖于代码(学号),是可以分解的

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。