• 沒有找到結果。

教学任务

1 分销系统数据库的设计与生成

1.1.4 关系型数据库范式理论

关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这

些准则,才能确保数据的准确性和可靠性。这些准则则被称为规范化形式,即范式。

在数据库设计过程中,对数据库进行检查和修改并使它返回范式的过程叫做规范化。下 面是规范化的一个例子:

顾客名字 购买商品 商品价格

柳倩 鞋子 ¥45

王永华 袜子 ¥12

刘秀清 裤子 ¥70

如果上面这个表用于保存物品的价格,而你想要删除其中一个顾客,这时你就必须同时 删除一个价格。规范化就是要解决这个问题,你可以将这个表化为两个表,一个用于存储每个 顾客和他所买物品的信息,另一个用于存储每件产品和其价格的信息,这样对其中一个表做添 加或删除操作就不会影响另一个表。

范式按照规范化的级别分为 5 种:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、

第四范式(4NF)和第五范式(5NF)。在实际的数据库设计过程中,通常需要用到的是前三 类范式,下面将对它们分别介绍。

1.第一范式(1NF)

第一范式要求每一个数据项都不能拆分成两个或两个以上的数据项。

例如,如果关于员工的关系中有一个工资属性,而工资又由更基本的两个数据项:基本 工资和岗位工资组成,则这个员工的关系模式就不满足 1NF。

满足第一范式是关系模式规范化的最低要求,否则,将有许多基本操作在这样的关系模 式中实现不了,如上述的员工关系模式就实现不了按基本工资的 10%给每位员工加薪。

2.第二范式(2NF)

数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的 是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于 任意一组候选关键字,那么该数据表满足第二范式。

这里为了便于描述,对于关系表将采用另一种表述方式。例如,对于如下名为 Books 的 关系表:

书名 作者 出版社 ISBN 号 价格

其另一种表述为:

Books(书名, 作者, 出版社, ISBN 号, 价格) 要深刻理解第二范式,请看下面的案例。

假定选课关系表为 SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合 关键字(学号,课程名称),则在这个选课关系表中存在如下决定关系:

(学号,课程名称) → (姓名,年龄,成绩,学分)

这个数据表能否满足第二范式呢?答案是:不满足。

在这个选课关系表中还事实存在如下决定关系:

把选课关系表 SelectCourse 改为如下三个表:

学生:Student(学号, 姓名, 年龄);

也避免了在这种修改过程中可能造成的人为的错误。

从以上的叙述中可以看出,数据表规范化的程度越高,数据冗余就越少,而且造成人为 错误的可能性就越小;同时,规范化的程度越高,在查询检索时需要做出的关联等工作就越多,

数据库在操作过程中需要访问的数据库以及之间的关联也就越多。因此,在数据库设计的规范 化过程中,要根据数据库需求的实际情况,选择一个折中的规范化程度。

相關文件