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

4.1.1 软件体系结构

软件体系结构又称软件架构,软件体系结构 = {构件,连接件,约束}。其中,构件(Component)是组成系统的具有一定独立功能的不同粒度的程序模块、独立程序或软件子系统,是组成软件的系统元素;连接件(Connector)将不同的构件连接起来,表示了构件间的相互作用,如信号量的传递、功能和方法的调用、数据传送和转换、构件间的同步等。构件可以是过程调用、管道、远程过程调用等;约束一般为对象连接时的规则,或指明了构件连接的条件。软件体系结构是一种可预制和可重构的软件框架结构。

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

软件体系结构有多种风格和类型,如分层体系结构、模型-视图-控制器(MVC)体系结构、客户/服务器体系结构等。其中,分层体系结构将软件系统设计并组织成构件的层次或集合,同一个层次上的构件完成一个特定目的,例如实现系统的用户界面或业务逻辑。分层体系结构是一类非常基础的软件体系结构。

4.1.2 软件设计过程

软件系统需求分析阶段获得的需求规范描述了软件系统在功能、性能、信息和行为等方面的特征。软件开发是按照软件需求规范的要求,由抽象到具体,逐步生成软件源代码的过程。软件开发由设计实现和测试三个环节组成,设计又包括概要设计和详细设计。

软件设计阶段将产生系统的总体结构设计(ArchiteturalDesign,或称体系结构设计)、系统的过程设计(Procedural Design)和系统的数据设计(Data Design)。 总体结构设计旨在确定组成软件系统的各主要部件及其相互间关系;过程设计完成对每部件的过程化描述;数据设计定义了为实现软件所需要的数据结构。

软件设计过程中应遵循的原则有:设计应与软件需求保持一致,设计的软件结构应支持模块化、信息隐藏、抽象与逐步求精等。

从工程管理的角度,软件设计可分为概要(Preliminary)设计和详细(Detail)设计两大步骤。

概要设计是根据需求确定软件和数据的总体框架,详细设计是将其进一步细化成软件的算法表示和数据结构。除总体结构设计、数据设计和过程设计外,还包括一个人机界面(用户界面)设计活动。

1.概要设计

概要设计的任务是建立软件系统的总体结构和模块间的关系,定义各功能模块的接口,设计全局数据库或数据结构,规定设计约束,制订测试计划。

概要设计应提供对每个功能模块的功能描述、全局数据定义和外部文件定义等。概要设计的要求是:良好的总体结构,功能模块间较低的耦合度和功能模块内较高的内聚度,并尽量降低模块接口复杂性。

可以采用层次结构图表示软件总体结构。结构图中的结点代表功能模块。结构图中的上层模块可用一个或若干个下层模块表示。概要设计应提供概要设计说明书、数据库或数据结构设计说明书、组装测试计划等文件。

2.详细设计

详细设计结果用详细设计说明书表示。

软件设计可以选用结构化设计方法(也称为面向数据流的设计方法)、面向对象设计方法或面向数据设计方法等,每种方法各有其特点和适用范围。软件设计人员可以根据实际情况选用合适的方法。本章所讲述的数据库应用系统功能设计的原理和方法主要建立在结构化软件设计方法基础上。

3.关于软件总体设计

根据软件工程所规定的软件开发步骤,软件设计的第一-步是软件概要设计。概要设计的目标是产生软件总体结构和软件功能模块。对于一些大型复杂软件系统,如分布式网络环境下的数据库应用系统,将概要设计分解成两个步骤:

(1)软件总体结构设计,也就是对软件需求进行分解。按照一定原则, 将其划分为若干个子系统;定义各个子系统应实现的功能和相互间的交互关系和通信机制。

(2)将每个子系统进一步划分为功能模块,定义各功能模块的数据结构、相互间交互关系。

一个大型复杂软件系统 ,可以形成一个系统-子系统-模块-子模块的层次结构。子系统、模块、子模块成为构成软件系统的系统元素。

可以将上述概要设计的第一步称为软件总体设计,第二步称为软件概要设计。整个软件设计过程由总体设计、概要设计和详细设计三个步骤组成。

软件总体设计人员侧重于系统-子系统层次,负责系统总体结构的设计;软件概要设计人员的关注点是子系统-模块-子模块层次,负责系统内各个子系统的概要设计。


