软件设计师笔记之软件系统分析与设计_数据库分析与设计

二.数据库分析与设计

  • 数据库设计属于系统设计的范畴。通常把使用数据库系统的系统统称为数据库应用系统,把对数据库应用系统的设计简称为数据库设计。
  • 数据的任务:针对一个给定的应用环境,在给定的硬件环境和操作系统及数据库管理系统等软件环境下,创建一个性能良好的数据库模式,建立数据库及其应用系统,使之能有效地存储和管理数据,满足各类用户的需求。

1.数据库设计的策略和步骤。

(1)数据库设计的策略。

数据库设计的一般策略:自顶向下(Top Down)和自定向上(Bottom Up)。

  • 自顶向下是从一般到特殊的开发策略。它从一个企业的高层管理入手,分析企业的目标、对象和策略,构造抽象的高层数据模型;然后逐步构造越来越详细的描述和模型(子系统模型)。模型不断地扩展细化,直到能识别特定的数据库及其应用为止。
  • 自底向上采用与抽象相反的顺序进行。它从各种基本业务和数据处理着手,即从一个企业的各个基层业务子系统的业务处理开始,进行分析和设计。然后将各子系统进行综合和集中,进行上一层系统的分析和设计,将不同的数据进行综合。最后得到整个信息系统的分析和设计。

(2)数据库设计的步骤。

  1. 用户需求分析。

数据库设计人员采用一定的辅助工具对应用对象的功能、性能和限制等要求进行的科学分析。

  1. 概念设计。
  • 概念结构设计是对信息分析和定义,如视图模型化、视图分析和汇总。
  • 该阶段是对应用对象精确地进行抽象和概括,以形成独立于计算机系统的企业信息模型。一般采用E-R方法。
  1. 逻辑设计。

将抽象的概念模型转化为与选用的DBMS产品所支持的数据模型相符合的逻辑模型,它是物理设计的基础,包括模式初始设计、子模式设计、应用程序设计、模式评价以及模式求精。

  1. 物理设计。

逻辑模型在计算机中的具体实现方案。

2.需求分析。

  • 需求分析是在项目确定之后,用户和设计人员对数据库应用系统所要涉及的内容(数据)和功能(行为)的整理和描述,是以用户的角度来认识系统。
  • 需求分析是后续开发的基础,以后的逻辑设计和物理设计以及应用程序的设计都会以此为依据。

(1)需求分析的任务、目标及方法。

  1. 需求分析阶段的任务:综合各个用户的应用需求,对现实世界要处理的对象(组织、部门和企业等)进行详细调查,在了解现行系统的情况,确定新系统功能的过程中,收集支持系统目标的基础数据及处理方法。
  2. 参与需求分析的主要人员:分析人员和用户。这是由于数据库应用系统是面向企业和部门的具体业务,分析人员一般并不了解,而同样用户也不会具有系统分析的能力,这就需要双方进行有效的沟通,使得设计人员对用户的各项业务了解和熟悉,进行分析和加工,将用户眼中的业务转换成为设计人员所需要的信息组织。
  3. 分析和表达用户需求的方法:主要包括自顶向下和自底向上两类方法。

自顶向下的结构化分析方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统 ,并把每一层用数据流图和数据字典描述。

  1. 需求分析的重点:调查组织机构情况,调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界,以此获得用户对系统的如下要求:
    (1)信息要求。用户需要在系统中保存信息,由这些保存的信息要得到什么样的信息,这些信息以及信息间应当满足的完整性要求。
    (2)处理要求。用户在系统中要实现什么样的操作功能,对保存信息的处理过程和方式,各种操作处理的频度、响应时间要求、处理方式等以及处理过程中的安全性要求和完整性要求。
    (3)系统要求。系统要求包括安全性要求、使用方式要求和可扩充性要求。其中,安全性要求是指系统有几种用户使用,每一种用户的使用权限如何;使用方式要求是指用户的使用环境是什么,平均有多少用户同时使用,最高峰时有多少用户同时使用,有无查询相应的时间要求等;可扩充性要求是指对未来功能、性能和应用访问的可扩充性的要求。
  2. 需求分析阶段的工作以及形成的相关文档(作为概念结构设计阶段的依据)如下:图1
图1. 需求分析阶段工作

(2)需求分析阶段的文档

  • 进一步分析和表达用户的需求,建立需求说明文档、数据字典和数据流程图。将需求调查文档化,文档既要被用户所理解,又要方便数据库的概念结构设计。
  • 数据流分析是对事务处理所需的原始数据的收集及经处理后所得数据及其流向,一般用数据流图(DFD)来表示。DFD不仅指出了数据的流向,而且指出了需要进行的事务处理(但并不涉及如何处理)。
  • 数据字典:各类数据描述的集合,包括数据项、数据结构、数据流、数据存储和加工(至少应该包含每个字段的数据类型和在每个表内的主键、外键)。它是关于数据库中数据的描述,即元数据,而不是数据本身。
  • 数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}
  • 数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
  • 数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}
  • 数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成:{数据结构},数据量,存取方式}
  • 加工描述={加工名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}

-需求分析的成果:系统需求说明书。主要包括数据流图、数据字典、各种说明性表格、统计输出表和系统功能结构图等。系统说明书是以后设计、开发、测试和验收等过程的重要依据。

