软件体系结构又称软件架构,软件体系结构 = {构件,连接件,约束}。其中,构件(Component)是组成系统的具有一定独立功能的不同粒度的程序模块、独立程序或软件子系统,是组成软件的系统元素;连接件(Connector)将不同的构件连接起来,表示了构件间的相互作用,如信号量的传递、功能和方法的调用、数据传送和转换、构件间的同步等。构件可以是过程调用、管道、远程过程调用等;约束一般为对象连接时的规则,或指明了构件连接的条件。软件体系结构是一种可预制和可重构的软件框架结构。
软件体系结构描述了软件系统的总体组织和层次划分、系统元素及其功能分配、全局控制、系统元素间的协调和交互、数据存取等。
软件体系结构有多种风格和类型,如分层体系结构、模型-视图-控制器(MVC)体系结构、客户/服务器体系结构等。其中,分层体系结构将软件系统设计并组织成构件的层次或集合,同一个层次上的构件完成一个特定目的,例如实现系统的用户界面或业务逻辑。分层体系结构是一类非常基础的软件体系结构。
软件系统需求分析阶段获得的需求规范描述了软件系统在功能、性能、信息和行为等方面的特征。软件开发是按照软件需求规范的要求,由抽象到具体,逐步生成软件源代码的过程。软件开发由设计实现和测试三个环节组成,设计又包括概要设计和详细设计。
软件设计阶段将产生系统的总体结构设计(ArchiteturalDesign,或称体系结构设计)、系统的过程设计(Procedural Design)和系统的数据设计(Data Design)。 总体结构设计旨在确定组成软件系统的各主要部件及其相互间关系;过程设计完成对每部件的过程化描述;数据设计定义了为实现软件所需要的数据结构。
软件设计过程中应遵循的原则有:设计应与软件需求保持一致,设计的软件结构应支持模块化、信息隐藏、抽象与逐步求精等。
从工程管理的角度,软件设计可分为概要(Preliminary)设计和详细(Detail)设计两大步骤。
概要设计是根据需求确定软件和数据的总体框架,详细设计是将其进一步细化成软件的算法表示和数据结构。除总体结构设计、数据设计和过程设计外,还包括一个人机界面(用户界面)设计活动。
1.概要设计
概要设计的任务是建立软件系统的总体结构和模块间的关系,定义各功能模块的接口,设计全局数据库或数据结构,规定设计约束,制订测试计划。
概要设计应提供对每个功能模块的功能描述、全局数据定义和外部文件定义等。概要设计的要求是:良好的总体结构,功能模块间较低的耦合度和功能模块内较高的内聚度,并尽量降低模块接口复杂性。
可以采用层次结构图表示软件总体结构。结构图中的结点代表功能模块。结构图中的上层模块可用一个或若干个下层模块表示。概要设计应提供概要设计说明书、数据库或数据结构设计说明书、组装测试计划等文件。
2.详细设计
详细设计结果用详细设计说明书表示。
软件设计可以选用结构化设计方法(也称为面向数据流的设计方法)、面向对象设计方法或面向数据设计方法等,每种方法各有其特点和适用范围。软件设计人员可以根据实际情况选用合适的方法。本章所讲述的数据库应用系统功能设计的原理和方法主要建立在结构化软件设计方法基础上。
3.关于软件总体设计
根据软件工程所规定的软件开发步骤,软件设计的第一-步是软件概要设计。概要设计的目标是产生软件总体结构和软件功能模块。对于一些大型复杂软件系统,如分布式网络环境下的数据库应用系统,将概要设计分解成两个步骤:
(1)软件总体结构设计,也就是对软件需求进行分解。按照一定原则, 将其划分为若干个子系统;定义各个子系统应实现的功能和相互间的交互关系和通信机制。
(2)将每个子系统进一步划分为功能模块,定义各功能模块的数据结构、相互间交互关系。
一个大型复杂软件系统 ,可以形成一个系统-子系统-模块-子模块的层次结构。子系统、模块、子模块成为构成软件系统的系统元素。
可以将上述概要设计的第一步称为软件总体设计,第二步称为软件概要设计。整个软件设计过程由总体设计、概要设计和详细设计三个步骤组成。
软件总体设计人员侧重于系统-子系统层次,负责系统总体结构的设计;软件概要设计人员的关注点是子系统-模块-子模块层次,负责系统内各个子系统的概要设计。
确定 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。
DBAS 软件包括操作系统、数据库管理系统、开发环境、中间件和应用软件。应用软件分为数据库事务和应用程序。数据库事务通过对数据库的直接操作实现数据管理和数据处理功能;
应用程序一方面可以与数据库事务相互协调合作,对数据库中的应用数据进行进一步加工处理,或是从这些数据中抽取新的信息,以实现复杂的数据处理功能。另一方面还可以实现与数据库访问无关的功能,如通信功能人机交互功能。
应用软件总体设计首先从需求分析阶段得到的数据流图、事务规范和业务规则需求分析结果出发,将 DBAS 软件系统分解为一系列子系统;然后,进一步地进行子系统结构设计;最后,确定子系统、应用程序模块、数据库事务间的全局控制和调用关系,并按一定的软件体系结构框架组织起来。
应用软件总体设计得到的系统总体结构和分层模块结构可以用模块结构图表示。模块结构图主要关心模块的外部特性,即上下级模块、同级模块间的数据传递和调用关系,与模块内部处理流程无关。模块结构图由模块调用、数据控制和转接五种基本符号组成。
应用软件总体设计之后的设计工作分别是数据库事务和应用程序的概要设计和详细设计。
软硬件选型涉及的内容包括:
在进行软硬件选型及配置设计时通常需要考虑以下因素:
数据库应用软件的动态行为体现为各个系统元素相互间的组合、控制和信息传递,可表示成一系列实现系统功能的业务流程和运行控制。这种动态行为实现了应用领域特定的业务规则。
在需求分析阶段,通过应用领域业务规则需求分析,识别了系统中一些子系统应具有的业务类型和功能,明确了用户或外部系统与 DBAS 的交互模式。总体设计阶段需要在此基础上对一些重要业务规则或系统业务做出初步规定和设计细化业务处理流程,分析所处理的业务数据和处理方式,并对其中一些关键技术方案或算法做出选择或初步设计。
DBAS 功能概要设计按照逐步求精、模块化、信息隐藏和功能细化原则,根据 DBAS 需求分析阶段得到的系统功能和业务规则描述,在总体设计结果基础上,将 DBAS 应用软件进一步细化为模块/子模块,组成应用软件的系统-子系统模块-子模块层次结构, 并对系统、子系统、模块、子模块等系统元素从结构、行为和数据三方面进行设计。
从功能角度 DBAS 系统通常可以划分为四个层次实现:
表示层概要设计的主要任务是进行人机界面设计。人机界面(也称为用户界面,人机交互界面)是数据库应用系统的一个重要组成部分。并无统一的界面设计方法,但应遵守以下设计原则:
(1)用户应当感觉系统的运行始终在自己的控制之下,即便当系统程序取得对系统的控制权时,人机界面也应向用户提供视觉和听觉上的反馈,保持用户与人机界面间的双向交流。
(2)当系统发生错误或程序运行时间较长时,用户界面应该为用户提供有意义的反馈信息,并有上下文感知的帮助功能。
(3)一个好的用户界面应该容忍用户在使用过程中发生的各种操作错误,并且能够方便地从错误中恢复过来,保证系统运行不受或尽可能小地受到用户错误操作的影响。
(4)用户界面应该遵循一定标准和常规。保持同一种风格和形式。
(5)用户界面应采取灵活多样的数据输人方式,尽量减少用户的输人负担;提供字符、图形、图像、声音等多种形式的数据输出方式。
(6)如果使用 Web 界面,设计要求具有简洁性,避免使用过于复杂的图形和动画等;界面布局还应当清晰地表示各类信息,并具有与之匹配的导航性;Web 界面的设计应当保持界面的一致性,例如保持一致的位置、始终使用一致的配色方案等;在 Web 界面设计时,需要注意界面美观和交互性能的折中平衡,因为太大、太复杂的图形图像界面会带来过大的系统开销,也影响交互的及时性。
业务逻辑概要设计的主要任务是梳理 DBAS 的各项业务活动,将其表示为各种系统构件(如类、模块、组件等)。业务逻辑层是 DBAS 的重要组成部分,它承载了数据访问层与用户界面层的桥梁作用,DBAS 的核心业务逻辑均在本层予以实现。
在业务逻辑层概要设计阶段,设计人员需要将数据库应用软件划分为一系列程序模块,每个模块实现一个具体的功能。程序模块与软件功能不是一一对应的,一个功能可以由多个模块来实现。一些被抽象出来的公共模块,也可以被多个子系统中实现不同功能的程序模块调用。
业务逻辑层概要设计将包括:结构、行为、数据、接口、故障处理、安全设计、系统维护与保障等方面的内容。
对业务逻辑层进行模块划分通常需要考虑高内聚与松耦合原则,这一原则在设计过程中体现在以下方面:
(1)构件本身应由相关性很强的代码组成,一个构件或一个模块只负责完成一项任务,也就是常说的单一责任原则。
(2)组成系统业务逻辑层的各个构件均应具有独立的功能,并且最大限度地减少与其他构件功能重叠。
(3)构件之间的接口应尽量简单明确。
(4)如果某两个构件间的关系比较复杂的话,应考虑进一步进行模块划分。
(5)如果构件过于复杂,可以考虑将其细分。
总之,高内聚与松耦合原则的根本目的就是在保持软件内在联系的前提下,分解软件系统,降低软件系统开发的复杂性。目前业界存在着各种各样的分解方法,比如:关注点分离,面向方面,面向对象,面向接口,面向服务,依赖注人,以及各种各样的设计原则等。高内聚和松耦合是相互矛盾的。
数据访问层概要设计的主要任务就是针对 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.6)。
原型迭代法由如下几个步骤组成:
1.初步设计
从用户人机交互需求出发,设计人机交互命令系统,并对其进行优化。命令系统是用户与系统交互的基础。命令系统优化首先应考虑命令的执行顺序,将常用命令安排在前面,并尽可能地使命令顺序与用户使用习惯保持一致;然后,将全部交互命令按照一定的原则组织起来。
2.用户界面细节设计
在命令树基础上,设计命令系统的具体实现方式,命令系统实现可以采用命令行、菜单、按钮、Web 界面等多种方式,并注意考虑界面的组织形式、风格、色彩操作方式等实现细节。
3.原型设计与改进
在上述设计结果基础上,首先构造一个人机界面原型系统。利用原型系统,可以为用户演示人机交互效果,让用户直观感受系统的使用方法并评判用户界面功能是否齐全、是否方便易用;然后,根据用户评审反馈意见修改原型系统。通过这种反复迭代过程,不断完善用户界面,直至符合用户预期要求。
在上述设计步骤中,用户界面的初步设计可安排在 DBAS 总体设计阶段,界面细节设计安排在 DBAS 概要设计阶段,而界面原型设计与改进则属于 DBAS 详细设计阶段的工作内容。
业务逻辑层详细设计的任务是根据概要设计中定义的各程序模块功能和输人输出数据需求,结合具体的程序设计环境和机制,对概要设计的细化。可以通过UML的类图、活动图、协作图来描述DBAS对用户业务的详细实现逻辑。
数据安全涉及的范围很广,从数据存储安全角度出发,主要有以下五个方面:
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.数据加密传输
常用的数据加密传输手段有:
1.漏洞与补丁
2.计算机病毒防护
目前主要的病毒防护手段有:
(1)安装杀毒软件,定期查杀病毒。
(2)计算机实时监控。
3.网络环境安全
(1)防火墙。防火墙作为一个分离器、限制器和分析器。
(2)入侵检测系统。入侵检测系统(简称 IDS)是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。
(3)网络隔离。网络隔离技术分为物理隔离和逻辑隔离两类。物理隔离指将待隔离的两个网络完全彻底地进行隔离,不存在任何可能的通路。逻辑隔离则是指通过一定的技术和硬件设备,将局部网络从外部网络中隔离出来,控制内外部数据的流动。
4. 物理环境安全
设立专门的空间用于放置服务器、存储设备、网络设备等硬件设备,好处是可以对设备进行集中控制和管理。如设置防火防盗报警设施、加装防盗门窗、安全温度湿度控制设备及温度湿度报警装置等。
当外部电力中断时,可采用UPS(Unterupible Power System)来解决设备用电安全方面的问题。UPS 也被称为不间断电源,是能够提供持续、稳定、不间断的电源供应的重要外部设备。
管理层面安全措施指利用行政管理、法制保证和其他物理措施等防止安全事故的发生,如安全组织管理体系、高效能的职责分工及明确的行政管理安全机构、完善的信息安全标准和评估体系、明确的具有高度可操作性的安全规范和制度等。
对于 DBAS 设计人员需要做的工作是:
(1)详细了解系统最终用户对安全性的要求,梳理出需要从管理层进行安全控制的需求。
(2)认真与最终用户沟通,了解用户组织现状和制度现状,给出 DBAS 管理层安全策略的建议。
(3)耐心与最终用户交流,取得用户的信任和支持,保障相关制度能顺利执行。
创建数据库时需要考虑以下因素:
(1)初始空间大小。数据库初始空间是创建数据库时的基本参数,在数据库创建初期设定。通常数据库初始空间大小需要满足 DBAS 系统3~5年的数据存储需求。
(2)数据库增量大小。当数据库初始空间被占满时,数据库管理系统会根据用户设置的数据库增量值分配相应大小的空间给数据库使用。
(3)访问性能。访问性能也是创建数据库时需要考虑的问题, 如数据库访问的并发量,数据表访问的频度等。
组织数据入库是数据库实施阶段主要的工作。
具体步骤如下:
(1)筛选数据。
(2)转换数据格式。
(3)输人数据。
(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、要注意两段锁协议和防止死锁的一次封锁法的异同之处。一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议。但两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。加锁阶段事务可以申请获得任何数据项上的任何类型的锁,但是不允许释放任何锁。