2009-7-28 Information College · ChangJun 1
第 11章 数据库应用系统开发
(2)
2009-7-28 Information College · ChangJun 2
[本章概要 ]
11.1 概述
11.2 系统需求分析
11.3 数据库设计与实施
11.4 应用程序设计
11.5 发布、运行与维护
2009-7-28 Information College · ChangJun 3
11.3 数据库设计与实施
11.3.1 概念结构设计
11.3.2 逻辑结构设计
11.3.3 物理结构设计
11.3.4 数据库实施
2009-7-28 Information College · ChangJun 4
数据库设计与实施
概念结构设计
概念设计的特点和策略概念结构设计的任务是产生反映企业组织信息需求的数据库概念结构,即概念模型。
1.概念模型的特点
有丰富的语义表达能力。
易于交流和理解。
易于更改,当应用环境和应用要求发生变化时,能很容易对概念模型进行修改,以反映这些变化。
易于向各种数据模型转换,易于导出与 DBMS有关的逻辑模型。
2009-7-28 Information College · ChangJun 5
数据库设计与实施
概念结构设计
2.概念结构设计的策略
自底向上。先定义每个局部应用的概念结构,然后按一定的规则把它们集成起来,从而得到全局概念模型。
自顶向下:先定义全局概念模型,然后再逐步细化。
由里向外:先定义最重要的核心结构,然后再逐步向外扩展。
混合策略:将自顶向下和自底向上结合起来使用
。先用自顶向下设计一个概念结构的框架,然后以它为框架再用自底向上设计局部概念结构,并把它们集成。
最常用的设计策略是自底向上策略。
2009-7-28 Information College · ChangJun 6
数据库设计与实施
概念结构设计概念结构设计是用集合概念,抽取出现实业务系统的元素及其应用语义关联,最终形成 E-R模型。
采用 E-R模型方法的概念结构设计采用 E-R方法的概念结构设计可分为如下三步:
设计局部 E-R模型。局部 E-R模型的设计内容包括确定局部 E-R模型的范围、定义实体、联系以及它们的属性。
设计全局 E-R模型。这一步是将所有局部 E-R图集成为一个全局 E-R图,即全局 E-R模型。
优化全局 E-R模型
2009-7-28 Information College · ChangJun 7
数据库设计与实施
概念结构设计
1,设计局部 E-R模型概念结构是对现实世界的一种抽象。 一般由三种抽象方法:
( 1)分类( Classification)
定义某一类概念作为现实世界中一组对象的类型
,这些对象具有某些共同的特性和行为。它抽象的是对象值和型之间的,Is a mumber of” 的语义。
( 2)概括( Generalization)
定义实体之间的一种子集联系,它抽象了实体之间的,is a subset of” 的语义。
( 3)聚集( Aggregation)
定义某一类型的组成成分,它抽象了对象内部类型和成分之间的,is a part of” 语义。
2009-7-28 Information College · ChangJun 8
Is a mumber
of
学生张三 李四 王五 …
Is a subset of
学生本科生 研究生超类子类
Is a part of
学生

实体型属性学号 姓名 性别
2009-7-28 Information College · ChangJun 9
实例实例:简单的教务管理系统语义约束:
① 一个学生可选修多门课程,一门课程可为多个学生选修,因此学生和课程是多对多的联系;
② 一个教师可讲授多门课程,一门课程可为多个教师讲授,因此教师和课程也是多对多的联系;
③ 一个系可有多个教师,一个教师只能属于一个系,因此系和教师是一对多的联系,
同样系和学生也是一对多的联系。
2009-7-28 Information College · ChangJun 10
实例实例:学生选课局部E-R图
2009-7-28 Information College · ChangJun 11
实例实例:教师任课局部E-R图
2009-7-28 Information College · ChangJun 12
数据库设计与实施
概念结构设计
2,设计全局 E-R模型把局部 E-R图集成为全局 E-R图时,可以采用一次将所有的 E-R
图集成在一起发方式。
当将局部 E-R图集成为全局 E-R图时,需要消除各分 E-R图合并时产生的冲突。
各分 E-R图之间的冲突主要有三类:
属性冲突:包括:
属性域冲突。即属性的类型、取值范围和取值集合不同

