曹艺译
关键词:计算机软件;数据库设计;软件数据库
1数据库设计对于软件工程项目的重要性
数据库是计算机软件的核心组成部分,数据库的设计关系到软件功能的开发和使用。但在实际的工作中,计算机软件工程师对数据库设计的认知程度参差不齐。有的软件工程师凭借以往对数据库的设计经验,在设计过程中只注重对数据的功能模块进行设计,而忽略了用户的具体需求和软件的宏观架构,虽然将数据库的功能模块设计得很完美,但缺乏与软件整体的适应性。这种不成熟的设计观念对数据库的设计工作和软件的开发工作都造成了一定的阻碍,也在无形之中为后期数据库的升级和维护增加了难度。这些隐患有时不会在前期的设计与使用阶段暴露出来,但随着时间的推移,往往会在后期的使用和软件功能的扩展时期,为软件工程师的数据工作带来困扰。由此可见,数据库的设计不仅要有一定的技术水平,还要有长远的发展眼光,如此才能将数据库设计得完整合理,应从宏观角度考虑数据库对软件未来的深度影响。
总的来说,数据库的设计者要具备一定的数据库专业设计能力、顶层架构的系统性思维能力、对软件未来发展的预判能力、对用户需求深度分析能力,才能将数据库设计工作做到尽善尽美。一个合理的数据库设计方案要具备完整性、高效性、长效性的特点,理想的数据库不仅可以为软件功能的开发起到事半功倍的效果,提升软件的使用计算效率,还能降低软件未来的维护与调整成本,为软件的升级和功能的改进提供充足的空间。因此,数据库的设计在计算机软件开发中显得尤为重要[1]。
2软件开发行业数据库设计的常见问题
2.1设计不能满足需求
数据库的设计是软件開发过程中的首要环节,满足软件功能的数据需求是数据库设计的基本原则。若数据库的设计不完整、不合理、不能完全地满足功能需求,则在软件的应用过程中很可能会直接导致整个系统崩溃和瘫痪。
2.2数据库性能比较低
很多软件虽然能实现客户所需要的功能,但在应用运行的过程中,速度极其缓慢,效率极其低下。在不考虑硬件设施影响因素的条件下,很有可能是数据库的设计不合理、算法不科学导致的。当今社会对软件的功能需求越来越多样化,数据库的结构也越来越复杂,在这种背景下,如何保证数据库性能的高效,是工程师在设计数据库时应该着重考虑的问题[2]。
2.3数据库设计不完整
完整性是数据库必须要具备的条件之一。不完整的数据库会导致数据在“增删改查”的过程中出现主键关联断裂、数据信息溢出,甚至数据错乱或丢失等问题,造成不可挽回的严重后果。
2.4数据库的扩展性较差
在满足软件功能基本需求的基础上,数据库的可扩展性也是非常重要的。有的软件工程师在设计数据库时过于注重功能的实现,过度简化数据表的结构,虽然能一时满足软件功能的需求,但在后续的更新和修改过程中,因缺乏二次扩展的可能性反而限制了软件的升级[3]。
2.5数据查询统计效率低
有的软件统计功能较差,计算效率较低,导致这种现象的原因是设计者在设计数据表时,没有考虑到为数据表设计有针对性的查询统计字段。数据查询统计的需求是多样化的,设计者要充分考虑这种多样化的可能性,并以此为依据设计数据表之间的关联关系。
2.6数据日志信息不全
前期软件开发中数据库的设计工作与后期软件应用中对数据的分析工作很可能不是同一批人负责。这就需要设计者在设计数据库时考虑到必要的数据日志信息,对数据库的操作和时间变化等关键信息进行记录,为后期数据的分析与维护工作降低难度。
3数据库设计的基本原则
3.1建立数据表关联关系
数据库是由众多的数据表组成的,表与表之间的关联性在很大程度上决定了数据库架构的合理性。尤其是当今的大数据时代,海量的数据需要由海量的数据表来进行储存,数据与数据之间以及表与表之间存在错综复杂的关系。软件工程师在设计数据库时,要结合软件的实际需求,强化表与表之间的必要联系,提高数据库架构的合理性和可应用性,这在后期数据库的设计中至关重要。对于数据量较大的数据库,可以灵活应用映射表,将各数据表进行关联划分,使数据表之间的关系简洁明了[4]。
3.2合理选择设计方式
不同的数据库设计方式适用于不同软件的开发,设计方式没有优劣之分,对于设计方式的选择要把握适合的原则,根据软件的具体需求,选择科学、合理、直观、省力的方式。
常见的设计方式有两种,一种是视图集成模式。它是将数据库的设计划分为工作单元,针对不同的单元分别进行设计,最后将设计好的工作单元以视图的模式集成在一起,作为后期工作分析的重要依据,将整个视图集成分析后,得出整体的分析结论,最后参考分析结论完成对数据库的设计。另一种是集中设计模式,其侧重于对全局的把握。首先对客户的需求进行整体分析,然后根据分析结果为数据库进行全局建模,最后根据构建的数据库模型完成数据库的设计工作。两种模式各有优劣,视图集成模式的优点在于可以分摊设计工作量,模块化、精细化的设计更具可操作性。其劣势在于对宏观的把握不足,在后期视图整合的过程中难度较大。集中设计模式的优点在于对软件的整体把控度较高。但其缺点在于对于大型的软件工程项目而言,这种方式实施起来的难度较大。软件工程师要根据具体开发的软件项目,选择适合的数据库设计模式[5]。
3.3深度分析用户需求
计算机软件的开发是供人使用的,随着当今社会的不断发展进步,人们的需求也随之提高,软件也开始朝多样化的趋势发展。而软件的多样性,从另一个角度反映出功能需求的多样性,因此.数据库的设计乃至计算机软件的开发都要以客户的需求为宗旨,所以对用户需求的分析就显得格外重要。用户的需求不同,应用的领域不同,对数据库的要求也不尽相同。通常来讲,应用在不同领域的软件,数据库的设计差异也较大,如企业员工的办公系统、图书馆书籍的登记系统、医疗机构的专业系统、学生户籍的管理系统等。需求不同决定了数据库的层次不同,决定了设计者要选择的设计方式和理念也不同,如何准确把握客户的需求,是设计者数据库设计的重点之一[6]。
3.4数据结构与软件功能的契合度
数据库架构的设计与搭建,是为了对软件各模块的后续程序开发提供服务。因此,对于数据库的设计不能只局限于数据库这一部分,而是要站在全局的角度综合考虑,为后续的功能模块开发提供便利。在开始数据库的设计工作之前,首先要站在需求的角度,对软件的整体架构进行宏观把握;其次,要对软件每一个功能模块的逻辑性有初步的了解;最后,根据软件整体运行流程的分析结果,决定数据库的设计走向,既要保障每个功能模块平稳运行,也要提供对软件整体的数据支撑[7]。
3.5留取空余字段空间
数据库的设计工作往往都不是一气呵成的,其中存在一定的变数,主要有两个方面的原因。一方面是用户需求的变化。无论是在软件的开发过程中,还是在之后的应用过程中,用户的需求往往会随着软件开发和应用的进程而发生变化,这就要求数据库的设计者根据变化调整数据库架构或升级软件功能模块。另一方面,面对大量的用户需求和多样化的操作使用,在前期的数据库设计过程中难免会因考虑不周导致后期出现纰漏,这就要软件工程师对数据库进行维护。因此,软件工程师在数据库的设计阶段,要留足空余字段的空间,以便今后对数据库进行维护和对数据库架构进行升级,与此同时,空余字段空间的留取也有利于对数据库信息操作行为进行记录。
3.6数据库设计的检验
在数据库设计完成之后,要对其进行反复检验。一方面要对数据库的物理架构进行检验。物理架构的检验主要针对数据库设计的完整性,查看数据表的字段设计能否符合软件功能的需求、是否存在信息设计遗漏的情况和物理架构不合理的情况。另一方面是功能性检验。主要检测软件功能模块在运行过程中,对数据库的处理情况是否高效准确,数据表的主键设置和表之间的关联关系能否满足功能模块的合理需求。
4数据库设计的未来发展
4.1更新设计理念
我国软件开发行业对于数据库的设计并没有引起足够的重视。有的软件工程师在数据库设计时,仅局限于完成设计,缺乏系统性的思维和宏观视角的审视。数据是功能的基础,数据库设计是软件项目开发的基础。一个优秀的数据库设计者必然要具备顶层架构的思维能力,这就需要设计者首先转变认知观念,深化对数据库设计重要性的认识,有意识地培养上位思考能力,从全局的角度把控数据库的设计。
4.2提升设计水平
数据库的设计工作不可能尽善尽美,每一个数据库设计者都走在持续优化数据库以接近完美的路上。优化设计是一个提升数据库设计能力的过程,这就要从两个方面人手。一方面,要善于总结归纳以往成功经验,对数据库设计的优劣有一个成熟、准确的判断,优秀的数据库就像一件精美的艺术品,其底层逻辑和数据结构都让人着迷。另一方面,要对数据库未来的变化与发展有基本的预判。在数据库设计契合软件需求的基础上,要打破当前数据的局限性,预判其在未来的升级空间。
4.3培养设计人才
就当前的行业现状来看,对于数据库设计而言,很多优秀的软件工程师并非软件工程专业出身,而是由数学专业跨行业而来。这种现象不禁让我们回头反思数据库设计者应具备的素质到底是什么。针对软件专业技能的培训、各种数据库操作语言的学习等,专业技能固然重要,但比这更重要的是逻辑思维能力和对数据底层智慧的理解程度。因此,在对软件工程人才的培养过程中,要有针对性地设置数据底层逻辑的学习科目,为我国数据库高端人才的培养打下坚实的基础。
5结束语
在网络时代高速发展的背景下,软件数据库的设计与开发难度随之增加,對数据库设计者的要求也逐渐提高。为满足大数据时代下的数据库设计需求,本文通过研究数据库设计对于软件项目开发的重要性,归纳总结数据库设计过程中常见的问题,并对此提出数据库设计时需要把握的原则和可以应用的方法,紧跟时代潮流,紧随行业发展,为我国软件项目开发行业的数据库设计者提供参考。