数据库系统原理及应用教程(第5版)
上QQ阅读APP看书,第一时间看更新

3.1 数据库系统设计概述

本节介绍了数据库系统设计的基本内容、数据库系统设计的基本方法和步骤,以及数据库系统设计的特点和应注意的问题。

3.1.1 数据库系统设计的内容

数据库系统设计的目标是:对于给定的应用环境,建立一个性能良好的、能满足不同用户使用要求的、又能被选定的DBMS所接受的数据库系统模式。按照该数据库系统模式建立的数据库系统,应当能够完整地反映现实世界中信息及信息之间的联系;能够有效地进行数据存储;能够方便地执行各种数据检索和处理操作;并且有利于进行数据维护和数据控制管理的工作。

数据库系统设计的内容主要有数据库的结构特性设计、行为特性设计和物理模式设计。在数据库系统设计过程中,数据库结构特性的设计起着关键作用,行为特性设计起着辅助作用。将数据库的结构特性设计和行为特性设计结合起来,相互参照,同步进行,才能较好地达到设计目标。

1.数据库的结构特性设计

数据库的结构特性是指数据库的逻辑结构特征。由于数据库的结构特性是静态的,一般情况下不会轻易变动,因此数据库的结构特性设计又称为数据库的静态结构设计。

数据库结构特性的设计过程是:先将现实世界中的事物、事物间的联系用E-R图表示,再将各个分E-R图汇总,得出数据库的概念结构模型,最后将概念结构模型转化为数据库的逻辑结构模型表示。

2.数据库的行为特性设计

数据库的行为特性设计是指确定数据库用户的行为和动作,并设计出数据库应用系统的系统层次结构、功能结构和系统数据流程图,确定数据库的子模式。数据库用户的行为和动作是指数据查询和统计、事物处理及报表处理等操作,这些都要通过应用程序表达和执行。由于用户行为总是更新数据库内容的存取数据操作,用户行为特性是动态的,所以数据库的行为特性设计也称为数据库的动态特性设计。

数据库行为特性的设计步骤是:将现实世界中的数据及应用情况用数据流程图和数据字典表示,并详细描述其中的数据操作要求(即操作对象、方法、频度和实时性要求);确定系统层次结构;确定系统的功能模块结构;确定数据库的子模式;确定系统数据流程图。

3.数据库的物理模式设计

数据库的物理模式设计要求:根据库结构的动态特性(即数据库应用处理要求),在选定的DBMS环境下,把数据库的逻辑结构模型加以物理实现,从而得出数据库的存储模式和存取方法。

3.1.2 数据库系统设计应注意的问题

人们总是希望自己设计的数据库系统简单易用,具有安全性、可靠性、易维护性、易扩充性和最小冗余性等特点,并希望数据库对不同用户数据的存取都有较高的响应速度。为了能够达到这样的设计目标,设计者应当严格遵循数据库设计的方法和规则。数据库系统的设计是一项涉及多学科的综合性技术,也是一项庞大的工程。进行数据库系统设计时,应当注意以下两个问题。

1.进行数据库系统设计时应考虑计算机硬件、软件和干件的实际情况

在进行数据库设计时,应当考虑3个方面的内容。

(1)数据库系统的硬件条件是基础

数据库系统必须适应所在的计算机硬件环境,根据其数据存储设备、网络和通信设备、计算机性能等硬件条件设计数据库的规模、数据存储方式、分布结构及数据通信方式。

(2)数据库管理系统和数据库应用系统开发软件是软件环境

在数据库系统设计前,应当选择合适的数据库管理系统(DBMS)和数据库应用系统开发软件,使之适合数据库系统的要求。应当了解选定的数据库管理系统和数据库应用系统开发软件的特点,利用其数据操作和数据控制的优势,适应其特殊要求和限制,并使两者能较好地配合。

(3)数据库用户的技术水平和管理水平是关键

为了提高数据库用户及数据库管理员应用和管理数据库系统的水平,应当让他们充分参与设计数据库的工作,使之对数据库设计过程的每个细节都了解得比较清楚。这样,不但能够提高设计效率,而且有助于数据库用户及数据库管理员对数据库进行管理、扩充和维护等。

2.数据库系统设计时应使结构特性设计和行为特性设计紧密结合

数据库系统设计过程是一种自上而下的、逐步逼近设计目标的过程。数据库系统设计过程是结构设计、行为设计、分离设计、相互参照和反复探寻的过程。

图3-1是数据库系统设计的过程图,其中,数据库的逻辑模式设计要与事务设计结合起来,以支持全部事务处理的要求;为了更有效地支持事务处理,还需要进行数据库的物理结构设计,以实现数据存取功能;数据库的子模式则是根据应用程序的需要而设计的。