3.概念结构设计

  • 数据库概念结构设计阶段是在需求分析的基础上,依照需求分析中的信息要求对用户信息加以分类、聚集和概括,建立信息模型,并依照选定的数据库管理系统软件转换成为数据的逻辑结构,再依照软/硬件环境,最终实现数据的合理存储,这一过程也称为数据建模。
  • 数据库概念结构设计的目标是产生反映系统信息需求的数据库概念结构,即概念模式。概念结构是独立于支持数据库的DBMS和使用的硬件环境的。此时,设计人员从用户的角度看待数据以及数据处理的要求和约束,产生一个反应用户观点的概念模式,然后再把概念模式转换为逻辑模式。

(1)概念结构设计策略与方法

  • 概念结构设计是设计人员以用户的观点对用户信息的抽象和描述,它是从现实世界到信息世界的第一次抽象,并不考虑具体的数据库管理系统。
  • 概念结构设计是对信息加以分类整理,理清各类信息之间的关系,描述信息处理的过程。
  • 概念结构设计的策略通常有以下4种:自顶向下、自底向上、逐步扩张和混合策略。在实际应用中这些策略并没有严格的限定,可以根据具体业务的特点选择。
  • 概念设计最著名、最常用的方法:实体-联系(E-R)方法。采用E-R模型将现实世界的信息结构统一由实体、属性以及实体之间的联系来描述。

(2)用E-R方法建立概念模型

E-R图的设计要依照上述的抽象机制,对需求分析阶段所得到的数据进行分类、聚集和概括,确定实体、属性和联系。概念结构的具体工作步骤包括选择局部应用,逐一设计分E-R图和E-R图合并。如下图所示:
图2

图2. 概念结构设计的工作步骤

(1)选择局部应用。
(2)逐一设计分E-R图。
(3)E-R图合并。

4.逻辑结构设计。

  • 逻辑结构设计即是在概念结构设计的基础上进行数据模型设计,可以是层次模型、网状模型和关系模型。
  • 逻辑结构设计阶段的主要工作步骤包括确定数据模型、将E-R图转换成为指定的数据模型、确定完整性约束和确定用户视图。图3
图3. 逻辑结构设计的工作步骤

(1)E-R图关系模式的转换。

  • E-R方法所得到的全局概念模型是对信息世界的描述,并不适用于计算机处理,为适合关系数据库系统的处理,必须将E-R图转换成关系模式。
  • E-R图是由实体、属性和联系三要素构成,而关系模型中只有唯一的结构——关系模式,常用的转换方法有:
    1)实体向关系模式的转换
    将E-R图中的实体逐一转换成为一个关系模式,实体名对应关系模式的名称,实体的属性转换成关系模式的属性,实体标识符就是关系的码(键)。
    2)联系向关系模式的转换
    E-R图中的联系有3种:一对一联系(1:1)、一对多联系(1:n)和多对多联系(m:n)。
  • 一对一联系的转换。一对一联系有两种方式向关系模式进行转换。一种是将联系转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性包括该联系所关联的两个实体的码及联系的属性,关系的码取自任一方实体的码;另一种方式是将联系归并到关联的两个实体的任一方,给待归并的一方实体属性集中增加另一方实体的码和该联系的属性即可,归并后的实体码保持不变。
  • 一对多联系的转换。一对多联系有两种方式向关系模式进行转换。一种是将联系转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性包括该联系所关联的两个实体的码及联系的属性,关系的码是多方实体的码;另一种方式是将联系归并到关联的两个实体的多方,给待归并的多方实体属性集中增加另一方实体的码和该联系的属性即可,归并后的多方实体码保持不变。
  • 多对多联系的转换。多对多联系只能转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的两个多方实体的码及联系的属性,关系的码是多方实体的码构成的属性组。

(2)关系模式的规范化

由E-R图转换所得的初始关系模式并不一定能完全符合要求,还可能会有数据冗余、更新异常存在,这就需要经过进一步的规范处理,具体步骤如下:

  1. 根据语义确定各关系模式的数据依赖。
  2. 根据数据依赖确定关系模式的范式。
  3. 如果关系模式不符合要求,要根据关系模式的分解算法对其进行分解,达到3NF、BCNF或4NF。
  4. 关系模式的评价及修正。

(3)确定完整性约束。

根据规范化理论确定了关系模式之后,还要对关系模式加以约束,包括数据项的约束、表级约束及表间约束,可以参照SQL标准来确定不同的约束,如检查约束、主码约束和参照完整性约束,以保证数据的准确性。

(4)用户视图的确定。

确定了整个系统的关系模式之后,还要根据数据流图及用户信息建立视图模式,提高数据的安全性和独立性。

  1. 根据数据流图确定处理使用的流图。数据流图是某些业务的处理,使用了部分数据,这些数据可能要跨越不同的关系模式,建立该业务的视图,可以降低应用程序的复杂性,并提高数据的独立性。
  2. 根据用户类别确定不同用户使用的视图。不同的用户可以处理的数据可能只是整个系统的部分数据,而确定关系模式时并没有考虑这一因素,如学校的学生管理,不同的院系只能访问和处理自己的学生信息,这就需要建立针对不同院系的视图达到这一要求,这样就可以在一定程度上提高数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值