数据库的设计步骤
数据库的设计过程与应用系统的设计是不能隔离的。一个数据库设计人员对程序设计技术完全不懂是不行的。数据库的设计过程也是应用系统的设计过程。在这个过程中,充分利用软件工程的研究成果,与用户充分地交流, 搞清楚应用环境,把数据和数据处理的需求收集、分析、抽象、设计等工作在各个设计阶段都相互参照和相合补充,以完善两方面的设计。
按照上述原则和规范化的设计方法,数据库设计步骤分为六个阶段。
- 需求分析。这个阶段的工作是要充分调查研究,了解用户需求;了解系统运行环境,制定将要设计的系统的功能;收集基础数据,包括输入、处理和输出数据;在这个过程中,要从系统的观点出发,既要调查数据,又要考虑数据处理,也就是数据库和应用系统同时进行设计。
结构化分析方法(SA)是常用的分析用户需求的规范化的方法,表达用户需求的是数据字典和数据流图(DFD),这些文档成为下个阶段的概念设计的基础,也是将来系统维护的基础。对规范化的设计来说,这些文档是必不可少的。
- 概念结构设计。概念结构是整个系统的信息结构。它是现实世界的真实反映。包括实体与实体之间的关系。概念结构同时是易于理想的,可以拿它和用户交换意见,而用户的意见是至关重要的。概念结构是独立于各种数据模型的,它是各种数据模型的基础,易于向关系、网状、层次模型转换。概念结构设计的有力工具是 E-R 图。
下面是几个 E-R 图的例子。在 E-R 图中,长方形表示实体,椭圆形表示实体的属性,菱形表示实体间的关系。
概念结构设计的第一步是对需求分析阶段收集到的数据进行分析,参照数据流图和数据字典,逐步确定实体、实体
的属性、实体间的联系(一对一或一对多等),设计出局部 E-R 图。第二步是将多个分 E-R 图逐步集成。集成的过程是一个合并调整的过程,在这个过程中,要消除各种冲突,例如,年龄的表示,在各个分 E-R 图中可能有不同的表示方法,有的用年龄,有的用出生日期;又如同一个实体,有不同的名字,或反过来,不同的实体用了同一个名字。还要消除冗余的数据和联系,冗余会给系统的维护带来困难。最后生成基本 E-R 图。
- 逻辑结构设计。这个阶段的任务是将概念结构转换成与所选用的DBMS 所支持的数据模型相符合的过程。一般情况下,应该是向适合概念模型
的数据模型转换,然后再挑选合适的软件 DBMS 和机器。但是实际情况往往不是这样当概念模型向数据模型转化时,一个实体型转换为一个关系模式,而是实体的属性就是关系的属性,联系转换为一个关系模式。
数据库逻辑设计的结果不是唯一的,还要对数据模型进行优化,优化是指适当地修改、调整数模型的结构,提高数据库应用系统的性能。主要措施有记录的垂直分隔、水平分隔、适当增加冗余(提高速度等)。
规范化理论就是用于优化数据库的逻辑设计。广泛地用于逻辑结构结构设计阶段,用模式分解的概念和算法指导设计。用规范化理论分析关系模式的合理程度。
- 数据库物理设计。这个阶段的任务是为一个给定的逻辑数据模型选取一个合适的物理结构,并对物理结构进行评价。评估的内容包括存储空间、响应时间等,如符合要求,则转向物理实施;不符合要求时,还要从前面的某一阶段开始再次重复上述过程,修改数据模型、重新设计、修改物理结构等。
在进行物理设计时,必须要了解 DBMS 的功能,了解应用环境,理解设备的特性,扬长避短。物理设计的主要内容有数据库的存放策略、数据库结构等。在设计完成后,还要进行性能评估和预测。物理设计过程需要对时间、空间效率、维护代价和各种用户要求进行权衡,对多种方案进行比较和细致的评价,最终选择一个较好的方案。
-
数据库实施和维护。进入这个阶段后,就要按照逻辑设计和物理设计的结果利用 DBMS 的数据定义语言把数据库描述出来,采用某种设计语言设计应用程序,经过反复调试生成目标模式,然后组织数据入库并试运行。
-
数据的载入。数据的载入是一个复杂的工作。可以人工输入,也可以利用原来的数据转录,但是数据质量的控制是很重要的,这种检验由应用程序和数据库完整性检查来完成。试运行的主要工作是检查应用程序的功能,测量系统的性能指标,在物理设计阶段所做的评估是否正确,此时可以得到检验。在试运行时,数据量一定要从小到大,以免不必要的重复劳动。试运行时发现问题,随时改正问题,并且不断增加数据,一个系统从试运行到稳定运行是需要一定的时间的。
当数据库正投入运行之后,数据库的开发任务完成,数据库的运行和维护阶段开始。投入运行并不表示万事大吉了。此后的主要工作还有:系统性能监视、改进,系统的转储和恢复,数据库的重组,调整数据库运行等。数据库的维护是整个数据库设计过程的一个有机的组成部分,丝毫也不亚于任何其他阶段的工作,不能认为是附属的不重要的而予以轻视。