Talk:数据库设计查看源代码页面查看历史
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。
数据库设计的设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护。
定义
数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。数据库系统需要操作系统的支持。 数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。
设计原则
1、一对一设计原则
在软件开发过程中,需要遵循一对一关系设计原则进而开展数据维护工作,通过利用此原则能够尽量减少维护问题的出现,保证数据维护工作顺利开展同时降低维护工作难度。在此过程中,尽量避免数据大且数据杂现象出现,否则既会影响到软件开发进度,又会增加工作难度,给其产品质量带来影响。所以,设计工作人员必须重视起此问题。同时充分了解实体间存在的必然联系,进而实现信息数据分散的目标,并在此基础上提高整体工作人员的工作效率,提高软件应用程序可靠性、科学性、安全性以及自身性能。
2、独特命名原则
独特命名原则的应用是为了减少在数据库设计过程中出现重复命名和规范命名现象出现。通过应用此原则能够减少数据冗杂,维护数据一致性,保持各关键词之间存在必然相对应联系。独特命名原则能够锻炼工作人员对大小写字母熟练操作能力,有利于规范化后台代码工作的开展。
3、双向使用原则
双向使用原则包括:事务使用原则和索引功能原则。首先,双向使用原则是在逻辑工作单元模式基础上实现其表现形式的,不仅给非事务性单元操作工作提供基础保障,也保证其能够及时更新、获取数据资源。索引功能原则的有效运用,使其获取更多属性列数据信息,并且对其做到灵活排序。目前,软件市场常见的索引模式有:多行检索聚簇索引和单行检索非聚簇索引。 [1]
重要性
1、有利于资源节约
不少计算机软件设计时过于重视计算机软件的功能模块,却没有综合、全面地分析数据库设计,这往往会导致软件在实际运行过程中频频出现性能低下以及各类故障,甚至还会引发漏电、系统崩溃等一系列安全隐患。因此,对计算机软件数据库设计加以重视不仅可减少软件后期的维修,达到节约人力与物力的目的,同时还有利于软件功能的高效发挥。
2、有利于软件运行速度的提高
高水平的数据库设计可满足不同计算机软件系统对于运行速度的需求,而且还可充分发挥并实现系统功能。计算机软件性能提高后,系统发出的运行指令在为用户提供信息时也将更加快速有效,软件运行速度自然得以提高。此外,具有扩展性的数据库设计可帮助用户节约操作软件的时间。在数据库设计环节,利用其信息存储功能可通过清楚一些不必要的数据库来提高系统的查询效率。除上述功能外,软件设计师还可依据软件功能需求进行有效的数据库设计,进而保障数据库有效发挥自身在计算机软件运行中的作用。
3、有利于软件故障的减少
在进行数据库设计时,有些设计师的设计步骤过于复杂,也没有对软件本身进行有效分析,这必然会导致计算机软件无法有效发挥自身功能。另一方面,有效的设计日志信息的缺乏还会导致软件在运行过程中出现一系列故障,用户在修改一些错误的操作时必然也会难度较大。因此,加强数据库设计可有效减少软件故障的发生几率,推动计算机软件功能的实现。
设计技术
①明确用户需求:作为计算机软件开发的重要基础,数据库设计直接体现了用户的需求,因此设计师在设计数据库时一定要与用户密切沟通,紧密结合用户需求。明确用户开发需求后,设计师还需将具体的业务体现出其关联与流程。为便于后期业务拓展,设计环节应充分考虑到拓展性,适当预留变通字段。
②重视数据维护:过大的设计面积与过于复杂的数据是数据库设计中常见问题,因此设计师应对数据维护工作加以重视。为提升数据库的设计效率,设计师还应关注数据与实体之间的联系,以分散与之相关的数据信息,促进设计效率的提升。
③增加命名规范性:数据库程序与文件的命名非常重要,既要避免名称重复,还要保证数据处于平衡状态。即每个数据的关键词都应处于相对应的关系。对此,设计师在命名时应明了数据库程序与文件之间的关系,灵活运用大小写字母来对其进行命名,降低用户查找信息与资源时的复杂度与困难度。
④充分考虑数据库优化与效率的问题:考虑到数据库的优化与效率,设计师需针对不同表的存储数据采用不同的设计方式,如采用粗粒度的方式设计数据量较大的表。为使表查询功能更加简便快捷,可建立有效的索引。在设计中还应使用最少的表和最弱的关系来实现海量数据的存储。
⑤不断调整数据之间的关系:针对数据之间的关系进行不断调整与精简可有效减少设计与数据之间的连接,进而可为数据之间平衡状态的维持以及数据读取效率的提升提供保障。
⑥合理使用索引:数据库索引通常分为有簇索引和非簇索引这两种均可提升数据查找效率的方式。尽管数据索引效率得到提升了,但索引的应用往往又会带来插入、更新等性能减弱的问题。数据库性能衰弱现象往往会在填充较大因子数据时表现较为突出,因此在对索引较大的表执行插入、更新等操作时应尽量填写较小因子,以为数据页留存空间。[2]
步骤和内容
需求分析
调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。
需求分析是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。在需求分析中,通过自顶向下,逐步分解的方法分析系统,分析的结果采用数据流程图(DFD)进行图形化的描述。
概念设计
对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。
逻辑设计
主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。
物理设计
根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。
验证设计
在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修改。因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。
运行与维护设计
在数据库系统正式投入运行的过程中,必须不断地对其进行调整与修改。
至今,数据库设计的很多工作仍需要人工来做,除了关系型数据库已有一套较完整的数据范式理论可用来部分地指导数据库设计之外,尚缺乏一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或交互式的半自动化设计。所以数据库设计今后的研究发展方向是研究数据库设计理论,寻求能够更有效地表达语义关系的数据模型,为各阶段的设计提供自动或半自动的设计工具和集成化的开发环境,使数据库的设计更加工程化、更加规范化和更加方便易行,使得在数据库的设计中充分体现软件工程的先进思想和方法。
存在问题
1、业务基本需求无法得到满足
无法充分满足业务基本需求的数据库设计不仅会造成数据系统的波动,而且还会因无法及时调整系统而对数据资源运行与处理带来较大的制约性。
2、数据库性能不高
计算机软件数据库系统对于业务数据的要求较高,然而目前却有不少数据库的性能并不高,在设计环节所采用的数字形式也并不合理,用户在执行查询等操作时均较为复杂,数据运用的兼顾性未得到充分考虑。
3、数据库的扩展性较差
对于一个完整的计算机软件数据库而言,其运行与调整离不开完整的数据资源。不完整的数据资源不仅会造成数据信息不合理,还会导致数据库更新不畅以及删除不完善等问题,这些问题的存在将严重制约信息资源的展示与分析。
4、数据资源冗余
数据资源冗余问题在计算机软件数据库设计中较为常见,系统查询速度将会由于大量数据资源库的占用而大大放慢。而统计工作的限制性又会对表系统设计带来一定的影响,如关联字段无法实现与统计字段的合理结合等。如此一来,数据库中的数据统计步骤将烦琐很多,统计项目也无法良好开展。
5、表与表之间的耦合过密
表与表之间的耦合过密是制约计算机数据库设计以及资源统计与分析的主要原因,一旦某个表发生变化,必然也会对其他表带来重大变化。 [3]
视频
数据库设计--数据库设计概述