数据库系统范式说明.pdfVIP

  • 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)

1亿VIP精品文档

相关文档