第 10章 数据库系统的实施与支持
教材:数据库技术及应用 2006年 4月
宁可、吴菁、胡海编著
本章要点
? 数据库系统实施与支持概述
? 数据库的实施和维护
? 数据库系统的程序设计
? 系统测试
? 运用 Powerdesigner建立数据库
目 录
10.1 数据库系统实施与支持概述
10.2 数据库的实施与维护
10.2.1 数据库的实施
10.2.2 数据库的运行与维护
10.3 数据库系统的应用程序设计
10.3.1 程序设计语言的选择
10.3.2 编码风格
10.4 系统测试
10.4.1 测试的方法与技术
10.4.2 测试的步骤
10.5 运用 Powerdesigner建立数据库
10.5.1 PDM中的用户管理
10.5.2 使用 ODBC访问数据库
10.5.3 生成数据库
10.6 应用实例
小结
10.1数据库系统实施与支持概述
数据库系统的实施与支持过程包括以下两个阶段,
1,数据库实施阶段
2,数据库运行和维护阶段
系统维护是系统支持的重要任务之一 。 其工作量占系统整个生存期工作量
的 70%以上, 如图 10-1所示 。 维护可分为以下四类,
(1) 改正性维护 。
(2) 适应性维护 。
(3) 完善性维护 。
(4) 其它维护 。
以上 4种维护在整个维护过程中所占比重, 如图 10-2所示 。
图 10-1 维护工作量在软件生存期所占比例 图 10-2 4类维护占总维护比例
维护 70%
适应性维护 25% 改正性维护 20%
其它维护 5%
完善性维护 50%
10.2 数据库的实施与维护
数据库的物理设计在经过评价以
后, 就可以进行数据库的实施了 。 数
据库实施是指根据数据库的逻辑设计
和物理设计的结果, 在计算机系统上
建立实际的数据库结构, 装入数据,
进行测试和试运行的过程;数据库维
护是指对正式运行的数据库进行评价,
调整和修改的过程 。
10.2.1 数据库的实施
数据库的实施阶段主要包括如下工作,
1,建立实际数据库结构 。
2,加载试验数据, 编制并调试应用程序 。
3,装入实际数据, 为进入系统试运行阶段作准备 。
4,数据库系统试运行 。
10.2.2 数据库的运行与维护
在数据库运行阶段, 对数据库经常性的维护工作主要是由数
据库管理员完成的 。 数据库的维护工作包括以下 4项 。
1,数据库的转储和恢复
2,数据库的安全性, 完整性控制
3,数据库性能监测与改善
4,数据库的重组织与重构造
(1) 数据库的重组织
(2) 数据库的重构造
10.3数据库系统的应用程序设计
数据库系统的设计过程不仅包括数据库的结构特性设计
过程, 如数据的概念结构设计, 逻辑结构设计, 物理结构
设计和建立数据库的过程, 而且也包括数据库的行为特性
设计, 如数据查询和统计, 事务及报表处理等, 而这些都
要通过应用程序来表达和执行 。
数据库系统的应用程序设计, 就是指通过某种程序设
计语言来实现数据库的行为特性, 即实现数据库系统的功
能需求 。
10.3.1 程序设计语言的选择
从理论上而言, 任何程序设计语言都能作为数据库
系统的程序设计语言, 但因为各个语言特点不同, 其
适用范围也有所不同, 甚至对于一个数据库系统可采
用多种语言以实现不同的功能 。 其语言的选用应针对
数据库项目的具体要求而定 。 一般而言, 常采用针对
客户机 /服务器体系结构的集成化工具 ( 即由一整套软
件开发工具组合在一起 ) 作为数据库系统的首选开发
语言, 如 Microsoft公司的 Visual Studio系统中的 Visual
Basic, Visual Foxpro,Visual C++,Visual J++;
Sybase公司的 PowerBuilder; Borland公司的 Delphi;
Oracle公司的 Developer2000等 。
10.3.2 编码风格
由于编码的依据是详细设计的结果, 因此程序的质
量主要取决于设计 。 因此, 无论采用何种语言编写应
用程序, 均应遵循以下的有关风格 。
1,源程序中的内部文档
(1) 选择标识符的名字
(2) 注释
① 序言性注释
② 功能性注释
(3) 程序的视觉组织
2,数据说明
在程序中都有数据说明, 为使数据说明便于理解, 可采用下列书
写数据说明的风格 。
? 显式地说明一切变量;
? 数据说明的次序应该规范化, 例如先说明常量, 再说明简单类
型, 然后是构造类型说明;
? 当多个变量出现在同一个说明语句中, 变量名应该按字母顺序
排序, 以便于查找;
? 在定义一个复杂的数据结构时, 应该通过注释来说明该数据结
构的特点 。
3,语句构造
编码时语句构造应当遵守的原则是:每条语句都应当简单而直接,
同时也不应为了追求运行效率而使代码复杂化, 这样会减低程序
的可读性 。 为使源代码 ( 语句 ) 直截了当, 简单明了, 可对语句
进行简化 。 简化方法如下,
? 避免使用包含复杂条件的条件语句;
? 避免使用否定的逻辑条件;
? 尽量避免多重循环嵌套或条件嵌套;
? 使用括号以使逻辑表达式或算术表达式更加清晰;
? 充分利用库中现有的函数;
? 不要在同一行中写多个语句;
? 尽量只采用 3种基本控制结构来编写程序 。
4,输入和输出
输入和输出时每个程序都不可缺少的部分 。 在编写输入和输出程
序段时, 可考虑如下原则,
? 对所有的输入数据都进行校验, 以确保输入数据的有效性;
? 检查输入项的重要组合的合理性, 如金额等于单价乘以数量;
? 保持输入格式的简单和操作的简单;
? 使用数据结束标记 (如数据文件结束标记 ),而不应要求用户输入
数据的个数;
? 明确提示交互式输入的请求, 详细说明可用的选择或边界值;
? 当程序设计语言对输人格式有严格要求时, 应保持输入格式与
输入语句要求的一致;
? 设计良好的输出报表 。
10.4 系统测试
在系统交付使用之前, 必须经过测试 。 测试的任务
就是尽可能多地发现并排除分析, 设计, 编码等各个阶
段中的错误 。 测试的目的是确保系统的质量, 尽量找出
系统错误并加以纠正, 而不是证明系统没有错误 。 系统
测试的范围覆盖整个软件系统的生存周期 。
10.4.1测试的方法与技术
广义的程序测试不仅包括在计算机上进行的动
态测试 ( 机器测试 ), 还包括用人工的方式进行的代
码复审 ( 人工测试 ) 。 其中, 代码复审采用人工方式
进行, 目的是检查程序的静态结构, 找出编译不能发
现的错误 。 动态测试则是在设定的测试数据上执行被
测程序的过程, 所采用的方法与技术有黑盒测试和白
盒测试 。 程序经过编译后, 要先经代码复审, 然后再
进行动态测试 。
10.4.2 测试的步骤
软件系统的测试基本上由下述 3个步骤组成,
? 单元测试, 检查各个模块的语法错误和逻辑错误 。
? 集成测试, 检查程序模块间的兼容性 。
? 验收测试 ( 确认测试, 系统测试 ), 验证系统是否能够达到项目计划
规定的要求 。
? 测试与开发的关系如下图所示
需求分析
软件设计
编程设计
验收测试
集成测试
单元测试