4.2 DBAS 总体设计

4.2.1 DBAS 体系结构设计

确定 DBAS 体系结构是指将系统从功能、层次/结构、地理分布等角度进行分解,划分为多个子系统,定义各子系统应实现的功能;设计系统的全局控制,明确各子系统间的交互和接口关系。

如果从功能角度进行系统分解,需求分析得到的系统功能需求规范以及规划与分析阶段得到的任务陈述和任务目标是系统划分的重要依据。

将系统分解为多个子系统后,需要选择和设计合适的系统体系结构将这些子系统组织起来,并且设计子系统间的协调交互关系。DBAS 体系结构可以采用一些通用体系结构,也可以根据 DBAS 所属的特定应用领域,选择领域应用相关的系统体系结构。

着重介绍两种较为常见的 DBAS 体系结构。

1.客户/服务器体系结构

基于客户/服务器体系结构的数据库应用系统将 DBMS 数据管理功能与数据库应用相分离,将 DBMS 数据管理功能在客户端和服务器之间进行合理的分布和配置。其中,数据库服务器完成 DBMS 的核心功能。而客户端或应用服务器则负责完成用户交互功能,接收用户数据,根据业务规则处理应用任务,生成并向数据库服务器发出数据操作请求,然后从数据库服务器接收数据查询结果并通过客户端反馈给用户。C/S 结构的数据库应用系统可以有多个数据库服务器,数据库服务器、客户端和应用服务器相互协同工作,实现了对数据库服务器上的数据资源的共享。

图4.1描述了两层 C/S 结构的数据库应用系统,其特点为:

(1)DBAS 的数据管理和数据处理功能被分解并分布在客户端和数据库服务器上。客户端通过用户界面实现人机交互功能;数据库服务器则通过 DBMS,依据事务逻辑完成相应的数据管理功能。

(2)数据库服务器可以为多个客户端应用提供共享的数据管理功能,避免了为每一个新的应用单独开发对应的服务器端数据管理功能,提高了应用程序相对于数据库的独立性,也减少了应用程序的开发和维护代价。

(3)客户端应用可以通过网络访问多个不同数据源。

(4)客户端除了完成人机交互功能外,还需要完成面向应用的数据处理功能,负荷较重,属于典型的“胖客户端”。

2.浏览器/服务器结构

如图4.2所示。它将数据处理功能分解并分布在表示层功能层和数据层三个层次上,分别由 Web 浏览器、Web 应用服务器和数据库服务器来实现,其特点为:

(1)表示层位于客户端,由 Web 浏览器实现。客户端根据显示逻辑完成具体的数据表示和人机交互功能。客户端功能单一,一般只安装 Web 浏览器,没有其他用户应用程序,属于典型的“瘦客户端”。

(2)功能层位于 Web 应用服务器,实现面向具体应用领域的业务规则。应用服务器接收来自于 Web 浏览器的用户请求,根据应用领域业务规则执行相应的数据库应用程序,通过数据库访问接口向数据库服务器提出数据操作请求;接收来自于数据库服务器的数据访问结果,并通过客户端将结果返回给用户。

(3)数据层位于数据库服务器,通过 DBMS 完成具体的数据存储和数据存取等数据管理功能。数据库服务器接收应用服务器提出的数据操作请求,按照事务逻辑对数据库进行查询和修改,并将数据访问结果返回给应用服务器。

三层 B/S 结构将人机交互、应用业务逻辑处理和数据管理三类功能相互分离,提高了系统的可维护性。并且用户通过 Web 浏览器可以访问多个异构应用平台,解决了跨平台数据管理问题。

在适用 Internet、维护工作量等方面,B/S 比 C/S 要强得多;但在运行速度、数据安全、人机交互等方面,B/S 远不如 C/S。

4.2.2 DBAS 软件总体设计

DBAS 软件包括操作系统、数据库管理系统、开发环境、中间件和应用软件。应用软件分为数据库事务和应用程序。数据库事务通过对数据库的直接操作实现数据管理和数据处理功能;

应用程序一方面可以与数据库事务相互协调合作,对数据库中的应用数据进行进一步加工处理,或是从这些数据中抽取新的信息,以实现复杂的数据处理功能。另一方面还可以实现与数据库访问无关的功能,如通信功能人机交互功能。

