• 沒有找到結果。

数据库设计与管理

在文檔中 第 1 章 数据库设计基础 (頁 22-31)

数据库设计是数据库应用的核心。数据库设计是指对于一个给定的应用环境,构造最 优的数据模式,建立数据库及其应用系统,有效地存储数据,满足用户信息要求和处理要 求。数据库设计要与整个数据库应用系统的设计开发结合起来,只有设计出高质量的数据 库,才能开发出高质量的数据库应用系统。同时,只有统观整个数据库应用系统的功能需 求,才能设计出高质量的数据库。针对一个具体问题,应该如何构造一个符合实际的恰当 的数据模式,即应该构造几个关系,每个关系应该包括哪些属性,各个元组的属性值应符 合什么条件等,这些都是应当全面考虑的问题。在关系数据库设计中要遵守数据库的关系 完整性约束和数据库规范化设计。

数据库的关系完整性约束已在 1.3 节中介绍,下面介绍数据库规范化设计。 

1.5.1  数据库规范化设计

在数据库设计中如何把现实世界表示成合理的数据库模式,一直是人们非常重视的问 题。关系数据库的规范化理论就是进行数据库设计时的有力工具。

关系数据库中的关系要满足一定的条件要求,满足一定条件的关系模式称为范式

(Normal  Form)。在 1971 年至 1972 年,关系数据模式的创始人 E.F.Codd 系统地提出了第 一范式(1NF)、第二范式(2NF)和第三范式(3NF)的概念。1974 年 Codd 和 Boyce 共同 提出了  BCNF  范式,为第三范式的改进,还有第四范式和第五范式。一个低级范式的关系 模式通过投影分解的方法可以转换成多个高一级范式的关系模式的集合,这个过程称为规 范化。

目前遵循的主要范式包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和第

四范式(4NF)等。规范化设计的过程就是按不同的范式,将一个二维表不断地分解成多个 二维表并建立表之间的关联,最终达到一个表只描述一个实体或者实体间的一种联系的目 标。其目的是减少冗余数据,提供有效的数据检索方法,避免不合理的插入、删除、修改 等操作, 保持数据一致性, 增强数据库的稳定性、 伸缩性和适应性。 下面介绍第一范式 (1NF)、

第二范式(2NF)和第三范式(3NF)。 

1.第一范式(1NF)

关系中每一个数据项必须是不可再分的,满足这个条件的关系模式就属于第一范式。

关系数据库中的所有数据表都必然满足第一范式。

例如,将如表 1­12 所示的学生成绩表规范为满足第一范式的表。

表 1­12  学生成绩表 学号 姓名 课程代码 课程名称 学分 成绩

平时成绩 考试成绩 总成绩  20150101  李明  41412076  高数  25  60  85  20150102  王丽  41232456  英语  26  65  91 

…  …  …  …  …  …  …  … 

处理方法是处理表头使其成为只有一行表头标题的数据表,如表1­13所示。

表 1­13  处理成满足第一范式的学生成绩表

学号 姓名 课程代码 课程名称 学分 平时成绩 考试成绩 总成绩 

20150101  李明  41412076  高数  25  60  85  20150102  王丽  41232456  英语  26  65  91 

…  …  …  …  …  …  …  … 

2.第二范式(2NF)

在一个满足第一范式的关系中,如果所有非主属性都完全依赖于主键,则称这个关系 满足第二范式。即对于满足第二范式的关系,如果给定一个主键,则可以在这个数据表中 唯一确定一条记录。一个关系模式如果不满足第二范式,就会产生插入异常、删除异常、

修改复杂等问题。

例如,在学生选课系统中构造如表 1­14 所示的数据表,表中没有哪一个数据项能够唯 一标识一条记录,则不满足第二范式。

表 1­14  学生选课综合信息表

学号 姓名 院系 课程代码 课程名称 学分 成绩 任课教师 职称  20150001  范玉 计算机  11  C 语言  78  周伟 教授  20150001  范玉 计算机  12  JAVA  86  丁立 副教授  20150001  范玉 计算机  14  数据库技术  79  张欣悦 副教授

续表 学号 姓名 院系 课程代码 课程名称 学分 成绩 任课教师 职称  20150002  刘冰 计算机  13  计算机网络  90  孙一 教授  20150003  孙贺 计算机  11  C 语言  90  周伟 教授  20150003  孙贺 计算机  12  JAVA  88  丁立 副教授

该数据表存在如下缺点:

(1)冗余度大。一个学生如果选修 n 门课,则它的有关信息就要重复 n 遍,这就造成 数据的极大冗余。

(2)插入异常。在这个数据表中如果要插入一门课程的信息,但此门课程本学期不开 设,目前无学生选修,则很难将其插入表中。

(3)删除异常。表中刘冰只选了一门课“计算机网络”,如果他不选了,这条记录就 要被删除,那么整个元组都随之删除,使得他的所有信息都被删除了,造成删除异常。

处理表 1­14 使之满足第二范式的方法是将其分解成三个数据表,如表 1­15、表 1­16 和 表 1­17 所示。这三个表即为满足第二范式的表。其中“学生信息表”的主键为“学号” , “课 程设置表”的主键为“课程代码” , “选课表”的主键为“学号和课程代码” 。

表 1­15  学生信息表

学号 姓名 院系 

20150001  范玉 计算机 

