四级数据库_07_系统设计

第七章 数据库应用系统功能设计

四级数据库 返回到 『四级数据库』

7.1 软件体系结构与设计过程

7.1.1 软体体系结构

  • 软件体系结构又称软件架构,软件体系结构={构件,连接件,约束}。
  • 构件是组成系统的具有一定独立功能的不同粒度的程序模块、独立程序或软件子系统,是组成软件的系统元素;
  • 连接件将不同的构件连接起来,表示了构件间的相互作用;
  • 约束一般是对象连接时的规则,或指明了构件连接的条件。

  • 软件体系结构描述了软件系统的总体组织和层次结构、系统元素及其功能分配、全局控制、系统元素间的协调和交互、数据存取等;


7.1.2 软件设计过程

  • 概要设计
    • 定义:是建立软件系统的总体结构和模块间的关系,定义各功能模块的接口,设计全局数据库、规定设计约束、制定组装测试计划;
    • 一个好的概要设计要求是:良好的总体结构、功能模块间较低的耦合度和较高的内聚度,并尽量降低模块接口的复杂性;
    • 可以采用层次结构图表示软件总体结构,图中节点代表功能模块

  • 详细设计

    • 是细化概要设计产生的功能模块,形成可编程的程序模块,并用某种过程设计语言设计程序模块的内部细节,为编写软件代码提供依据。
    • 可选用结构化设计方法、面向对象设计方法等;

  • 关于软件总体设计

    • 一些大的DBAS可根据逐步抽象层次化原则,将概要设计分解成两个步骤:
      • 首先是软件总体结构设计,即对软件需求进行分解;
      • 第二步是将每个子系统进一步划分为功能模块,定义各模块的数据结构、相互间交互关系;

7.2 DBAS总体设计

7.2.1 系统总体设计

任务:是根据系统规划与分析结果,特别是技术可行性分析,以及系统需求规范,确定系统总体框架,作为后续设计活动的基础。


  • 确定DBAS体系结构

    • 指将系统从功能、层次结构、地理分布等角度进行分解,划分为多个子系统。定义各子系统应实现的功能,设计全局控制,明确各子系统间的交互和接口关系;
    • 可以从功能角度进行分解,也可以根据DBAS自身固有的层次结构特征进行分解;
    • 将系统分解为多个子系统后,需选择和设计合适的系统体系结构,将这些子系统组织起来,并设计它们之间的交互关系;
    • DBAS体系结构可采用一些通用体系结构,也可根据DBAS所属的特定应用领域相关的体系结构。

2、软硬件造型和配置设计

  • 总体设计阶段需要对系统的软硬件平台、存储设备、操作系统、数据库管理系统等作出合理的选择,并进行初步配置设计;
  • 还需要选择系统开发采用的合适的中间件和开发工具,确定开发模式和开发语言;

3、应用软件总体设计

   根据系统体系结构,确定相应的软件系统模块划分、功能分配,选择合适的软件体系结构;

4、业务规划初步设计


7.2.2 软件总体设计

  • DBAS软件包括OS、DBMS、开发环境、中间件和应用软件;
  • 应用软件分为数据库事务应用程序
  • 数据库事务通过对数据库的直接操作  实现数据管理和处理功能;
  • 应用程序一方面对数据库进一步加工处理,或从中抽取新信息实现复杂的数据处理功能;另一方面还可实现与数据库访问无关的功能;

  • 应用软件总体设计:

    • 从数据流图、事务规范和业务规则需求分析结果出发,将系统分解为一系列子系统,分配相应功能,定义系统间协调交互机制;
    • 进一步进行子系统结构设计,将各子系统从功能上划分为:数据库事务模块应用程序模块
    • 确定子系统、应用程序模块、数据库事务间的全局控制和调用关系,并按体系结构框架组织起来。

6、总体设计得到的系统总体结构分层模块结构,可以用模块结构图表示;

  • 模块结构图,是结构化程序设计中描述系统结构的一种图形化工具,它定义了模块的名字、功能接口,并在模块结构图中反映出结构化设计思想。
  • 它只关心模块的外部特性,与模块内部流程无关,它由模块、调用、数据、控制转接等于种基本符号组成;