在数据库系统设计中,结构特性设计和行为特性设计必须相结合才能达到其设计目标。数据库系统设计者应当具有战略眼光,考虑到当前、近期和远期3个时间段的用户需求。设计的系统应当能完全满足用户当前和近期对系统的数据需求,并对远期的数据需求有相应的处理方案。数据库系统设计者应充分考虑到系统可能的扩充与改变,使设计出的系统有较长的生命力。

978-7-111-64633-4-Chapter03-1.jpg

图3-1 数据库系统设计过程

3.1.3 数据库系统设计的基本方法

现实世界的信息结构复杂且应用环境多种多样,在很长一段时间内,数据库系统设计是采用手工试凑法进行的。用手工试凑法设计数据库与设计人员的经验和水平有直接关系,它更像是一种技艺而不是工程技术。这种方法缺乏科学的理论和工程方法支持,数据库的质量很难得到保证,数据库常常是在投入使用以后才发现问题,不得不进行修改,这样就增加了系统维护的代价。十余年来,人们努力探索,提出了各种各样的数据库系统设计方法,并提出了多种数据库系统设计的准则和规程,这些设计方法被称为规范设计法。

新奥尔良(New Orleans)方法是规范设计法中的一种,它将数据库设计分为4个阶段:需求分析、概念设计、逻辑设计和物理设计。其后,许多科学家对其进行了改进,认为数据库系统设计应分6个阶段进行:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施及数据库运行和维护。在数据库系统设计的不同阶段上,实现的具体方法有基于E-R模型的数据库系统设计方法、基于3NF(第3范式)的设计方法和基于抽象语法规范的设计方法等。

3.1.4 数据库系统设计的基本步骤

图3-2中列出了数据库系统设计的步骤和各个阶段应完成的基本任务,下面就具体内容进行介绍。

978-7-111-64633-4-Chapter03-2.jpg

图3-2 数据库系统设计步骤

1.需求分析阶段

需求分析是数据库系统设计的第一步,也是最困难、最耗时间的一步。需求分析的任务是准确了解并分析用户对系统的需要和要求,弄清系统要达到的目标和实现的功能。需求分析是否做得充分与准确,决定着在其上构建数据库大厦的速度与质量。如果需求分析做得不好,会影响整个系统的性能,甚至会导致整个数据库设计返工重做。

2.概念结构设计阶段

概念结构设计是整个数据库系统设计的关键。在概念结构的设计过程中,设计者要对用户需求进行综合、归纳和抽象,形成一个独立于具体计算机和DBMS的概念模型。

3.逻辑结构设计阶段

逻辑结构设计的主要任务是将概念结构转换为某个DBMS所支持的数据模型,并将其性能进行优化。

4.物理结构设计阶段

物理结构设计的主要任务是为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据存储位置、数据存储结构和存取方法。

5.数据库实施阶段

在数据库实施阶段中,系统设计人员要运用DBMS提供的数据操作语言和宿主语言,根据数据库逻辑设计和物理设计的结果,建立数据库、编制与调试应用程序、组织数据入库并进行系统试运行。

6.数据库运行和维护阶段

数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中,必须不断地对其结构性能进行评价、调整和修改。

设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述6个阶段的不断反复。需要指出的是,这6个设计步骤既是数据库设计的过程,也包括了数据库应用系统的设计过程。在设计过程中,应把数据库的结构设计和数据处理的操作设计紧密结合起来,这两个方面的需求分析、数据抽象、系统设计及实现等各个阶段应同时进行,相互参照和相互补充。事实上,如果不了解应用环境对数据的处理要求或没有考虑如何去实现这些处理要求,是不可能设计出一个良好的数据库结构的。

上述数据库设计的原则和设计过程概括起来,可用表3-1进行描述。

表3-1 数据库系统设计阶段

978-7-111-64633-4-Chapter03-3.jpg

表3-1中有关处理特性的设计描述、设计原理、设计方法和工具等具体内容,在软件工程和信息系统设计等其他相关课程中有详细介绍。这里主要讨论有关数据特性的问题,包括数据特性的描述、如何参照处理特性和完善数据模型设计等问题。

在图3-3中,描述了数据库结构设计不同阶段要完成的不同级别的数据模式。

数据库系统设计过程中:需求分析阶段,设计者的中心工作是弄清并综合各个用户的应用需求;概念结构设计阶段,设计者要将应用需求转换为与计算机硬件无关的、与各个数据库管理系统产品无关的概念模型(即E-R图);逻辑结构设计阶段,要完成数据库的逻辑模式和外模式的设计工作,即系统设计者要先将E-R图转换成具体的数据库产品支持的数据模型,形成数据库逻辑模式,然后根据用户处理的要求、安全性的考虑建立必要的数据视图,形成数据的外模式;在物理结构设计阶段,要根据具体使用的数据库管理系统的特点和处理的需要进行物理存储安排,并确定系统要建立的索引,得出数据库的内模式。

978-7-111-64633-4-Chapter03-4.jpg

图3-3 数据库的各级模式