应用软件总体设计首先从需求分析阶段得到的数据流图、事务规范和业务规则需求分析结果出发,将 DBAS 软件系统分解为一系列子系统;然后,进一步地进行子系统结构设计;最后,确定子系统、应用程序模块、数据库事务间的全局控制和调用关系,并按一定的软件体系结构框架组织起来。

应用软件总体设计得到的系统总体结构和分层模块结构可以用模块结构图表示。模块结构图主要关心模块的外部特性,即上下级模块、同级模块间的数据传递和调用关系,与模块内部处理流程无关。模块结构图由模块调用、数据控制和转接五种基本符号组成。

应用软件总体设计之后的设计工作分别是数据库事务和应用程序的概要设计和详细设计。

4.2.3 软硬件选型与配置设计

软硬件选型涉及的内容包括:

  • 网络及网络设备选型;
  • 数据存储设备及备份方案制定;
  • 应用服务器、Web 服务器选型;
  • 确定系统终端软件环境;
  • 确定软件平台及开发语言、工具;
  • 系统中间件及第三方软件选型。

在进行软硬件选型及配置设计时通常需要考虑以下因素:

  • 数据规模:数据规模包括数据量大小、数据增长速度等,其数值直接决定着存储设备选型;
  • 系统性能:如系统响应时间、并发访问需求、系统吞吐量实时性需求、峰值时系统响应速度等。系统性能需求对网络带宽、网络设备数据转发速率、服务器配置(如内存大小、CPU 运算速度)等会产生直接影响;
  • 安全可靠性:安全可靠性包括数据安全性、数据传输安全性、系统访问安全性、设备安全可靠性等,也是软硬件选型时需要考虑的重要因素;
  • 用户需求:用户的特性化需求也是影响软硬件选型的因素,这一需求通常是明确而具体的;
  • 项目预算情况:项目预算情况是影响软硬件选型的重要因素,对于设备和软件的选择应该在项目预算的范围内展开,有些时候满足各方面需求的最佳选型方案往往会超出预算范围,这时就需要综合各方面因素重新制定选型方案,必要时需要与用户方沟通适当降低系统需求。

4.2.4 业务规则初步设计

数据库应用软件的动态行为体现为各个系统元素相互间的组合、控制和信息传递,可表示成一系列实现系统功能的业务流程和运行控制。这种动态行为实现了应用领域特定的业务规则。

在需求分析阶段,通过应用领域业务规则需求分析,识别了系统中一些子系统应具有的业务类型和功能,明确了用户或外部系统与 DBAS 的交互模式。总体设计阶段需要在此基础上对一些重要业务规则或系统业务做出初步规定和设计细化业务处理流程,分析所处理的业务数据和处理方式,并对其中一些关键技术方案或算法做出选择或初步设计。


4.3 DBAS 功能概要设计

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

从功能角度 DBAS 系统通常可以划分为四个层次实现:

  • 表示层:负责所有与用户交互的功能,用户对数据库应用系统的最直观感受均在这层实现。
  • 业务逻辑层:负责根据业务逻辑需要将表示层获取的数据进行组织后,传递给数据访问层,或将数据访问层获取的数据进行相应的加工处理后,传送给表示层用于展示。业务逻辑层概要设计包括:结构、行为、数据接口、故障处理、安全设计、系统维护与保障等方面的内容。
  • 数据访问层:负责与 DBMS 系统进行交互,提取或存入应用系统所需的数据。
  • 数据持久层:负责保存和管理应用系统数据。

4.3.1表示层 概要设计

表示层概要设计的主要任务是进行人机界面设计。人机界面(也称为用户界面,人机交互界面)是数据库应用系统的一个重要组成部分。并无统一的界面设计方法,但应遵守以下设计原则:

(1)用户应当感觉系统的运行始终在自己的控制之下,即便当系统程序取得对系统的控制权时,人机界面也应向用户提供视觉和听觉上的反馈,保持用户与人机界面间的双向交流。

(2)当系统发生错误或程序运行时间较长时,用户界面应该为用户提供有意义的反馈信息,并有上下文感知的帮助功能。

(3)一个好的用户界面应该容忍用户在使用过程中发生的各种操作错误,并且能够方便地从错误中恢复过来,保证系统运行不受或尽可能小地受到用户错误操作的影响。

