- 0
- 0
- 约5.14千字
- 约 6页
- 2026-03-03 发布于河北
- 举报
1.范式说明
1.1第一范式(INF)无重复的列
所谓第一范式(1NF)是指数据库表的每一列都是不可分
割的基本数据项,同一列中不同时有多个值,即实体中的基
个属性不有多个值或者不有重复的属性。如果出现重复的
属性,就可需要定义一个新的实体,新的实体由重复的属性
构成,新实体与原实体之间为一对多关系。在第一范式
(INF)中表的每一行只包含一个实例的信息。简而言之,第
一范式就是无重复的列。
在任何一个关系数据库中,第一范式(1NF)是对关系模
式的基本要求,不满足第一范式(1NF)的数据库就不是关系
数据库。在当前的任何关系数据库管理系统(DBMS)中,不
可做出不符合第一范式的数据库,因为这些DBMS不允许你
把数据库表的一列再分成二列或多列。因此,你想在现有的
DBMS中设计出不符合第一范式的数据库都是不可的。
举例1:
一张学生表Student(stuNo,stuName,age,age,sex)^^^
合第一范式的,因为有重复列age属性。去除重复列age以后
的Student(stuNo,stuName,age,sex)是符合第一范式的。
1.2第二范式2(NF)属性完全依赖于主键[消除部分子函数
依赖]
第二范式2(NF)是在第一范式(1NF)的基础上建立起
来的,即满足第二范式2(NF)必须先满足第一范式
(INF)o第二范式2(NF)要求数据库表中的每个实例或行
必须可以被唯一地区分。为实现区分通常需要为表加上一个
列,以存储各个实例的唯一标识。例如员工信息表中加上了员
工编号(empjd)歹U,因为每个员工的员工编号是唯一的,
因此每个员工可以被唯一区分。这个唯一属性列被称为主关维
字或主键、主码。
第二范式2(NF)要求实体的属性完全依赖于主关键字。
所谓完全依赖是指不存在仅依赖主关键字一部分的属性,如
果存在,那么这个属性和主关键字的这一部分应该分离出来形
成一个新的实体,新实体与原实体之间是一对多的关系。为实
现区分通常需要为表加上一个列,以存储各个实例的唯一标
识。简而言之,第二范式就是属性完全依赖于主键。
这里说的主关键字可不只有一个,有些情况下是存在联
合主键的,就是主键有多个属性。
举例2:
以学生选课为例,每个学生都可以选课,并且有这一门课程的
成绩,那么如果将这些信息都放在一张表
StuGrade(stuNo,stuName,age,sex,courseNo,cous「eNa
mecredt,score)o如果不仔细看,我们会以为这张表的主键
z
是stuNo,但是当我们看到最后一个score属性以后,在想想
如果没有课程信息,那么哪里有学生成绩信息呢。所以这张表
的主键是一个联合主键(stuNo,corseNo),这个联合属性够
唯一确定score属性。那么再看其他信息,比如stuName只
需要stuNo就够唯一确定,courseName只需要
courseN。就够唯一确定,因此这样就存在了部分依赖,不
符合第二范式。如果要让学生课程成绩信息满足第二范式,那
么久需要将这张表拆分成多张表,一张学生表
Studnet(stuNo,stuName,agesex),——张课程表
z
Course(courseNo,courseName,credt),还有最后一张学
生课程成绩表StuGrade(stuNo,courseNo,score)。这样就
符合第二范式了。
1-3第三范式(3NF)属性不依赖于其它非主属性[消除传递
依赖]
满足第三范式(3NF)必须先满足第二范式(2NF)。简
而言之,第三范式(3NF)要求一个数据库表中不包含已在其
它表中已包含的非主关键字信息。
举例
原创力文档

文档评论(0)