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