什么是逻辑设计和物理设计,两者有什么区别?
4.1数据库应用系统开发步骤
软件工程的思想是在20世纪60年代末提出的。软件工程是开发、操作、维护和修改软件的系统方法,其目标是提高软件质量和开发效率,降低开发成本。
数据库应用系统的开发是一项软件工程。一般可分为以下几个阶段:
1)规划
2)需求分析
3)概念模型设计
4)逻辑设计
5)物理设计
6)编程和调试
7)运行和维护。
这几个阶段的划分目前没有统一的标准,相互衔接,往往需要追溯修订。
在数据库应用系统的开发过程中,每个阶段的成果就是编写相应的文档。每个阶段都是在前一阶段成果的基础上继续进行,整个开发项目有据可循,有组织,有计划,有秩序地进行。
4.1.1规划
规划的主要任务是分析必要性和可行性。
在收集和整理相关资料的基础上,确定拟建立的数据库应用系统与周围环境的关系,对应用系统的规模、地位和功能进行综合分析和论证。
明确应用系统的基本功能,划分数据库支持范围。分析数据来源、数据采集方式和范围,研究数据结构特点,估算数据规模,建立数据处理的基本要求和业务标准。
规划人力资源的配置。对参与系统开发和后期维护的管理人员和技术人员的技术业务水平提出要求,对最终用户和操作人员的素质进行评估。
拟定设备配置方案。从时间和空间上论证计算机、网络等设备的处理能力,具有足够的内部和外部存储能力,系统的响应速度、网络传输和输入输出能力应满足有余量的应用要求。选择合适的操作系统、数据库管理系统和其他软件。设备配置方案要从使用要求、系统性能、购置成本、维护成本等方面综合权衡。
估计系统开发、操作和维护的成本。预测系统效益的期望值。
制定开发进度计划,还需要对目前的工作模式如何过渡到新系统做出具体安排。
规划阶段的结果是写出详细的可行性分析报告和数据库应用系统计划。内容应包括:系统的定位及其功能、数据资源和数据处理能力、人力资源调配、设备配置方案、开发成本估算、开发进度计划等。
可行性分析报告和数据库应用系统策划书批准后,就成为后续开发工作的总纲。
4.1.2需求分析
需求分析大致可以分为三步。
(1)需求信息收集。需求信息的收集一般以机构设置和业务活动为基础,由高层中层向低层逐步进行。
(2)需求信息的分析整理,收集信息的分析整理。DFD,数据流图(DFD)是业务流程和数据关系的正式描述。图4.1是一个简单的DFD例子。
数据字典详细描述了系统中的所有数据。
数据字典包含以下部分。
数据项:它是数据的原子单位。
数据组项:由几个数据项组成。
数据流:代表数据处理过程的输入/输出数据。
数据存储:指在处理过程中要访问的数据。
数据处理过程的描述包括:数据处理过程的名称、描述、输入、输出、处理工作总结、处理频率、处理的数据量、响应时间要求等。
表4.1给出了一个在数据字典中描述数据流的例子。
数据流图不仅是需求分析的工具,也是需求分析的结果之一。数据字典是数据收集和数据分析的主要成果。
(3)需求信息的审核。开发过程中的每个阶段都要进行评审,以确认任务是否全部完成,避免或纠正工作中的错误和疏漏。聘请项目外的专家参与评审,可以保证评审的质量和客观性。
评审可能导致开发过程的回溯,甚至多次重复。但是,在需求分析工作结束之前,必须达到所有的预期目标。
需求分析阶段的结果是写出一份实用的、可预测的需求说明书,并附上一套详细的数据流图和数据字典。
4.1.3概念模型设计
概念模型不依赖于特定的计算机系统,它是一个纯粹反映信息需求的概念结构。
建模是基于需求分析的结果,数据往往是抽象的。常见的数据抽象方法有“聚合”和“概括”。
ER方法是概念模型设计中常用的方法。使用设计好的ER图配合相应的指令,可以作为阶段结果。
概念模型设计可以分三步完成。
(1)设计局部概念模型
①确定局部概念模型的范围
②定义实体。
③定义连接
④确定属性。
⑤将所有局部ER图逐一画出,并附上相应的说明文件。
(2)设计一个全局概念模型
建立全局ER图的步骤如下:
(1)确定男性* * *实体类型。
②合并局部er图
③排除不一致因素。
④优化全局ER图
⑤绘制全局ER图,并附上相应的文档。
(3)概念模型的回顾
概念模型的审查分为两个部分。
第一部分是用户评论。
第二部分是开发者评论。
4.1.4逻辑设计
逻辑设计阶段的主要目标是将概念模型转换为特定计算机上DBMS支持的结构化数据模型。
逻辑设计的输入元素包括:概念模型、用户需求、约束和所选DBMS的特征。
逻辑设计的输出信息包括:DBMS可以处理的模式和子模式、应用程序设计指南和物理设计指南。
(1)设计模式和子模式
关系数据库的模式设计可以分四步完成。
(1)建立初始关系模型。
②规范化治疗。
③模型评估
④校正模式
经过多次模式评估和模式修正,确定最终模式和子模式。
写出逻辑数据库结构的描述。
(2)编写应用程序设计指南
根据设计的模式和应用需求,规划应用的架构,设计应用的草图,规定每个应用的数据访问功能和数据处理功能概要,提供程序上的逻辑接口。
编写应用程序设计指南。
(3)编写物理设计指南。
根据设计模式和应用需求,整理出物理设计阶段需要的一些重要数据和文档。比如数据库的数据容量,每个关系(文件)的数据容量,应用处理频率,操作顺序,响应速度,每个应用的LRA和TV,节目访问路径建议等等。这些数据和需求将直接用于物理数据库的设计。
编写物理设计指南。
4.1.5物理设计
物理设计是为给定的逻辑数据模型配置最适合应用环境的物理结构。
物理设计的输入元素包括:模式和子模式、物理设计指南、硬件特性、OS和DBMS的约束、操作要求等。
物理设计的输出信息主要是物理数据库结构规范。其内容包括物理数据库结构、存储记录格式、存储记录位置分配和访问方法等。
物理设计的步骤如下:
(1)存储记录结构
设计综合分析数据存储需求和应用需求,设计存储记录格式。
(2)存储空间分配
存储空间分配有两个原则:
①访问频率高的数据尽量安排在快速随机的设备上,访问频率低的数据安排在较慢的设备上。
②相互依赖性强的数据尽量存储在同一个设备上,尽量安排在相邻的存储空间。
为了提高系统性能,应将设计的存储记录作为一个整体,合理分配物理存储区域。尽可能充分利用物理顺序的特点,将不同类型的存储记录分配给不同的物理组。
(3)接入方式的设计
一种访问方法包括两部分:存储结构和检索机制。存储结构定义了在访问存储记录时可以使用的访问路径;检索机制定义了每个应用程序实际使用的访问路径。
(4)物理设计的性能评估
①查询响应时间
从查询开始到显示结果的时间称为查询响应时间。查询响应时间可以进一步细分为服务时间、等待时间和延迟时间。
在物理设计过程中,应评估系统的性能。性能评估包括时间、空间、效率、开销等方面。
CPU服务时间和I/O服务时间的长度取决于应用程序设计。
⊙ CPU队列等待时间和I/O队列等待时间受计算机系统作业的影响。
设计者可以在有限的范围内控制分布式数据库系统的通信延迟时间。
②存储空间
存储空间保存程序和数据。程序包括运行应用程序、DBMS子程序、OS子程序等。数据包括用户工作区、DBMS工作区、OS工作区、索引缓冲区、数据缓冲区等等。
存储空间分为主存储空间和辅助存储空间。设计者只能在有限的范围内控制主存空间,比如指定缓冲区的分配。但设计师可以有效控制辅助储物空间。
③成本和效率
设计中还应考虑以下费用。如果费用增加,系统效率就会降低。
⊙事务开销是指从事务开始到事务结束所花费的时间。更新事务需要修改索引、重写物理块和执行写验证等操作,这会增加额外的开销。更新频率应列为设计考虑因素。
⊙报告生成开销是指从数据输入到输出结果的时间。报告生成占用CPU和I/O很长的服务时间,在设计中要进行筛选,去掉不必要的报告生成。
数据库的重组也是一笔很大的开销。在设计中应考虑数据量和处理频率,以避免或尽量减少数据库的重组。
在物理设计阶段,可能会多次重复设计、评估和修改的过程,最终得到一个相对完善的物理数据库结构规范。
建立数据库时,DBA可以根据物理数据库结构规范,使用DBMS提供的工具配置数据库。
数据库运行时,DBA对数据库的性能进行监控,并根据基于物理数据库结构规范的指导方针及时进行修正和优化操作,以确保数据库系统能够保持高效运行。
4.1.6编程和调试
数据库逻辑结构确定后,应用程序设计的准备工作可以与物理设计并行进行。
程序模块代码通常在联调前通过模拟环境的初步调试。联合调试工作主要包括以下几点:
(1)建立数据库结构
根据逻辑设计和物理设计的结果,用DBMS提供的数据语言(DDL)编写数据库的源模式,编译后得到目标模式,通过执行目标模式可以建立实际的数据库结构。
(2)调试和运行
数据库结构建立后,加载测试数据,使数据库进入调试运行阶段。运行应用程序,测试
(3)加载实际初始数据
在数据库正式投入运行前,应做好以下工作:
(1)制定可行的数据库重组方案。
(2)制定故障恢复规范
(3)制定系统的安全规范
4.1.7操作和维护
数据库正式投入运行后,运维阶段的主要任务是:
(1)维护数据库的安全性和完整性。
按照既定的安全规范和故障恢复规范,当系统安全性出现问题时,及时调整授权和修改密码。及时发现系统运行时的错误,并迅速修改,保证系统的正常运行。将数据库的备份和转储作为日常工作。一旦出现故障,立即使用数据库的最新备份进行恢复。
(2)监控系统的性能。
使用DBMS提供的性能监视和分析工具,可以持续监视系统的运行。当数据库的存储空间或响应时间等性能下降时,立即分析研究找出原因,及时采取措施进行改进。例如,通过修改一些参数、整理碎片、调整存储结构或重组数据库,可以使数据库系统保持高效、正常的运行。
(3)扩展系统的功能
在保持原系统功能和性能的基础上,适应环境和需求的变化,采纳用户的合理意见,对原系统进行扩展,增加新的功能。