20150002  刘冰 计算机 

20150003  孙贺 计算机

表 1­16  课程设置表

课程代码 课程名称 学分 任课教师 职称 

11  C 语言  周伟 教授 

12  JAVA  丁立 副教授 

13  计算机网络  孙一 教授 

14  数据库技术  张欣悦 副教授

表 1­17  选课表

学号 课程代码 成绩 

20150001  11  78 

20150001  12  86 

20150001  14  79 

20150002  13  90 

20150003  11  90 

20150003  12  88

3.第三范式(3NF)

对于满足第二范式的关系,如果每一个非主属性都不传递依赖于主键,则称这个关系 满足第三范式。传递依赖就是某些数据项间接依赖于主键。在如表 1­16 所示的表中,职称 属于任课教师,主键“课程代码”不直接决定非主属性“职称” , “职称”是通过“任课教 师”传递依赖于“课程代码”的,则此关系不满足第三范式,在某些情况下,会存在插入 异常、删除异常和数据冗余等现象。为将此关系处理成满足第三范式的数据表,可以将其 分成“课程信息表”和“任课教师表” ,如表 1­18 和表 1­19 所示。

表 1­18  课程信息表

课程代码 课程名称 学分 

11  C 语言 

12  JAVA 

13  计算机网络 

14  数据库技术 

表 1­19  任课教师表

学分 任课教师 职称 

周伟 教授 

丁立 副教授 

孙一 教授 

张欣悦 副教授

经过规范化处理,满足第一范式的“学生选课综合信息表”被分解成满足第二范式和 第三范式的 4 个表(学生信息表、课程信息表、任课教师表和选课表)。 

1.5.2  数据库设计的步骤

目前,数据库设计一般采用生命周期法。数据库系统的生命周期是指数据库系统从分 析、设计、实现、运行及维护,直到被新的系统所取代而停止使用的整个期间。

从这个角度来讲,数据库设计的步骤一般分为需求分析、概念结构设计、逻辑结构设 计、物理结构设计、数据库实施、数据库运行和维护 6 个阶段。 

1.需求分析

设计一个数据库,首先必须准确、全面和深入地了解和分析用户需求,包括数据需求 和处理需求。需求分析是整个设计活动的基础,也是最困难、最花时间的一步。需求分析 人员既要懂数据库技术,又要对应用环境的业务熟悉,一般由数据库专业人员与业务专家 合作进行。 

2.概念结构设计

概念设计是在需求分析基础上,用概念数据模型(如  E­R  模型)表示数据及其相互间

的联系,形成数据库概念结构(如  E­R  图)。概念结构与具体的 DBMS  无关,是对现实世 界的可视化描述,容易被用户所理解,因而不但可用于后续的设计,也是与用户交流和数 据库移植的重要文档。 

3.逻辑结构设计

逻辑设计是将数据库概念结构转换为某类 DBMS 所支持的数据库逻辑模式,例如,将  E­R 图转换为关系模型所支持的关系数据库模式。 逻辑设计也不仅仅是个数据模式的转换问 题,还要进一步考虑数据模式的规范化、满足 DBMS 的各种限制等,还得为各类用户或应 用设计其各自的局部逻辑模式,即外模式或子模式。逻辑设计的结果,即数据库逻辑模式,

是以数据定义语言(DDL)来表示,在 SQL 中,就是编写 CREATE TABLE、CREATE VIEW  等命令。 

4.物理结构设计

物理设计的任务是根据 DBMS 及计算机系统所提供的手段,为数据库逻辑模式选取一 个最适合应用环境的物理模式(包括存储结构和存取方法等) ,以提高数据库访问速度及有 效地利用存储空间。 

5.数据库实施

数据库的管理主要是指数据库的实施和维护。数据库实施就是在实际的计算机平台上,

真正建立数据库。先运行用 DDL 编写的命令,建立数据库框架,然后通过 DBMS 的实用工 具或专门编写的应用程序,将数据实际载入,最终建成数据库。在数据库投入使用之前,

要进行测试和试运行。除单独测试之外,还要与数据库应用程序结合起来进行测试。 

6.数据库运行和维护

数据库经过试运行后就可以投入实际运行了。但是,由于应用环境在不断变化,对数 据库设计进行评价、调整、修改等维护工作是一项长期的任务,也是设计工作的继续和提 高。在数据库运行阶段,由数据库管理员进行数据库的转储和恢复、数据库的安全性和完 整性控制、数据库性能的监督和分析、数据库的重组织与重构造等数据库的维护工作。 

1.5.3  数据库的管理

数据库是一种共享资源,它需要维护与管理,这种工作称为数据库管理,而实施此项 管理的人则称为数据库管理员。数据库管理一般包含如下内容:数据库的建立、数据库的 调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的故障恢复和数据库的 监控。

1.数据库的建立

数据库的建立包括两部分内容:数据模式的建立和数据加载。

(1)数据模式的建立。数据模式由 DBA 负责建立,DBA 利用关系数据库管理系统中 的 DDL 语言定义数据库名,定义表及相应属性,定义主关键字、索引、集簇、完整性约束、

用户访问权限,申请空间资源,定义分区等,此外还需定义视图。

用户访问权限,申请空间资源,定义分区等,此外还需定义视图。

在文檔中 第 1 章 数据库设计基础 (頁 22-31)

相關文件