按照规范设计的方法,一般将数据库设计分为以下6个阶段

1、需求分析:分析用户的需求,包括数据、功能和性能需求(需求分析报告)

2、概念结构设计:主要采用E-R模型进行设计,包括画E-R图(概念模型)

3、逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换(逻辑模型)

4、物理结构设计:主要是为所设计的数据库选择合适的存储结构和存取路径(物理模型)

5、数据库实施:包括编程、测试和试运行(相关文档)

6、数据库的运行和维护系统的运行与数据库的日常维护。

 

数据库设计过程是一个反复修改、反复设计的迭代过程,不是一蹴而就就可以完成的。在数据库设计过程中,需求分析和概念设计可以独立于任何数据库管理系统进行,逻辑设计和物理设计与选用的DBMS密切相关(采用PD为设计工具,逻辑模型也不需要指定DBMS)。

从实际工作来说,一般不是大型系统的数据库设计,不需要严格按照以上阶段进行,主要讨论其中的第1和第3个阶段,即需求分析和逻辑设计,而小型的数据库设计时,一般也是根据需求分析报告直接生成物理模型,不会建立概念模型和逻辑模型的。

以下按标准的设计步骤来介绍各个阶段的主要工作及设计重点,鉴于本人能力,每一部分只能泛泛而谈,相关详情分析可以查阅网上资料。

1、需求分析阶段(常用自顶向下)

进行数据库设计首先必须准确了解和分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,也是最困难、最耗时、最重要的一步。需求分析是否做得充分和准确,决定了在其上构建数据库建筑的速度与质量。需求分析做的不好,会导致整个数据库设计返工重做。而需求分析也是整个软件工程的基石。

需求分析的任务:

是通过详细调查现实世界要处理的事务对象,充分了解业务工作概况,明确用户的各种需求,然后在此基础上确定系统的功能,需求分析人员还得充分考虑今后可能的扩充与改变,不仅仅能够按当前应用需求来设计。调研的重点是数据与处理流程。

需求分析的主要任务如下:

A、调查分析用户活动

B、收集和分析需求数据,确定系统边界,信息需求,处理需求,安全性和完整性需求

C、编写系统分析报告

需求分析的方法:

需求分析有两种方法:自顶向下、自底向上;

一般常用的是SA(StructuredAnalysis)结构化分析方法,SA方法从最上层的系统组织结构入手,采用自顶向下,逐层分解的方式分析系统,用数据流图和数据字典描述系统。

数据流图(Data Flow Diagram,DFD)表达了数据和处理过程的关系,在SA方法中,处理过程的处理逻辑常常借助判定表或判定树来描述。在处理功能逐步分解的同事,系统中的数据也逐级分解,形成若干层次的数据流图。

系统中的数据则借助数据字典datadictionary,DD)来描述。数据字典是系统中各类数据描述的集合,数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程5个阶段。

2、概念结构设计阶段(常用自底向上)

概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽象,形成了一个独立于具体DBMS的概念模型。

概念模型是对现实世界的一种抽象,从实际的人、物、事务和概念中抽取所关心的共同特性,忽略非本质的细节,这些共同特性被各种概念精确的加以描述,按某种规则组成了概念模型。

概念结构设计的目标是设计数据库的E-R模型图,确认需求信息的正确和完整。具体来说就是从需求分析中找到实体,确认实体的属性、确认实体的关系,画出ER图。

设计概念结构通常有四类方法:

自顶向下:即首先定义全局概念结构的框架,再逐步细化。

自底向上:即首先定义各局部应用的概念结构,然后再将他们集成起来,得到全局概念结构。

逐步扩张:首先定义最重要的核心概念结构,然后向外扩张,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。

混合策略:即自顶向下和自底向上相结合。

 

E-R图的基本步骤:

l 确定实体类型

l 确定联系类型

画出E-R图

l 确定实体的属性

 

概念结构设计常用的方法一般是是自底向上,步骤如下图:

 

 

 

 

第一步,数据抽象与局部E-R模型设计

A、数据抽象:

在多层数据流中选择一个适当层次作为设计E-R图的出发点。对需求分析阶段收集到的数据进行分类(或聚合)组织,形成实体、实体包含的属性、实体之间的联系

常用的抽象、划分实体和属性的方法:

分类:将一组具有某些共同特性和行为的对象抽象为一个实体。

聚合:将对象类型的组成成分抽象为属性。

概括:

B、局部E-R模型设计