属性取值单位冲突。
命名冲突:包括同名异义和异名同义
结构冲突:包括:
同一对象在不同应用中具有不同的抽象。
同样一实体在不同的局部 E-R图中所包含的属性个数和属性的排列次序不完全相同。
2009-7-28 Information College · ChangJun 13
实例实例:简单的教务管理系统首先,这两个局部 E-R图中存在着 命名冲突
,学生选课局部E-R图中的实体,系,与教师任课局部E-R图中的实体,单位,,都是指,系,
,即所谓的异名同义,合并后统一改为,系,,这样属性,名称,和,单位,即可统一为,系名,。
其次,还存在着 结构冲突,实体,系,和实体,课程,在两个不同应用中的属性组成不同,
合并后这两个实体的属性组成为原来局部 E-R图中的同名实体属性的并集。解决上述冲突后,合并两个局部 E-R图,生成如图所示的初步的全局 E-R图

2009-7-28 Information College · ChangJun 14
实例实例:初步全局E-R图
2009-7-28 Information College · ChangJun 15
数据库设计与实施
概念结构设计
3.优化全局 E-R模型一个好的全局 E-R模型除了能反映用户功能需求外,还应满足如下条件:
实体个数尽可能少;
实体所包含的属性尽可能少;
实体间联系无冗余。
优化的目的就是要满足上述三个条件,
即相关实体的合并,一般是把具有相同主码的实体进行合并。
2009-7-28 Information College · ChangJun 16
实例实例:简单的教务管理系统
“课程,实体中的属性,教师号,可由,讲授
” 这个教师与课程之间的联系导出,而学生的平均成绩可由,选修,联系中的属性,成绩,中计算出来,所以,课程,实体中的,教师号,与,学生
” 实体中的,平均成绩,均属于冗余数据。
另外,,系,和,课程,之间的联系,开课
”,可以由,系,和,教师,之间的,属于,联系与,教师,和,课程,之间的,讲授,联系推导出来,所以,开课,属于冗余联系。
这样,初步 E-R图在消除冗余数据和冗余联系后,便可得到基本的 E-R模型。
2009-7-28 Information College · ChangJun 17
实例实例:优化全局(基本)E-R图
2009-7-28 Information College · ChangJun 18
数据库设计与实施
逻辑结构设计逻辑结构设计的任务是把概念结构设计阶段设计好的基本 E-R图转换为具体的数据库管理系统支持的数据模型,也就是导出特定的 DBMS可以处理数据库的逻辑结构。
逻辑结构设计一般包含两个步骤:
将概念模型转换为某种组织层数据模型;
对数据模型进行优化。
2009-7-28 Information College · ChangJun 19
数据库设计与实施
逻辑结构设计
E-R模型向关系模型的转换一个实体转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系有以下不同的情况:
一个 1,1联系可以转换为一个独立的关系模式,也可以于任意一端对于的关系模式合并。
一个 1,n联系可以转换为一个独立的关系模式,也可以与任意 n端所对应的关系模式合并。
一个 m,n联系转换为一个关系模式。
具有系统码的关系模式可以合并。
2009-7-28 Information College · ChangJun 20
实例实例:简单的教务管理系统
( 1)把每一个实体转换为一个关系首先分析各实体的属性,从中确定其主键,然后分别用关系模式表示。
教务管理系统的 E-R模型中的四个实体分别转换成四个关系模式:
学生( 学号,姓名,性别,年龄)
课程( 课程号,课程名)
教师( 教师号,姓名,性别,职称)
系( 系名,电话)
其中,有下划线者表示是主键。
2009-7-28 Information College · ChangJun 21
实例实例:简单的教务管理系统
( 2)把每一个联系转换为关系模式由联系转换得到的关系模式的属性集中
,包含两个发生联系的实体中的主键以及联系本身 的属性,其关系键的确定与联系的类型有关。教务管理系统的 E-R模型中的四个联系也分别转换成四个关系模式:
属于( 教师号,系名)
讲授( 教师号,课程号 )
选修( 学号,课程号,成绩)
拥有(系名,学号 )
2009-7-28 Information College · ChangJun 22
数据库设计与实施
数据模型的优化逻辑结构设计的结果并不是唯一的,为了进一步提高数据库应用系统的性能,还应该根据应用的需要对逻辑数据模型进行适当的修改和调整,这就是数据模型的优化。关系数据模型的优化通常以规范化里理论为指导,并考虑系统的性能。方法为:
确定各属性间的数据依赖。
对各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
判断每个关系模式的范式,根据实际需要确定最合适的范式。
根据需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行分解或合并。
对关系模式进行必要的分解,以提高数据的操作效率和存储空间的利用率。
2009-7-28 Information College · ChangJun 23
数据库设计与实施
逻辑结构设计通常的两种分解方法是水平分解和垂直分解。
K# A1 … Am
K# A1 … Am
K# A1 … Am
水平分解示意图
K# A11 … A1m A21 … A2n
K# A11 … A1m
K# A21 … A2n
垂直分解示意图
2009-7-28 Information College · ChangJun 24
数据库设计与实施
逻辑结构设计
设计外模式将概念模型转换为逻辑数据模型之后,还应该根据局部应用需求,并结合具体的数据库管理系统的特点
,设计用户的外模式。
在定义外模式时可以考虑:
1.使用更符合用户习惯的别名
2.对不同级别的用户定义不同的视图,以保证数据的安全
3.简化用户对系统的使用
2009-7-28 Information College · ChangJun 25
数据库设计与实施
物理结构设计数据库的物理设计是对已确定的逻辑数据结构,
利用 DBMS提供的方法、技术,以较优的存储结构、数据存取路径、合理的数据存储位置以及存储分配,设计出一个高效的、可实现的物理数据库结构。
数据库的物理设计通常分为两步:
确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
对物理结构进行评价,评价的重点是时间和空间效率。
2009-7-28 Information College · ChangJun 26
数据库设计与实施
物理结构设计的内容和方法在设计数据库时首先要对经常用到的查询和对数据进行更新的事务进行详细地分析,获得物理结构设计所需的各种参数。其次
,要充分了解所使用的 DBMS的内部特征,特别是系统提供的存取方法和存储结构。
对于数据查询,需要得到如下信息:
查询所涉及的关系;
查询条件所涉及的属性;
连接条件所涉及的属性;
查询列表中涉及的属性。
对于更新数据的事务,需要得到如下信息:
更新所涉及的关系;
每个关系上的更新条件所涉及的属性;
更新操作所涉及的属性。
2009-7-28 Information College · ChangJun 27
数据库设计与实施
物理结构设计的内容和方法通常关系数据库的物理结构设计主要包括如下内容:
确定数据的存取方法;
确定数据的存储结构。
1.确定存取方法存取方法是快速存取数据库中的数据的技术,数据库管理系统一般都提 供多种存取方法 。 具体采取哪种存取方法由系统根据数据的存储方式来决定,一般用户不能干预。
2.确定存储结构一般的存储方式有:顺序存储 ; 散列存储 ; 聚簇存储

