任务1.1.3 了解数据库设计的方法及步骤
数据库设计是建立数据库及其应用系统的技术,在信息系统开发和建设中处于核心地位。具体来讲,数据库设计是指对于一个已知的应用环境,构造一个最优的数据库逻辑模式及物理结构,并在此基础上建立数据库及其应用系统,使其可以有效地存储数据,满足不同用户的各种应用需求。
数据库设计是一个庞大的工程,整个过程需要分阶段进行,无法一气呵成,往往需要试探性地反复修改,设计结果也不是唯一的。在设计的过程中,往往会遇到各种各样的要求,需要克服各种制约因素,它们之间可能存在矛盾,数据库设计的过程便是解决这些矛盾的过程。
1.数据库设计方法
现实世界的复杂性导致了数据库设计的复杂性。只有以科学的数据库设计理论为基础,在具体的设计原则指导下,才能保证数据库的设计质量,减小后期维护的代价。在早期,数据库设计基本都是采用手工试凑法,它既缺乏科学理论依据,又缺少工程方法的支持,设计人员的经验和水平在很大程度上决定了数据库的质量,因此项目质量难以得到保障,系统维护的成本也较高。设计人员经过十余年的努力探索,提出了各种数据库设计方法。这些方法运用软件工程的思想总结出了各种设计准则和规程,这些都属于规范设计方法。目前常用的数据库设计方法都属于规范设计方法,即都是运用软件工程的思想,根据数据库设计的特点提出的。这种工程化的规范设计方法也是在目前技术条件下设计数据库最实用的方法。
逻辑数据库设计是根据用户需求和特定 DBMS 的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构。物理数据库设计是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。
著名的新奥尔良方法是目前公认的比较完整和权威的一种规范设计方法。它将数据库设计分为4个阶段:需求分析(分析用户需求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。目前主流的规范设计方法大部分起源于新奥尔良方法,并在设计的每一阶段采用了一些辅助方法来具体实现。
除了上述方法,还有一些为数据库设计不同阶段提供的具体实现技术与方法,如基于实体-联系(Entity-Relationship,E-R)模型的设计方法、基于3NF(第三范式)的设计方法和基于抽象语法规范的设计方法等。规范设计方法从本质上看仍然属于手动设计方法,其基本思想是过程迭代和逐步求精。
为了降低数据库设计的工作难度,加快数据库设计速度,提高数据库设计质量,数据库工作者也一直在研发具有辅助设计功能的设计工具。目前常用的实用化和产品化的数据库设计工具软件有Oracle公司的Design 2000和Sybase公司的PowerDesigner,这些工具软件能自动或辅助设计人员完成数据库设计过程中的很多任务,但使用起来还是有一定的难度和复杂度。
2.数据库设计步骤
按照新奥尔良方法,数据库设计的全过程主要分为需求分析、概念设计、逻辑设计和物理设计4个阶段,如图1-6所示。
图1-6 数据库设计的全过程
(1)需求分析
进行数据库设计前必须充分了解与分析用户需求(包括数据与处理)。需求分析在整个设计过程中具有奠基石的地位,是最困难和最耗时间的一步。需求分析主要包括以下2个步骤。
① 收集、整理与分析。
这一步主要是调查、收集、整理与分析用户在数据管理中的信息需求、处理需求、安全性与完整性需求,主要方法包括:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种需求、确定新系统的边界等。
② 描述数据流图与数据字典。
完成收集并分析用户需求后,还需对需求进行进一步表达。分析和表达用户需求的常用方法为结构化分析(Structured Analysis,SA)方法。SA方法从最上层的系统组织结构入手,采用自顶向下、逐层分解的方式分析系统,并描述数据的流向和数据的处理功能。除了数据流图,还需使用数据字典(Data Dictionary,DD)来集中描述系统中的各类数据。DD 通常包括数据项名称、性质、取值范围、使用者、提供者、保密要求、数据之间联系的语义说明,以及各部门对数据本身及数据处理的需求。 需求分析是数据库设计的起点,需求分析的结果是否准确反映了用户的实际需求,将直接影响到后面各个阶段的设计,并影响设计结果是否合理和实用。
(2)概念设计
概念设计是数据库设计中的关键步骤,它通过对用户需求进行综合分析、归纳与抽象,形成一个不依赖具体DBMS的概念数据模型,一般用E-R模型表示。对概念数据模型进行转换,可以形成计算机上某个DBMS支持的逻辑数据模型。概念数据模型的特点如下。
① 具有较强的语义表达能力,能够清晰表达应用所包含的各种语义知识。
② 简洁明了、易于用户理解,是数据库设计人员与用户之间沟通的桥梁。
数据库概念设计的基本方法将在任务1.3.1中重点介绍。
(3)逻辑设计
逻辑设计的任务是将E-R模型转换为某个DBMS所支持的数据模型(如关系模型,即基本表),并对其进行优化。这个阶段的模型设计需要考虑到DBMS本身的性能与特征,然后根据用户的需求及安全性方面的考虑,在基本表(Table)的基础上建立必要的视图(View),形成数据库的外模式。
数据库逻辑设计的基本方法将在任务1.3.2中重点介绍。
(4)物理设计
物理设计主要是为逻辑结构模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。物理设计因DBMS的特点和处理的需求而异,大致流程是对逻辑设计的关系模型进行物理存储安排,并设计用于实现高效数据访问的索引,形成数据库的内模式。