7.2.3 客户/服务器体系结构

  • 基于C/S体系结构的DBAS将DBMS数据管理功能与数据库应用相分离,将DBMS数据库管理功能在客户端和服务器之间进行合理的分布和配置;
  • 数据库服务器完成DBMS的核心功能,
  • 而客户端负责完成用户交互功能,接收用户数据,生成并向数据库报务器发出数据操作请求,接收数据查询结果并通过客户端反馈给用户;

  • 两层C/S结构的特点是:

    • DBAS的数据管理和处理功能,被分解并分布在客户端和服务器上;
    • 服务器能为多个客户端应用提供共享的数据管理功能;
    • 客户端应用可通过网络访问多个不同数据源;
    • 客户端除了完成人机交互功能外,还需要完成面向应用的数据处理功能,负荷重,属于典型的“胖客户端”;

  • 三层浏览器/服务器(B/S)结构是一种互联网环境下的新型数据库应用系统结构,它将数据处理功能分解并分布在表示层、功能层和数据层三层次上

  • 分别由WEB浏览器、WEB服务器和数据库服务器来实现,其特点是:
    • 表示层位于客户端,由WEB浏览器实现,其功能单一,没有其他应用程序,属于典型的“瘦客户端”;
    • 功能层位于WEB服务器,实现面向具体应用领域的业务规则;
    • 数据层位于数据库服务器,通过DBMS完成具体的数据存储和存取等数据管理功能;

7.3 概要设计

前言:

DBMS逻辑设计包括:DB逻辑结构设计(前面已涉及)和DBAS概要设计(事务概要应用程序概要)。

事务概要注重事务本身的处理流程;

事务详细则具体考虑DBMS相容性。


7.3.1 数据库事务概要设计

  • 如果 数据处理需求分析的结果是数据流图,则可将待设计的事务看作是程序,采用软件工程中面向数据流的程序设计方法,设计事务内部的数据处理流程和结构,也就是设计事务处理逻辑,过程包括:
    • 数据流图中识别出该事务对应的子数据流图
    • 确定子数据流图中的信息流类型,划定流界
    • 子数据流图  映射为  事务的结构  和  处理流程,即事务逻辑;(事务的业务规则)
    • 修正和细化事务设计,识别事务所访问的数据库对象和数据库用户;

  • 如果数据处理需求分析的结果表示为事务规范,由于事务规范包括了事务名称、事务描述、访问的数据项、用户等信息,可直接从事务描述出发,根据具体应用领域的知识设计事务逻辑,得到事务概要结果;


  • 一个完整的事务概要设计包括:事务名称、访问的关系表属性、事务处理逻辑(read、write两个元操作,与DBMS无关)、事务用户


  • 检查关系表对数据库事务的支持性:

    • 对每一个事务,根据需求分析阶段事务分析,列出该事务所访问的各个数据项
    • 列出事务访问的数据项所在的关系表和对应的属性
    • 如事务访问的数据项同时出现在多个表中,检查关联关系
    • 检查是否存在某些事务,访问的一些数据项未出现在任何关系表中;

7.3.2 应用软件概要设计

  • 应用软件概要设计,按照逐步求精、模块化、信息隐藏功能细化原则,
  • 根据DBAS需求分析阶段得到的系统功能和业务规则描述,
  • 在总体设计结构基础上,将DBAS应用软件进一步细化为模块/子模块,
  • 组成软件的系统-子系统-模块-子模块层次结构,并对这些系统元素从结构、行为数据三方面进行设计;

7.4 详细设计

7.4.1 数据库事务详细设计

  • 事务详细设计,是从事务概要设计得到的事务流程出发,在DBMS平台下,采用事务实现机制,和高级程序设计语言,利用SQL语句 和 数据库访问接口,在DBMS平台和开发环境下,进一步细化事务设计,设计具体的实现模式;

7.4.2 应用软件详细设计

1、根据概要设计中定义的各程序模块功能和输入输出数据需求,结合具体的设计环境和机制,设计各模块的内部处理流程和算法、数据结构、对外接口等;


7.5 人机界面设计

  • 人机界面设计原则:
    • 用户应当感觉系统的运行始终在自己的控制之下,保持用户与人机界面间的双向交流
    • 当系统发生错误或程序运行时间较长时,用户界面应该为用户提供有意义的反馈信息;
    • 应该忍受用户在使用过程中发生的各种操作错误,并能够方便地恢复过来,保证系统不受或少受影响;
    • 应该遵循一定的标准和常规;
    • 采取灵活多样的数据输入方式,尽量减少用户数据输入负担;

  • 人机界面设计最好采用原形迭代法:

    • 初步设计
    • 用户界面细节设计;

原形设计与改进;