局部E-R模型设计的原则是属性必须是不可分的数据项,不能再由放弃其他属性组成(也即所谓的原子性);属性不能与其他实体具有联系,联系只能发生在实体之间。

为简化E-R图,凡是能作为属性对待的对象,尽量作为属性。

第二步,全局E-R模型设计

集成各局部E-R模型,形成全局模型。视图集成的方法有两种:

A、多元集成法:一次性将多个局部E-R图合并为一个全局E-R图。

B、二元集成法:首先集成两个重要的局部E-R图,然后用累加的方法逐步将一个新的E-R图集成进来。

合并局部E-R图,消除冲突,初步生成E-R图。合并的关键是合理消除各局部E-R图的冲突。各分E-R图之间的冲突主要有三类:属性冲突,命名冲突,和结构冲突。

优化并消除初步E-R图中不必要的冗余数据和冗余联系,生成基本的E-R图。

 

3、逻辑结构设计阶段

逻辑结构设计的任务是将概念结构设计阶段完成的实体模型转换成特定的DBMS所支持的数据模型,并将其进行优化的过程。逻辑结构设计的目的是将E-R图中的实体、属性和联系转换成为关系模型。

E-R图向关系模型的转换,要解决的问题是如何将实体性和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。

 

3.1 初始关系模型设计

实体间关系转换遵循的原则:

一个实体转换为一个关系模型,实体的属性就是关系的属性,实体的键就是关系的键。

一个联系转换为一个关系模型,与该联系相连的各实体的键以及联系的属性均转换为该关系的属性。

3.2 关系模式规范化

应用数据库设计的范式理论对初始关系模型进行优化。数据库设计的三大范式如下:

第一范式:每一个分类必须是一个不可分的数据项。属性不可再分,确保每列的原子性。

第二范式:要求每个表只描述一件事情,每条记录有唯一标识列。

第三范式:数据库表中不包含已在其它表中已包含的非主关键字信息。

 

关系模式的规范化过程如下:

A、确定范式级别:考察关系模式的函数依赖关系,确定范式等级。

B、实施规范化处理:利用规范化方法和理论将关系模式规范化。

C、模式改进:

合并:将用于关联查询的具有相同主键的各表合并可提高查询效率,例如表结构相近的。

分解:水平分解或者垂直分解;

水平分解,将关系的元组分为若干子集,提高查询效率;垂直分解,把关系中经常一起使用的属性分解出来,形成一个子关系,提高执行效率。分解时要保持无损连接和函数依赖。

 

4、物理结构设计阶段

物理设计是为逻辑数据结构模型选取一个最适合应用环境的物理结构。

物理结构设计是对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。数据库的物理结构设计分为两步:

A、确定物理结构:存取方法和存储结构

B、评价物理结构:评价重点是时间和空间效率

根据具体的数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(数据类型 索引 主键)。

4.1 确定物理结构

1)存储结构的设计

确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。例如消除一切冗余数据虽然能够节约存储空间,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中方案。

2)数据存取路径的设计(索引)

在关系数据库中,选择存取路径主要是指确定如何建立索引。例如,应把哪些域作为次码建立次索引,建立单码索引还是组合索引,建立多少个为合适,是否建立聚集索引等。

3)数据存放位置的设计

为了提高性能,可将数据的易变部分、稳定部分、经常存取部分和存储频率较低部分分开存放。

4)系统配置的设计

DBMS产品一般都提供了一些存储分配参数,供设计人员和DBA对数据库进行物理优化。初始情况下,系统都为这些变量赋予了合理的缺省值,但是这些值不一定适合每一种应用环境,在进行物理设计时,需要重新对这些变量赋值以改善系统的性能。

4.2 评价物理结构

物理结构设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案,数据库设计人员必须对方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。

评价物理数据库的方法完全依赖于所选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。

 

5、数据库实施阶段

数据库实施阶段是指根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构、装入数据、进行测试和试运行的过程。

在数据库实施阶段,设计人员运营DBMS提供的数据库语言(如sql)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制和调试应用程序,组织数据入库,并进行试运行。

 

 

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

数据库应用系统经过试运行后,即可投入正式运行,数据库运行与维护的主要任务包括:

A、维护数据库的安全性与完整性

B、监测并改善数据库性能

C、重新组织和构造数据库

在数据库系统运行过程中必须不断地对其进行评价,调整,修改。只要数据库系统在运行,就需要不断地进行修改、调整和维护。