(4)用户界面应该遵循一定标准和常规。保持同一种风格和形式。

(5)用户界面应采取灵活多样的数据输人方式,尽量减少用户的输人负担;提供字符、图形、图像、声音等多种形式的数据输出方式。

(6)如果使用 Web 界面,设计要求具有简洁性,避免使用过于复杂的图形和动画等;界面布局还应当清晰地表示各类信息,并具有与之匹配的导航性;Web 界面的设计应当保持界面的一致性,例如保持一致的位置、始终使用一致的配色方案等;在 Web 界面设计时,需要注意界面美观和交互性能的折中平衡,因为太大、太复杂的图形图像界面会带来过大的系统开销,也影响交互的及时性。

4.3.2业务逻辑层概要设计

业务逻辑概要设计的主要任务是梳理 DBAS 的各项业务活动,将其表示为各种系统构件(如类、模块、组件等)。业务逻辑层是 DBAS 的重要组成部分,它承载了数据访问层与用户界面层的桥梁作用,DBAS 的核心业务逻辑均在本层予以实现。

在业务逻辑层概要设计阶段,设计人员需要将数据库应用软件划分为一系列程序模块,每个模块实现一个具体的功能。程序模块与软件功能不是一一对应的,一个功能可以由多个模块来实现。一些被抽象出来的公共模块,也可以被多个子系统中实现不同功能的程序模块调用。

业务逻辑层概要设计将包括:结构、行为、数据、接口、故障处理、安全设计、系统维护与保障等方面的内容。

对业务逻辑层进行模块划分通常需要考虑高内聚与松耦合原则,这一原则在设计过程中体现在以下方面:

(1)构件本身应由相关性很强的代码组成,一个构件或一个模块只负责完成一项任务,也就是常说的单一责任原则。

(2)组成系统业务逻辑层的各个构件均应具有独立的功能,并且最大限度地减少与其他构件功能重叠。

(3)构件之间的接口应尽量简单明确。

(4)如果某两个构件间的关系比较复杂的话,应考虑进一步进行模块划分。

(5)如果构件过于复杂,可以考虑将其细分。

总之,高内聚与松耦合原则的根本目的就是在保持软件内在联系的前提下,分解软件系统,降低软件系统开发的复杂性。目前业界存在着各种各样的分解方法,比如:关注点分离,面向方面,面向对象,面向接口,面向服务,依赖注人,以及各种各样的设计原则等。高内聚和松耦合是相互矛盾的。

4.3.3 数据访问层概要设计

数据访问层概要设计的主要任务就是针对 DBAS 的数据处理需求设计用于操作数据库的各类事务。

事务是数据库系统中的一个逻辑数据处理单元,其中包含了一系列数据操作的集合。

事务的设计可以分解为概要设计和详细设计两个步骤。事务概要设计的核心是辨识和设计事务自身的事务处理逻辑,它注重事务本身的数据处理流程,暂时先不考虑事务中与 DBMS 平台相关、具体的数据操作方法和事务实现机制,以提高设计结果的适用性。

如果把数据处理需求分析的结果表示为数据流图,则可以将待设计的事务看作是程序,采用软件工程中面向数据流的程序设计方法(也就是通常所说的结构设计方法,SD 方法),设计事务内部的数据处理流程和结构,也就是设计事务处理逻辑。整个设计过程包括:

(1)从数据流图中识别出该事务对应的子数据流图。

(2)确定子数据流图中的信息流类型,划定流界。

(3)将子数据流图映射为事务的结构和处理流程,即事务处理逻辑(或事务业务规则)。

(4)修正和细化事务设计,识别事务所访问的数据库对象和数据库用户。

(5)确认事务概要设计与数据库设计。

一个完整的事务概要设计包括了以下几方面信息:事务名称、事务所访问的关系表及关系属性、事务处理逻辑、事务用户(指使用、启动、 调用该事务的软件模块或系统)。

read(X) 操作表示将数据库磁盘文件中的数据项X读入内存缓冲区,write(X) 操作表示将内存缓冲区中数据项X的当前值写入数据库磁盘文件。事务对数据的操作,如查询、插人、删除、修改等,可以用这两个元操作来抽象表示。