10.5运用 Powerdesigner建立数据库
在 PowerDesigner的 PDM中可完成许多任
务, 如存储过程, 触发器的建立, 生成数据库
SQL脚本和生成数据库, 逆向工程产生 PDM、
从 PDM生成 CDM和 OOM等 。
演示
10.6 应用实例
天顺公司的, 天顺公司人事档案管理系统, 经过
项目立项, 可行性分析, 项目开发计划, 需求分析,
概要设计和系统详细设计过程后, 进入系统实施阶
段, 该阶段需进行数据库的实施和系统程序设计 。
龙翔软件开发公司的陈小明和李杰用了约三周
时间, 进行系统实施工作, 包括数据库结构的生成,
数据装入, 程序设计和测试工作 。
演示
小结
数据库系统实施与支持主要包括数据库实施, 数据库运行和维护两个阶段 。 在
数据库实施阶段中, 系统设计人员要运用具体 DBMS提供的数据操作语言和宿主
语言, 根据数据库的逻辑设计和物理设计的结果建立数据库, 编制与调试应用程
序, 组织数据入库并进行系统试运行;数据库的运行与维护就是在数据库运行过
程中不断地对数据库设计进行评价, 调整和修改, 主要工作包括数据库的转储和
恢复, 数据库的安全性与完整性控制, 数据库性能监测与改善, 数据库的重组织
与重构等 。
虽然从理论上而言,任何程序设计语言都可作为数据库系统的程序
设计语言,但常常采用针对客户机 /服务器体系结构的集成化工具作
为数据库系统的首选开发语言,它使系统的设计更加方便和快捷。
此外,数据库系统交付使用之前必须经过测试。测试的任务就是尽可
能多地发现并排除分析、设计、编码等各个阶段中的错误,测试基本
上由单元测试、集成测试和验收测试 3个步骤组成。
习 题
1,数据库系统实施主要包括 ______________,数据库运行和维护两个阶段 。
2, 数 据 库 运 行 与 维 护 的 主 要 工 作 有 __________________, __________________,
____________________和数据库的重组织与重构 。
3,数据库系统的程序设计语言常常采用针对 _______________体系结构的集成化工具, 作为数
据库系统的首选开发语言 。
4,数据库系统交付使用之前必须经过测试 。 测试基本上由 ______________,_____________和
验收测试 3个步骤组成 。
5,测试方法中有黑盒测试和白盒测试 。 其中, 黑盒测试又称 _____________;白盒测试又称
_____________。
6,实践
请为餐厅管理信息系统创建数据库和建立相应的数据库结构 。