常见的数据库管理系统有MySQL、Oracle、SQLServer、MongoDB、Redis等。数据库设计就像是建造一座大厦。我们建造大厦之前,需要对大厦的整体结构进行设计,绘制施工图纸,然后工程人员和施工人员根据图纸进行具体施工。数据库设计也是一样的道理。一旦数据库投入使用,如果数据库设计不合理,导致数据查询缓慢,这时再进行数据库结构的修改必然会影响到用户的使用体验,这是任何公司都不希望出现的情况。
正因如此,刚开始就要考虑好如何设计数据结构。“好的”数据库设计与“差的”数据库设计有着明显的区别,如表2-1所示。
好的设计差的设计冗余比较少存在大量数据冗余数据更新维护稳定便捷数据插入、更新、删除容易发生异常高效利用存储空间存储空间浪费严重访问快速稳定数据访问低效表2-1 数据库设计优劣比较
为了设计出满足用户需求和项目要求的数据库,一般需要经过需求分析、概念设计、逻辑设计、物理设计、维护优化几个阶段,如图2-3所示。
图2-3 数据库设计阶段
(1)需求分析
数据库设计时必须首先准确了解和分析用户需求,因此需求分析是整个数据库设计过程的起点和基础。需求分析的目的是通过详细调查现实世界的对象,明确用户或利益相关方的各种需求,从而确定系统功能及其可扩展性。在数据库设计过程中,需求分析的重点是调查数据的处理,主要考虑的问题有:数据有哪些?数据有哪些属性?数据和属性各自的特点是什么?
数据库设计中的需求分析经常使用结构化分析方法,从顶层的系统组织结构入手,采用自顶向下、逐层分解的方式分析系统。前面章节中的数据流程图正好发挥作用。数据流程图从数据流的角度来展示业务过程,更好地帮助产品经理和数据库研发人员好地帮助产品经理和数据库研发人员从数据视角理解用户需求。利用结构化分析方法来进行需求分析时,经常会逐层分解,形成若干层次的数据流程图。
(2)概念设计
概念结构设计,也就是把用户需求抽象成一个个独立于具体DBMS(DatabaseManagementSystem,数据库管理系统)的概念模型,然后进行逻辑结构设计,将概念结构转换为某个DBMS所支持的数据模型并将其进行优化。概念结构设计,一般说来有4种方法,如表2-2所示。
方法说明自顶向下先明确全局概念结构的框架,然后逐步细化自底向上先明确各局部应用的概念结构,然后集成起来即可得到全局概念结构逐步扩张先明确最重要的核心概念结构,然后不断扩张,逐步生成其他的概念结构直至全局概念结构混合策略自顶向下和自底向上相结合表2-2 概念设计的方法
实践中,概念结构设计过程会混合使用多种方法,很少单独使用一种方法就可以完成概念结构设计的全过程。
(3)逻辑设计
逻辑结构设计是在概念结构设计的基础上,将概念结构转换为某个DBMS所支持的数据模型并进行优化。这个阶段主要使用实体关系图对数据库进行逻辑建模。实体关系图向关系模型的转换,要解决的问题是如何将实体之间的关系转换为关系模式,如何确定这些关系模式的属性,尤其是主属性(码)。这个阶段之所以叫作逻辑设计,是因为这种模型不受具体的数据库管理系统影响,不管是使用关系型数据库如MySQL,还是非关系型数据库如MongoBD,都不会影响逻辑建模的过程。
(4)物理设计
物理设计是为逻辑数据结构模型选取一个适合应用环境的物理结构(包括存储结构和存取方法)。物理设计主要考虑的是如何结合具体的数据库管理系统的特点,如MySQL、MongoBD等的特点,来实现建模。这也就是说,研发人员需要结合所使用的数据库的自身特点,更好地把逻辑设计转化为物理设计。在物理设计阶段,首先需要对运行的事务进行详细分析,明确物理数据库设计所需参数;其次,需要充分了解所用的DBMS的内部特征,特别是系统提供的存取方法和存储结构;最后,数据库设计人员使用DBMS提供的数据库语言(如SQL),根据逻辑设计和物理设计的结果建立数据库,编制和调试应用程序,组织数据入库并进行试运行。
(5)维护优化
维护优化阶段主要考虑的是,根据新的业务需求来进行建表工作,对索引进行优化进而提高查询速度,对大型表格进行拆分。一般来讲,数据库应用系统经过试运行后,即可投入正式运行,在数据库系统运行过程中必须不断地对其进行评估、调整和优化。
预览时标签不可点收录于话题#个上一篇下一篇