对关系表的查询操作 Select,事务可以先用 read(X) 将关系表中的记录读入内存缓冲区,然后检查该记录是否满足查询条件。如果满足,则从记录中提取所需要的查询属性信息;否则继续按照一定文件存取策略读取关系表中的其他记录。

对关系表的插人操作 Insert,事务可先在内存缓冲区中准备好需要插入的新记录 X,然后用 write(X) 将新数据x加入到关系表文件中。

根据事物概要设计的结果,检查关系表对数据库事务的支持性。具体步骤为:

(1)对每一个事务,根据需求分析阶段的事务分析,列出该事务所访问的各个数据项。

(2)列出事务访问的数据项所在的关系表和对应的关系属性。

(3)如果事务访问的数据项同时出现在多个表中,检查这些关系表间的关联关系,如主码/外码关联。

(4)检查是否存在某些事务,这些事务所访问的些数据项未出现在任何关系表中。对这些事务,需要重新修改数据库的概念模型或逻辑结构,或者重新设计事务,以保证DB能够支持所有的数据库事务。


4.4 DBAS 功能详细设计

4.4.1 表示层详细设计

人机界面设计最好采用原型迭代法(参见图4.6)。

原型迭代法由如下几个步骤组成:

1.初步设计

从用户人机交互需求出发,设计人机交互命令系统,并对其进行优化。命令系统是用户与系统交互的基础。命令系统优化首先应考虑命令的执行顺序,将常用命令安排在前面,并尽可能地使命令顺序与用户使用习惯保持一致;然后,将全部交互命令按照一定的原则组织起来。

2.用户界面细节设计

在命令树基础上,设计命令系统的具体实现方式,命令系统实现可以采用命令行、菜单、按钮、Web 界面等多种方式,并注意考虑界面的组织形式、风格、色彩操作方式等实现细节。

3.原型设计与改进

在上述设计结果基础上,首先构造一个人机界面原型系统。利用原型系统,可以为用户演示人机交互效果,让用户直观感受系统的使用方法并评判用户界面功能是否齐全、是否方便易用;然后,根据用户评审反馈意见修改原型系统。通过这种反复迭代过程,不断完善用户界面,直至符合用户预期要求。

在上述设计步骤中,用户界面的初步设计可安排在 DBAS 总体设计阶段,界面细节设计安排在 DBAS 概要设计阶段,而界面原型设计与改进则属于 DBAS 详细设计阶段的工作内容。

4.4.2 业务逻辑层详细设计

业务逻辑层详细设计的任务是根据概要设计中定义的各程序模块功能和输人输出数据需求,结合具体的程序设计环境和机制,对概要设计的细化。可以通过UML的类图、活动图、协作图来描述DBAS对用户业务的详细实现逻辑。


4.5 应用系统安全架构设计

4.5.1 数据安全设计

数据安全涉及的范围很广,从数据存储安全角度出发,主要有以下五个方面:

  • 安全性保护:即防止非法用户对数据库的非法使用,以避免数据的泄露、篡改或破坏。
  • 完整性保护:即保证数据源的正确性和一致性。
  • 并发控制:即保证多个用户能共享数据库,并维护数据的一”致性。
  • 数据库的备份与恢复:即在系统失效后的数据库恢复,配合定时备份数据库、使数据库不丢失数据。
  • 数据加密传输:即将一些高密级的敏感数据通过一定的加密算法加密后传输。

1.数据库的安全性保护

主要的保护方式有:

(1)用户身份鉴别。

(2)权限控制。

(3)视图机制。可通过视图机制把要保密的数据对无权查看这些数据的用户隐藏起来。

2.数据库的完整性保护

数据库的完整性是指数据库中数据的正确性、一致性和相容性。保证数据库中数据的完整性的方法之一是设置完整性检查,即对数据库中的数据设置一些约束条件。

完整性约束条件的作用对象分为列元组和关系三种级别,其中对列的约束主要指对其值类型、范围、精度、排序等的约束条件。对元组的约束主要指对记录中各个属性之间的联系的约束条件。对关系的约束是指对若干记录间、关系集合上以及关系之间联系的约束条件。在一个数据库管理系统中,完整性约束功能一般包括完整性约束条件设置和检查两部分。

3.数据库的并发控制

