1、2008年下半年软件水平考试(高级)系统分析师下午(案例分析)试题真题试卷及答案与解析 一、必答题( 25分) 1 阅读以下关于某软件系统开发项目的叙述,回答问题 1至问题 4。 W公司的主要业务是利用网络进行音像制品的管理和销售,以提高其物流配送的效率。随着业务范围的扩展和业务过程的改进,公司 CIO发现现有信息系统业务过程过于僵化、维护困难,不能真正地为企业贡献价值,已经不能满足公司长久发展的战略。在该公司 CIO的建议下, W公司在三月初委托某软件企业为其开发出一套新的音像制品在线管理及销售系统 AVMSS,要求新系统能够对其现有系统业务过程进行重新设计,以提高公司业务的执行效率并降低维
2、护成本。 该软件企业成立了项目组来开发 AVMSS,在对开发任务进行了初步的了解之后,项目组认为 W公司原有系统的数据架构稳定,没有必要对原有关系数据模式进行重新设计:新系统应着眼于对系统控制流的改造,通过系统业务流程再造以应对公司的发展需要。但在选择系统开发方法时出现了分歧,张工认为应该采用流行的面向对象开发方法,而李工则认为应该采用成熟的结构化开发方法,项目组经过讨论最终确定在 AVMSS系统分析与设计过程中采用李工的 建议。 1 请对张工和李工所提出的两种系统开发方法进行比较,结合 AVMSS系统说明为什么项目组最终采用了李工的建议。 2 结构化分析主要包含初始研究、问题分析、需求分析、
3、逻辑建模和方案分析 5个阶段,请用 300字以内的文字说明需求分析和逻辑建模两个阶段的目标及主要任务。 3 四月底,项目组完成初始研究阶段的任务进入了问题分析阶段,以确立系统改进目标。刚参加工作的小赵仔细分析了初始研究阶段的相关文档和资料,在讨论会上提出了以下系统改进目标: 提高联机订单处理的用户满意程度。 新的系统 必须使用 Oracle数据库管理系统存储数据。 数据输入屏幕必须重新设计以使其更加友好。 影音销售子系统中订单处理所需的时间减少 50%。 这些是好的系统改进目标吗 ?请分别说明理由。 4 六月初,项目需求分析阶段遇到了大量的困难,并且比计划进度落后了两个星期,项目经理希望通过跳
4、过或者省略逻辑建模阶段的一些任务来赶上进度。项目经理认为,现在大家对需求有了清晰的认识,而且项目组的设计人员和构造人员经验都很丰富,直接可以进行技术设计而并不真正需要逻辑建模。为了赶上进度,这是合理的方法吗 ?请用 200字以内的文字说明理由。 5 阅读以下关于企业数据中心设计的说明,回答问题 1至问题 3。 某企业计划建设一个企业数据中心,该数据中心支持 A、 B、 C。 D和 E5项业务,各业务完全独立运行,各项业务运行的操作系统均不相同。在单台某型服务器上,除了为系统开销预留 30%的 CPU占用率之外,各业务在繁忙时段 (白天 )及非繁忙时段 (夜间 )的CPU占用率如下表所示。 现该
5、企业拟全部采用该类型服务器,张工和李工据此提出了不同的设计方案。张工认为需要采购 5台服务器,每项业务分配一台服务器。但李工提出了一种基于虚拟化技术的 解决方案,采用的服务器数量少于 5台。 5 在数据中心中应用虚拟化技术会带来哪些收益 ?请至少给出 3项。 6 李工的方案需要配置几台服务器 ?应如何设计 ? 7 为了进一步节省电力,按照李工的方案,非繁忙时段最少只需几台服务器工作即可满足业务负载要求 ?应如何设计 ? 8 阅读以下关于嵌入式软件测试方面的叙述,回答问题 1至问题 3。 甲公司是一个专业的航空软件开发公司,当前正在为某用户开发某航空嵌入式实时软件,王工是该软件开发项目的负责人。
6、应用户要求,甲公司委托乙公司对其开发的航空软件进行第三方测试 。张工是乙公司中该测试项目的负责人。 8 王工在与张工讨论该软件的测试计划时,就软件的测试环境产生了争执。张工认为所有的第三方测试工作都必须在目标机环境下完成,否则无法保证测试的有效性。王工认为开发工作进度很紧,而且开发工作需要频繁占用目标机环境,第三方测试在仿真环境下进行就可以了,没有必要非得在目标机环境下测试。请在 200字以内对上述两人意见的正确性进行评价与分析,并简述你对本题目中的测试环境问题的建议。 9 由于该软件是质量要求很高的航空嵌入式实时软件,在甲乙双方就签订该软件第三方测试技术协议进 行磋商时,甲方要求乙方的第三方
7、测试结构覆盖率必须达到修正的条件判定覆盖 (MC/DC)。请分别简述修正的条件判定覆盖 MC/DC与条件判定覆盖 (C/DC)对测试用例集的要求条件,下面给出了一个含有两个判定条件的例子,请说明两种覆盖测试用例集的设计方法。 例子: IF A OR B THEN ELSE ENDIF 10 张工的项目组根据王工的项目组提供的软件需求文档和设计文档,严格按照协议要求进行了第三方 测试,但是软件交付给用户使用后,仍然出了很多问题,用户对软件质量评价不高。王工认为张工项目组没有很好地进行软件第三方测试,张工觉得并无不妥之处,请对这一状况和原因进行分析。 11 阅读以下关于数据库性能优化方面的叙述,回
8、答问题 1至问题 4。 某企业核心业务系统运行性能不佳,尤其是针对数据库的操作,响应时间过长。 为此,该企业专门召开了解决该问题的专家研讨会。在会上刘工指出,当前硬件设备的价格比较低廉,只需要对数据库服务器的硬件设备进行升级,同时对数据库管理系统和操作系统中的相应参数进行调整就可 以了;王工建议对应用系统中使用的 SQL语句进行调优,针对每条 SQL语句都建立对应的索引;张工认为该业务系统中存在大量的数据查询操作,更新操作不多,尤其是存在大量的只读查询操作,应该针对这一点进行优化。 该企业采取了专家的部分建议,但优化的结果仍然不尽如人意,通过专门的监控,发现数据库管理系统中建立的索引存在问题。
9、 11 对上述专家意见和建议进行评价;给出自己的建议,并说明其中包含的内容。 12 简要说明王工建议中 SQL语句优化的基本策略。 13 王工提出的针对每条 SQL语句都建立索引的建议 是否合适 ? 简要说明还可以考虑的其他索引调整的原则。 14 请简要说明针对大量只读查询操作进行优化的主要方法。 15 阅读以下关于 Web应用的问题,回答问题 1至问题 3。 是一家在线旅游信息服务公司,其主要业务是为自助旅游者提供关于旅游线路及周边信息的服务。随着公司业务的不断发展,公司用户要求提供基于位置的增值旅游信息服务,即希望能够在给定位置 (利用 GPS全球定位系统获取 )的情况下得到周边的地理位
10、置、住宿、餐饮和交通等旅游相关信息。针对该需求,公司技术人员对现有系统的架 构和运行模式进行了认真分析,决定采用 Mashup(一种基于互联网的内容聚合技术 )集成来自其合作网站 (设为 A, B, C, D)的信息,满足用户的需求。具体实现方式如下: (1)利用 A网站提供的地图信息,得到用户位置相关的周边地理信息。 (2)B网站根据用户的位置信息向其提供周边的住宿信息。 (3)C网站根据用户的位置信息向其提供周边的餐饮信息。 (4)D网站根据用户的位置信息向其提供周边的公交线路等信息。 15 下图是公司进行 Mashup的流程示意图,请阅读并补充图中数字标出部分的内容。 (1)用户向 Tr
11、aveler网站请求服务,请求页面提供用户的位置信息; (2)_; (3)_; (4)A网站向 Traveler网站返回用户所处位置周边的地图信息; (5)_; (6)B网站向 Traveler网站返回用户所处 位置周边的住宿信息; . . . (7)_; (8)Traveler网站向用户返回用户所处位置周边整合的旅游信息。16 目前,互联网上已经存在很多 Mashup应用,各大网站也纷纷提供了各种格式的 Mashup数据接口。请用 300字以内的文字给出三种目前经常使用的 Mashup数据接口,并加以简单说明。 17 在实现 Mashup应用时,进行内容聚合的物理位置是一个十分重要的因素。目
12、前很多 Mashup站点都 选择在客户端机器上进行内容聚合,构成所谓的胖互联网应用程序 (Rich Internet Application, RIA)。请你用 200字以内的文字说明在客户端进行内容聚合的优点。 2008年下半年软件水平考试(高级)系统分析师下午(案例分析)试题真题试卷答案与解析 一、必答题( 25分) 1 【正确答案】 (1)结构化开发方法强调系统业务过程的数据流和控制流,将系统看作一个过程的集合体,系统数据架构和控制流可以分开设计,强调系统的业务处理过程,适合于业务流程再造和对处理过程要求较高的系统;而面向对象 方法则把系统看作一个相互影响的对象集,对象能够将数据及其行为
13、统一起来,对象之间通过消息交换的方式引发对象的行为。 (2)W公司现有系统只是自动化了企业的业务过程,造成信息系统业务过程低效且维护成本高的一个重要因素是企业的业务过程本身过于僵化,不能真正地为企业贡献价值,信息系统只是将这些低效率的过程自动化。真正的解决办法是业务流程再造。在 AVMSS系统的开发中,强调控制流的改进,因此比较适合于采用传统的结构化开发方法,采用李工的建议比较合理。 【试题解析】 结构化开发方法与面向对象开发方法是最为重要的 两种软件开发方法学。结构化方法是软件开发与维护的基础方法,其他现代软件方法学都是在结构化方法基础上发展和演绎而来,而且遵循基本的结构化思想;面向对象方法
14、作为当前最为流行的软件方法学,逐渐被系统分析和设计人员所接受,并在系统开发中加以应用。当前很多企业处于业务转型期,信息化基础设施建设成为企业业务发展的必要组成部分。企业信息化改造中,不仅需要开发新系统,而且面临着如何对其现有业务系统改造的问题。因此,系统开发团队需要针对具体的应用需求选择适合的软件开发方法,以提升系统开发的效率和效果。作为一名系统分析和设计人 员,对结构化开发方法和面向对象方法均应该有所了解。特别是要掌握在项目实际开发中对于不同开发方法选择的依据和标准。 结构化方法主要的关注点是系统功能,强调业务过程的数据流和控制流,采用模块化、自顶向下、逐步求精的设计过程。系统是实现模块功能
15、的函数和过程的集合,开发过程划分为若干相对独立的阶段,结构清晰、可读性好,是提高软件开发质量的一种有效手段。主要适合于规模较大、结构化程度较高的系统的开发。 面向对象关注于处理的数据,以对象为中心,对象能够将数据及其行为统一起来,对象之间通过消息交换引发对象的行 为。对象模型极大提高了数据和功能的复用程度,简化了开发系统开发过程,系统的可维护性得到了改善。 本题主要考察应试者对于结构化开发方法和面向对象开发方法的掌握情况。特别是很多企业的现有系统在开发中均采用了当时比较成熟的结构化开发方法,在对这些系统改进以应对业务变化时,就需要从不同角度灵活分析和选择系统改造方法。题目给出了一个具有典型代表
16、性的案例,要求应试者对结构化开发方法及其开发过程中常见的问题进行分析和说明。 问题 1要求应试者能够理解结构化开发方法和面向对象开发方法之间的区别及其适用的范围,说明 结构化开发方法选择的标准和依据。题目正文中指出 “原有系统的数据架构稳定 ”, “新系统应着眼于对系统控制流的改造 ”,通过 “系统业务流程再造 ”完成现有系统的改造过程。这些为本题指明了结构化分析方法选择的依据和标准。 问题 2要求应试者掌握结构化分析方法在实际应用中划分的不同阶段,及其各阶段的目标、主要任务和任务完成的标志。能够清楚说明需求分析和逻辑建模两个阶段所完成的主要任务及其联系。 问题 3要求应试者能够准确掌握系统需
17、求、系统目标和系统约束之间的区别。掌握 “好 ”的系统改进目标应该满足精确性和可度量性的 基本要求。 问题 4要求应试者理解结构化开发方法中每个阶段都是完成后续各个阶段任务的基础,认识到每个阶段所定义的各项任务的重要性和不可替代性,以及如果忽略该阶段或者某个任务将影响到后期各项工作的开展。逻辑建模阶段进一步对需求进行验证并定义测试用例,这些任务均是系统开发中的重要环节,如果省略,将为系统开发埋下隐患。 2 【正确答案】 (1)需求分析阶段:定义系统的业务需求。具体任务包括定义需求、排列需求的优先次序、修改项目计划、交流需求陈述。 (2)逻辑建模阶段:使用系统模型进一步记录业务需求并 对需求进行
18、验证。具体任务包括结构化功能需求、建立功能需求的原型 (可选 )、验证功能需求、定义验收测试用例。 3 【正确答案】 不是。评价方式无量化指标。 不是。是系统约束,不是系统目标。 不是。是系统需求,不是系统目标。 是。对系统性能量化明确、具体的陈述。 4 【正确答案】 不合理的方法。 项目执行过程具有天然的风险,系统分析不同阶段的每个任务都为后续任务打好坚实的基础,其每个阶段均不能跳过或被省略。 系统逻辑设计阶段产生的图表和文档,是系统所有者和系统用户最后 一次验证系统的功能需求,并对发现的错误进行修正和说明的关键。 5 【正确答案】 将虚拟化技术应用于企业数据中心将有效提高服务器的资源利用率
19、,支持运行在不同操作系统之上的多个业务共享同一台服务器,从而减少企业数据中心中的服务器数量,最终降低企业数据中心建设的硬件成本,节约场地面积,减少能耗。 【试题解析】 在计算机领域,虚拟化通常是指计算元件在虚拟的 (而不是真实的 )基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。 CPU的虚拟化技术可用单 CPU模拟多 CPU的并行处理过程,允许一个平 台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 虚拟化技术与多任务以及超线程技术完全不同。多任务是指在一个操作系统中多个程序同时并行运行,在虚拟化技术中可以同时运行多
20、个操作系统,并且每一个操作系统中都有多个程序在运行,每一个操作系统都运行在一个虚拟的 CPU或者是虚拟主机上;而超线程技术只是单 CPU模拟双 CPU来平衡程序的运行性能,这两个模拟出来的 CPU不能分离,只能协同工作。 虚拟化技术可以有不同的实现方法,例如完全虚拟化、准虚拟化、操 作系统层虚拟化等。 最流行的虚拟化方法使用名为 Hypervisor(虚拟机管理程序 )的一种软件,在虚拟服务器和底层硬件之间建立一个抽象层。在完全虚拟化的环境下, Hypervisor运行在裸硬件上,充当主机操作系统;而由 Hypervisor管理的虚拟服务器运行客户端操作系统 (Guest OS)。 Hyper
21、visor可以捕获 CPU指令,为指令访问硬件控制器和外设充当中介。因此,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,其主要缺点是给处理器带来的较大开销。 完全虚拟化是处理 器密集型技术,因为它要求 Hypervisor管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是改动客户操作系统,让它以为自己运行在虚拟环境下,能够与 Hypervisor协同工作,这种方法就叫准虚拟化 (para-virtualization)。 Xen 是开源准虚拟化技术的一个例子。操作系统作为虚拟服务器在 Xen Hypervisor上运行之前,它必须在核心层面进行某些改变。因
22、此, Xen 适用于BSD、 Linux、 Solaris 及其他开源操作系统,而不适合对类似于 Windows 的专有操作系统进 行虚拟化处理,因为它们无法改动。准虚拟化技术的优点是性能高。经过准虚拟化处理的服务器可与 Hypervisor协同工作,其响应能力几乎不逊于未经过虚拟化处理的服务器。 实现虚拟化还有一个方法,就是在操作系统层面增添虚拟服务器功能。 Solaris Container就是这样的一个例子, Virtuozzo/OpenVZ是面向 Linux的软件方案。 就操作系统层的虚拟化而言,没有独立的 Hypervisor层。相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬
23、件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统 (不过每个实例有各自的应用程序和用户账户 )。 虽然操作系统层虚拟化的灵活性比较差,但本机速度性能比较高。此外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异构环境要容易。 当前,虚拟化技术的优势已经得到了业界的普遍认可,虚拟化技术所具备的提高资源利用率和节 能环保的特性也得到了越来越多高性能计算机用户的青睐,虚拟化技术的普及和推广成为信息化技术发展的必然趋势。据业内专家分析,三个方面的因素使虚拟化技术迅速走向成熟。首先,信息化产业的快速发展使得服务器硬件技术有了
24、巨大进步;其次,高端服务器所承载的软件应用环境已经逐步发展成熟:第三,也是最重要的一点,由于服务器技术的快速发展以及信息化产业发展对于数据中心的规模要求越来越高,由此导致数据中心面临着越来越严重的发展瓶颈,而虚拟化由于具有提高资源利用率以及节能环保、可进行大规模数据整合等特点而成为信息化技术发展的又一项 具有战略意义的新技术。 6 【正确答案】 尽管业务 A、 B、 C、 D与 E运行的操作系统各不相同,但虚拟化技术支持同一台服务器上同时运行多个不同的操作系统实例,因而在不超出一台服务器 CPU处理能力的条件下,多个业务在虚拟化的支持下能够共享同一台服务器。 李工的方案需要配置 4台服务器,其
25、中:业务 A和 B共享 1台服务器,业务 C,D, E各自配置 1台服务器。 7 【正确答案】 虚拟化技术中的业务负载迁移机制支持企业数据中心依据业务负载的涨落动态迁移业务负载,将轻载服务器上的业务迁移到其他服务器,然后这些服务 器进入硬件休眠,进一步降低数据中心的能耗。 按照李工的方案,非繁忙时段最少需 3台服务器工作即可满足业务负载要求,其中业务 D在非繁忙时段迁移到业务 A与 B工作的那台服务器上,业务 C和 E在非繁忙时段继续驻留在各自原来的服务器上。 8 【正确答案】 (1)张工和王工的意见都不完全正确。 为了节省对目标机环境的争用,测试的很多工作可以在仿真环境下进行;但是为了防止由
26、于仿真环境与目标环境差异带来的测试错误,最终的测试程序必须在目标机环境上重新运行,以查看软件最终在目标环境下的实际运行情况。 (2)针对本题所述情况,为了提高开发与测试工作的并行度,张工的项目组可以先在仿真环境下开发和运行测试程序;待王工项目组的代码开发工作完成后,再在目标机环境下完整地运行所有的测试程序。 【试题解析】 本题重点考查考生对软件测试技术的掌握程度。作为系统分析员,承担着管理项目和分解项目实施的工作,第三方软件测试是提高软件产品质量的有效手段,因此掌握好软件测试技术,是软件工程师 (尤其是项目负责人 )必不可少知识。 问题 1主要考查考生在嵌入式软件测试方面如何解决开发和测试对资
27、源需求竞争的问题。通常,根据 V字形软件 研制过程,用户不可能为测试而专门研制一套目标机,只能依赖真是目标机完成所有测试任务,为了节省对目标机环境的争用,测试的很多工作一般可以在仿真环境下进行。但是,在仿真环境下完成测试工作后,并不代表测试工作的结束,为了防止由于仿真环境与目标环境差异带来的测试错误 (此差别永远存在 ),最终的测试程序必须在目标机环境上重新运行,以查看软件最终在目标环境下的实际运行情况。因此,两者之间缺一不可。在理解了这种现象下,为了提高开发与测试工作的并行度,张工的项目组可以先在仿真环境下开发和运行测试程序;待王工项目组的代码开发工 作完成后,再在目标机环境下完整地运行所有
28、的测试程序。 如果考生从事过嵌入式软件开发和测试工作 (尤其是航空软件 ),应该知道嵌入式软件可根据所依附的嵌入式设备在系统中的失效影响程度,分为多种级别,而不同的软件级别,其测试项要求也不相同。本问题主要考查考生对安全级别较高的软件,对修正的条件判定覆盖 (MC/DC)和条件判定覆盖 (C/DC)两项测试技术的掌握程度。 (1)对于 C/DC,要求测试集满足如下条件:判定中每个条件的真值与假值都至少取一次;同时判定的真值与假值也要求至少取一次。 (2)对 MC/DC,要求测试集满足如下条件: 首先应满足 C/DC的测试条件。 判定中每个条件的取值都必须独立地影响判定的结果,即在其他条件取值不
29、变的前提下,仅改变这个条件的值,而使判定结果改变。 根据上述有关 C/DC和 MC/DC的测试要求,在所给例子中, A和 B 的 C/DC测试集应是 TT, FF,因为该测试用例集中,条件 A与 B分别取了 T 与 F,判定 A OR B,也取了 T 值 (当 A=T, B=T时 )和 F值 (当 A=F, B=F时 );而 A和 B 的MC/DC测试集是 FF, TF, FT,因为 C/DC要求的测试用例集是 TT, FF无法满足 MC/DC的要求,条件 A与 B均没有独立地影响判定的输出结果。 问题三主要考查考生对测试工作的看法,这里考生应清楚的是以下几点:软件测试的作用是查找软件中存在的
30、问题,但是不能保证软件的正确性。软件正确性需要软件研发的全过程来保证。 从本题的情况来看,问题的根源很可能是王工或张工项目组的开发或测试工作中的某些点没有做好,主要原因包括: (1)软件需求规格说明没有全面地反应用户的要求。 (2)需求文档和设计文档质量不高。 (3)软件代码的质量本身不高,可读性较差。 (4)测试用例没有 100%覆盖需求。 (5)测试和开发人员责任心不够,开发过程控制不到位。 (6)软件开发无标准可循,测试人员难以理解。 等等。 9 【正确答案】 (1)对于 C/DC,要求测试集满足如下条件:判定中每个条件的真值与假值都至少取一次:同时判定的真值与假值也要求至少取一次。 (
31、2)对 MC/DC,要求测试集满足如下条件: 首先应满足 C/DC的测试条件。 判定中每个条件的取值都必须独立地影响判定的结果,即在其他条件取值不变的前提下,仅改变这个条件的值,而使判 定结果改变。 (3)两个判定例子的 C/DC测试集设计方法。 满足 C/DC要求的测试用例集是 TT, FF。 说明:因为该测试用例集中,条件 A与 B分别取了 T与 F,判定 A OR B,也取了 T值 (当 A=T, B=T时 )和 F值 (当 A=F, B=F时 )。 (4)两个判定例子的 MC/DC测试集设计方法。 满足 MC/DC要求的测试用例集是 FF, TF, FT。 说明: C/DC要求的测试用
32、例集是 TT, FF无法满足 MC/DC的要求,条件 A与B均没有独立地影响判定的输出结果。 10 【 正确答案】 (1)软件测试的作用是查找软件中存在的问题,但是不能保证软件的正确性。软件正确性需要软件研发的全过程来保证。 (2)从本题的情况来看,问题的根源很可能是王工或张工项目组的开发或测试工作中的某些点没有做好,主要原因包括: (1)软件需求规格说明没有全面地反应用户的要求。 (2)需求文档和设计文档质量不高。 (3)软件代码的质量本身不高,可读性较差。 (4)测试用例没有 100%覆盖需求。 (5)测试和开发人员责任心不够,开发过程控制不到位。 (6)软件开发无 标准可循,测试人员难以
33、理解。 11 【正确答案】 上述各个专家的建议均不完整。 基于数据库的业务系统,一般在进行调优时,需要具体问题具体分析。全面的分析方案应该包括以下三方面内容: (1)对系统中的业务数据进行搜集,判断当前硬件设备是否足够。判断数据库管理系统和操作系统的相应参数设置是否合理。 (2)对应用系统进行分析,对业务系统的类型进行确认,如联机事务处理和数据仓库对数据库的要求差异很大。 (3)对应用系统中的 SQL语句、索引等进行分析。 【试题解析】 本题涉及信息系统 中的数据库调优。目前绝大多数的大、中型信息系统都使用数据库作为数据存储,而信息系统的性能优化是一个综合性的问题,需要综合考虑硬件设备、操作系
34、统、数据库和应用系统, 基于数据库的信息系统,一般在进行调优时,需要具体问题具体分析。全面的分析方案应该包括以下三方面内容: (1)对系统中的业务数据进行搜集,判断当前硬件设备是否足够。判断数据库管理系统和操作系统的相应参数设置是否合理。例如数据库中 SGA中的参数,操作系统中共享内存等参数、数据库中数据与索引物理存储的分离等。 (2)对应用系统进行分析 ,对业务系统的类型进行确认,如联机事务处理和数据仓库对数据库的要求差异很大。 OLTP和 OLAP的类型也有很大的差异。 (3)对应用系统中的 SQL 语句、索引等进行分析。 本题中主要问题涉及的是第三方面的内容,即对应用系统中的 SQL 语
35、句、索引等进行分析。 SQL 语句优化在信息系统调优中所占比例较大。一般来讲,一个信息系统中不同 SQL语句的数目往往在 200 400条左右,在优化时,需要对每条 SQL语句的性能进行测量,对性能表现不佳的 SQL语句进行调整。当前也已经出现了专门的SQL 语句优化的工具 ,可以辅助开发人员。 SQL 语句优化的常见策略如下: (1)建立物化视图或尽可能减少多表查询。 (2)以不相干子查询替代相于子查询。 (3)只检索需要的列,无需将表中所有的列全部检索。 (4)用带 IN的条件子句等价替换 OR子句。 (5)经常提交 COMMIT,以尽早释放锁。 一般来讲,针对查询语句,建立适当的索引以提
36、高查询效率。但索引创建的是否合适,最终由数据库优化器来决定,因此在索引创建中也需要慎重考虑和实际测量。如果建立索引不当,数据库管理系统将会不利用已经建立的索引,而 采取全表扫描。 索引调整时还需要考虑如下原则: (1)如果更新操作成为系统瓶颈,因为每次更新操作会重建表的索引,因此需要考虑删除某些索引。 (2)选择适当的索引类型。例如,如果经常使用范围查询,则 B树索引比散列索引更加高效。 (3)将有利于大多数据查询和更新的索引设为聚簇索引。 同样,对于不同类型的应用系统 (类型划分根据对数据库的操作类型而言,例如 OLTP等 ),在数据库操作中,可采用的优化方法也有所不同。对于只读数据,常见的
37、处理方法如下: (1)数据量小的常量类型数据, 可以考虑不存储在数据库中,而是通过程序常量的方式解决。 (2)需要存储在数据库中的数据,可以考虑采用物化视图。 (3)数据存储时可以考虑适当的数据冗余,以减少数据库表之间的连接操作,提高查询效率。 针对数据的特点,采取特定的索引类型。例如位图索引等。 从上述的分析可以看出,基于数据库的信息系统的调优问题是一个比较复杂的问题,涉及到的硬件、操作系统、数据库管理系统和应用系统本身,即使在应用系统本身的调优上,也需要根据应用系统的类型、数据的类型等进行具体的考虑。 12 【正确答案】 SQL语句优化的常见策略如下: (1)建立物化视图或尽可能减少多表查
38、询。 (2)以不相干子查询替代相干子查询。 (3)只检索需要的列。 (4)用带 IN的条件子句等价替换 OR子句。 (5)经常提交 COMMIT,以尽早释放锁。 13 【正确答案】 不合适。 一般来讲,针对查询语句,建立适当的索引以提高查询效率。但是索引调整时还需要考虑如下原则: (1)如果更新操作成为系统瓶颈,因为每次更新操作会重建表的索引,因此需要考虑删除某些索引。 (2)选择适当的索引类型。例如 ,如果经常使用范围查询,则 B树索引比散列索引更加高效。 (3)将有利于大多数据查询和更新的索引设为聚簇索引。 同时需要对建立的索引进行实际的测试,因为索引的使用是由数据库管理系统决定的。如果建
39、立索引不当,数据库管理系统将会不利用已经建立的索引,而采取全表扫描。 14 【正确答案】 针对只读数据,常见的处理方法如下: (1)数据量小的数据,可以考虑不存储在数据库中,而是通过程序常量的方式解决。 (2)需要存储在数据库中的数据,可以考虑采用物化视图。 (3)数据存储时可以考虑适 当的数据冗余,以减少数据库表之间的连接操作,提高查询效率。 (4)针对数据的特点,采取特定的索引类型。例如位图索引等。 15 【正确答案】 (2)Traveler接受请求,将请求分解为对多个网站的数据请求调用,并为发起调用进行准备。 (3)调用 A网站提供的 Web编程接口,给出 (提供 )用户位置信息,请求地
40、图信息。 (5)调用 B网站的内容信息获取接口,给出 (提供 )用户地理信息,请求用户周边的住宿信息。 (7)根据用户的请求信息进行数据内容聚合。 【试题解析】 本题主要涉及 Web 应用技术,就目前十分流行的 Mashup 和基于位置应用的分析与设计进行了考查。 问题 1分析主要考查进行 Mashup 的主要流程:当移动用户向 Mashup 网站发起一个请求时,通过 GPS 系统附带自身的位置信息。 Mashup网站接受请求,并将请求分解为对多个服务网站的数据请求调用,并为发起调用进行准备。针对不同服务网站的调用接口,采用不同的调用方式。最终在 Mashup站点将请求信息进行数据内容聚合,并
41、将用户所处位置的整合信息返回。考生需要在理解这个过程的基础上,根据需要在空白处填写需要的步骤。 问题 2分析 考查了目前经常使用的三种 Mashup 接口,这三种接口分布如下: .聚合内容 (Really Simple Syndication, RSS)式的 Mashup 接口。一种用于对网站内容进行描述和同步的格式,是目前使用最为广泛的 Web 资源发布方式。可以被称为资源共享模式的延伸。 .表述性状态转移 (REpresentational State Transfer, REST)式的 Mashup 接口。 REST 从资源的角度来看待整个网络,分布在各处的资源由统一资源标识符(Unif
42、ied Resource Identifier, URI)确定,而客户端的应用通过 URI 来获取资源的表示。 基于简单对象访问协议 (Simple Object Access Protocol, SOAP)的 Web 服务式Mashup 接口。一种基于 XML 的数据格式定义,用来进行 Web 服务调用过程中的参数调用和返回。 问题 3分析主要考查在客户端进行 Mashup的好处。一般来说,在客户端进行内容聚合的优点主要有两个: (1)从 Mashup 服务器存储的角度来说,对服务器所产生的负载较轻,因为数据可以直接从内容提供者那里传送到客户端。 (2)从网络传输的角度来说,在基于 Ajax
43、等技术和应用模型的基础上,客户端页面只请求需要更新的内容,而不用刷新整个页面,从而减少网络数据的通信量。 16 【正确答案】 目前常见的 Mashup接口主要有以下三种: (1)聚合内容 (Really Simple Syndication, RSS)式的 Mashup 接口。一种用于对网站内容进行描述和同步的格式,是目前使用最为广泛的 Web资源发布方式。可以被称为资源共享模式的延伸。 (2)表述性状态转移 (REpresentational State Transfer, REST)式的 Mashup接口。 REST从资源的角度来看待整个网络,分布在各处的资源由统一资源标识符(Unifie
44、d Resource Identifier, URI)确定,而客户端的应用通过 URI来获取资源的表示。 (3)基于简单对象访问协议 (Simple Object Access Protocol, SOAP)的 Web服务式 Mashup接口。一种基于 XML的数据格式定义,用来进行 Web服务调用过程中的参数调用和返回。 17 【正确答案】 在客户端进行内容聚合的优点主要有 两点: (1)从 Mashup服务器存储的角度来说,对服务器所产生的负载较轻,因为数据可以直接从内容提供者那里传送到客户端。 (2)从网络传输的角度来说,在基于 Ajax等技术和应用模型的基础上,客户端页面只请求需要更新的内容,而不用刷新整个页面,从而减少网络数据的通信量。