2009-7-28 Information College · ChangJun 28
数据库设计与实施
物理结构设计
物理结构设计的评价物理结构设计过程中要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案,数据库设计者必须对这些方案进行细致的评价,
从中选择一个较优的方案作为数据库的物理结构。
评价物理结构设计的方法完全依赖于具体的 DBMS,
主要考虑的是操作开销,即为使用户获得 及时、准确的数据所需的开销和计算机的资源的开销。具体可分为如下几类:
2009-7-28 Information College · ChangJun 29
数据库设计与实施
物理结构设计的评价
查询和响应时间响应时间是从查询开始到查询结果开始显示之间所经历的时间。
更新事务的开销主要是修改所以、重写物理块或文件以及写校验等方面的开销。
生成报告的开销主要包括索引、重组、排序和结果显示的开销。
主存储空间的开销包括程序和数据所占用的空间。
辅助存储空间的开销辅助存储空间分为数据块和索引块两种
2009-7-28 Information College · ChangJun 30
数据的加载和应用程序的调试数据库实施阶段包括两项重要的工作:
1.数据加载在一般的数据库系统中,数据量都很大,而且数据会来源于许多的部门,数据的组织方式、结构和格式都与新设计的数据库系统有相当的差别,组织数据的录入就要将各类数据从各个局部应用中抽取出来,输入计算机中,然后再分类转换,最后综合成符合新设计的数据库结构的形式,输入数据库中。
2.数据库的试运行在有一部分数据加载到数据库之后,就可以开始对数据库系统进行联合调试了,这个过程又称为数据库试运行。
数据库设计与实施
2009-7-28 Information College · ChangJun 31
数据库的运行和维护数据库投入运行标志着开发工作的基本完成和维护工作的开始,数据库只要存在一天,就需要不断地对它进行评价、调整和维护。
在数据库运行阶段,对数据库的维护工作主要包括:
数据库的备份和恢复
数据库的安全性和完整性控制
监视、分析、调整数据库性能
数据库的重组数据库设计与实施