在数据库系统运行过程中,如果数据库管理系统可以同时接纳多个事务,事务可以在时间上重叠执行,则称这种执行方式为并发访问(Concurrent Access)。实现数据库并发控制的方法常用的是封锁技术。所谓封锁即是在某一时间内禁止某用户对数据对象做某些操作以避免产生数据不一致的问题。基本的封锁一般有排它锁(x 锁)和共享锁(s 锁)两种类型。

为了避免死锁,考虑以下原则:

(1)按同一顺序访问资源。例如,如果两个并发事务均需要访问A表和B表,那么我们规定必须以先访问 A 后访问 B 的顺序进行资源访问。这样如果一个事务已经获得 A 表访问权并将 A 表锁上,然后等待获取 B 表的访问权,那么在这个事务完成之前,另一个事务被阻塞在A表上。第一个事务提交或回滚后,第二个事务得以继续进行,从而有效避免死锁。

(2)避免事务中的用户交互。

(3)采用小事务模式,尽量缩短事务的长度,减少占有锁的时间。

(4)尽量使用记录级别的锁(行锁),少用表级别的锁。

(5)使用绑定连接,使同应用程序所打开的两个或多个连接可以相互合作。次级连接所获得的任何锁可以像由主连接获得的锁那样持有,反之亦然,因此不会相互阻塞。

4.数据库的备份与恢复

数据库恢复的基本原理就是数据库中任何一部分数据可以利用存储在系统其他存储器上的冗余数据来重建。数据库恢复首先要建立冗余数据(即进行数据备份),然后利用这些冗余数据实施恢复。

针对数据的不同可靠性级别要求,数据备份与恢复策略可有不同的解决方案:

(1)双机热备。双机热备指基于 Active/Standby 方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过双机软件的诊测(一般是通过心跳诊断或检测)将处于 Standby 方式的机器激活,保证应用在短时间内完全恢复正常使用。

(2)数据转储。数据转储(也称为数据备份),通常由系统管理员定期将应用系统的数据备份并拷贝到磁带、光盘或其他永久性记录介质上去,当系统发生故障时,使用最近备份的数据文件对数据进行恢复。

(3)数据加密存储。数据加密存储是针对高敏感数据安全保护的一种有效方案,目前主流数据库管理系统(如Oracle、SQL Server等)均带有相关的数据加密功能,可以直接使用这些工具实现对高敏感数据的加密、存储、读取和管理。

5.数据加密传输

常用的数据加密传输手段有:

  • 数字安全证书。
  • 对称密钥加密。
  • 数字签名。
  • 数字信封。

4.5.2 环境安全设计

1.漏洞与补丁

2.计算机病毒防护

目前主要的病毒防护手段有:

(1)安装杀毒软件,定期查杀病毒。

(2)计算机实时监控。

3.网络环境安全

(1)防火墙。防火墙作为一个分离器、限制器和分析器。

(2)入侵检测系统。入侵检测系统(简称 IDS)是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。

(3)网络隔离。网络隔离技术分为物理隔离和逻辑隔离两类。物理隔离指将待隔离的两个网络完全彻底地进行隔离,不存在任何可能的通路。逻辑隔离则是指通过一定的技术和硬件设备,将局部网络从外部网络中隔离出来,控制内外部数据的流动。

4. 物理环境安全

设立专门的空间用于放置服务器、存储设备、网络设备等硬件设备,好处是可以对设备进行集中控制和管理。如设置防火防盗报警设施、加装防盗门窗、安全温度湿度控制设备及温度湿度报警装置等。

当外部电力中断时,可采用UPS(Unterupible Power System)来解决设备用电安全方面的问题。UPS 也被称为不间断电源,是能够提供持续、稳定、不间断的电源供应的重要外部设备。

4.5.3 制度安全设计

管理层面安全措施指利用行政管理、法制保证和其他物理措施等防止安全事故的发生,如安全组织管理体系、高效能的职责分工及明确的行政管理安全机构、完善的信息安全标准和评估体系、明确的具有高度可操作性的安全规范和制度等。

对于 DBAS 设计人员需要做的工作是:

(1)详细了解系统最终用户对安全性的要求,梳理出需要从管理层进行安全控制的需求。

(2)认真与最终用户沟通,了解用户组织现状和制度现状,给出 DBAS 管理层安全策略的建议。

(3)耐心与最终用户交流,取得用户的信任和支持,保障相关制度能顺利执行。


4.6 DBAS 实施

4.6.1 创建数据库

创建数据库时需要考虑以下因素:

(1)初始空间大小。数据库初始空间是创建数据库时的基本参数,在数据库创建初期设定。通常数据库初始空间大小需要满足 DBAS 系统3~5年的数据存储需求。

(2)数据库增量大小。当数据库初始空间被占满时,数据库管理系统会根据用户设置的数据库增量值分配相应大小的空间给数据库使用。

(3)访问性能。访问性能也是创建数据库时需要考虑的问题, 如数据库访问的并发量,数据表访问的频度等。

4.6.2 数据装载

组织数据入库是数据库实施阶段主要的工作。

具体步骤如下:

(1)筛选数据。

(2)转换数据格式。

(3)输人数据。

(4)校验数据。

4.6.3 编写与调试应用程序

应用程序的编写与调试通常是同步进行的。

4.6.4 数据库系统试运行

试运行的主要目的是对数据库系统的功能和性能进行进一步测试,找出其中的不足,加以完善与改进。

数据库应用系统的实施主要包括四个步骤,其操作流程图如图4.7所示。


章末测试

一、选择题

1.下列关于浏览器/服务器架构中的应用服务器的说法中,错误的是_________。

A.应用服务器般运行程序代码,实现面向应用领域的业务规则

B.应用服务器会根据用户请求连接相应的数据库,获取数据,并将结果返回给用户

C.应用服务器一般需要具有数据访问和数据存储功能

D.应用服务器一般提供了集群、负载均衡等公共服务,可以大幅度提高系统性能和可靠性

2.下列属于商场经营管理系统数据库功能需求的是_________。

A.系统中不考虑财务核算

B.对基本销售业务要求实现秒级响应

C.多个终端同时操作数据库

D.系统需支持节假日折扣

3.下列不属于数据库安全设计内容的是_________。

A.防止非法用户对数据库的非法使用

B.保证数据的正确性和一致性

C.保证多个用户能共享数据库,并维护数据的一致性

D.安装杀毒软件,防止数据受病毒侵害

4.下列不属于数据库功能详细设计中表示层详细设计的是_________。

A.原型设计与改进

B.用户界面初步设计

C.用户界面详细设计

D.细化功能概要设计阶段设计的事务

二、填空题

1.数据库总体设计的主要内容包括______、______、______和______。

2.从功能角度,DBAS系统通常可以划分为四个层次实现,分别是______、______、______和______。

3. DBAS功能概要设计的目标是产生______和______。

4. DBAS功能概要设计中的表示层概要设计的主要任务是进行______设计。

5.数据库系统试运行的主要目的是对数据库系统的______和______进行进一步测试。

答案:

一、

1.C 2.C 3.D 4.D

二、

1.体系结构设计 软件总体设计 软硬件选型与配置设计 业务规则初步设计

2.表示层 业务逻辑层 数据访问层 数据持久层

3.软件总体结构 软件功能模块

4.人机模块

5.功能 性能


内容补充

1、两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁:①在对任何数据进行读、写操作之前,要申请并获得对该数据的封锁;②在释放一个封锁之后,事务不再申请和获得其它任何封锁。可以证明,若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。

2、要注意两段锁协议和防止死锁的一次封锁法的异同之处。一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议。但两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。加锁阶段事务可以申请获得任何数据项上的任何类型的锁,但是不允许释放任何锁。

计算机三级数据库技术 第4章 数据库应用系统功能设计与实施相关推荐

  1. 计算机三级数据库技术 第6章 数据库及数据库对象

    6.1 创建及维护数据库 6.1.1 SQL Server数据库概述 SQL Server的发展史: SQL Server 7.0 ( 1999年,正式跻身企业数据库行列 SQL Server 200 ...

  2. MySQL数据库技术 第二版 章末 答案—单元5---思考5

    MySQL数据库技术 第二版 章末 答案-单元5 以下是我个人所尝试过得答案,若有不正确的地方请告知,谢谢!由于实在是太多内容了,原谅我省略题目内容 单元5 数据查询 ---- 思考5---- P10 ...

  3. MySQL数据库技术 第二版 章末 答案—单元8

    MySQL数据库技术 第二版 章末 答案-单元8 以下是我个人所尝试过得答案,若有不正确的地方请告知,谢谢!由于实在是太多内容了,原谅我省略题目内容 单元8 数据库编程 ---- P166-P168 ...

  4. MySQL数据库技术 第二版 章末 答案—单元5 ----实训5

    MySQL数据库技术 第二版 章末 答案-单元5 以下是我个人所尝试过得答案,若有不正确的地方请告知,谢谢! 由于实在是太多内容了,原谅我省略题目内容 单元5 数据查询 ---- 实训5----P10 ...

  5. 计算机三级网络技术小技巧,计算机三级PC技术过关心得技巧

    导语:如果你是在校大学生,那我推荐如考3级还是网络比较好,下面就由小编为大家带来计算机三级PC技术过关心得技巧,希望对大家有所帮助! 如果你是在校大学生,那我推荐如考3级还是网络比较好,一是:3级网络 ...

  6. 第四章 数据库应用系统功能设计与实施

    第四章 数据库应用系统功能设计与实施 软件体系结构 构件:组成系统的具有一定独立功能的不同粒度的程序模块.独立程序或软件子系统. 连接件:表示构件间的相互作用. 约束:对象连接时的规则. 软件设计过程 ...

  7. 个位数不含4用计算机表示,计算机三级PC技术章节习题

    计算机三级PC技术章节习题 为了巩固大家计算机三级的知识基础,百分网小编汇总了计算机三级PC技术章节习题,仅供大家学习.更多精彩内容请关注应届毕业生考试网. 第1章 计算机应用的基础知识 1.2 二进 ...

  8. 从mysql数据库中读取二进制文件_数据库技术之在MYSQL数据库中如何存取二进制文件...

    [数据库技术之在MYSQL数据库中如何存取二进制文件]在MySQL数据库中,不可以存放文字信息,还可以存放图片.声音.文件等二进制信息.那么在MYSQL数据库中中如何存取二进制文件?下面,武汉宏鹏鲁广 ...

  9. 计算机软件三级试题,最新计算机三级软件测试技术试题及答案

    最新计算机三级软件测试技术试题及答案 在备考计算机三级之余,大家要多做练习题,这样才能加深对记忆知识点的掌握,以下是百分网小编搜索整理的一份最新计算机三级软件测试技术试题及答案,供参考练习,预祝考生们 ...

最新文章

  1. Cosmos的基石:IL2CPU编译器--.net/C#开源操作系统学习系列三
  2. loj #6235. 区间素数个数
  3. jQuery 的CSS选择器 中 使用变量的方法
  4. kafka日志格式和分区
  5. ASP.NET中操作SQL数据库
  6. 开局崩盘!IDEA 2020 无法启动的解决办法|赠送 IDEA 2020 新功能
  7. 快速排序C++方法(3种)
  8. java 装配_spring Java显示装配
  9. 使用Shell工具连接虚拟机
  10. MongoDB可视化工具mongochef
  11. Django中select_related的作用和用法
  12. patreon cg人物插画作品合集分享
  13. CDC Schemes
  14. 全网通拓扑图之聚合链路
  15. [work] 一阶 二阶马尔可夫
  16. 微信小程序的开发方式有哪些
  17. 锂电快充方案:TypeC-PD/QC诱骗芯片的常用型号,升降压(充电)芯片选型
  18. 浅谈伺服电机三种控制方式
  19. 我们所看到的迎宾机器人,真的好用吗?
  20. h61 nvme硬盘_一盒在手,说走就走-ORICO M.2双盘位移动硬盘盒评测

热门文章

  1. python 读excel每行替换_Python脚本操作Excel实现批量替换功能
  2. 云计算入门:FusionAccess桌面云解决方案
  3. 2023MathorCup数学建模比赛的思路汇总帖
  4. UI设计中的交互设计原则有哪些?
  5. 硬盘数据恢复软件哪个好
  6. Word Embedding的通俗解释
  7. android 焦点乱跳,AndroidTV开发5——解决Recyclerview快速移动时焦点错乱问题
  8. 【Origin9.0教程】01-如何导入数据和画图
  9. java制作透明窗体(类似PS欢迎界面 )
  10. Python函数参数前面一个星号(*)和两个星号(**)的含义