【系统分析师之路】系统分析师下午案例模拟题(2021版)
系统分析师下午案例模拟题一
阅读以下关于Web应用系统集成的问题,在答题纸上回答问题1至问题3。
国内的一个某公司为国内某省的某个电信运营商开发了一套基于WEB的全省集中的业务稽核系统,由于该平台的业务数据量在不断增加,导致系统的处理速度越来越 经明显不能支持新业务扩展的需要。面对这一情况,公司与客户召开了讨论会,寻求该平台的解决方案。公司认为客户应该为各种服务器进行扩容,客户在分析各种服务 置之后,表示每台服务器都已经不能再扩容了。最终在讨论会上达成共识,在硬件上和软件上进行双重改进来完成系统的设计方案。也就是客户利用现有遗留的服务器为 务器建立集群服务,改进方案如下图5-1所示。另外公司也将从软件技术进行升级,通过缓存技术来实现大批量静态数据的查询。
【问题1】(10分)
公司通过对该平台的数据经过分析后,发现静态的用户表是一个按月存储的宽表,数据量特别大,而且各种业务的处理都需要大量访问该表,所以,为了提高系统的性能需要使用分布式缓存技术,通过对分布式缓存的Redis技术和Memcached技术进行比较后,最终选择了Redis技术来实现这种分布式缓存服务器。从A-J中分别选出答案填入表5-1中的(1)-(10)处。
A) 数据丢失后不可恢复
B) 支持单线程
C) 不支持数据持久化
D) 支持数据的持久化
E) Key-value
F) 哈希
G) 集合
H) 支持多线程
I) 列表
J) 数据丢失后可恢复,支持数据的备份
【问题2】(9分)
通过把应用服务器从一台变成了两台,把用户的请求分散到不同的服务器中,从而提高负载能力。请给出三种实现应用服务器的软件负载均衡的解决方案,并简要说 明工作机制。
【问题3】(6分)
请用200字以内的文字解释分布式文件系统的概念,并列出2种常见的分布式文件系统解决方案的名称。
【问题1我的解答】
比较类别 | Redis | MemCached |
---|---|---|
支持的数据类型 | 哈希,集合,列表,sorted set,string,Key-Value | Key-Value |
线程 | 支持多线程 | 支持单线程 |
数据存储 | J数据丢失后可恢复,支持数据的备份 | A丢失后数据不可恢复 |
数据备份与恢复 | D支持数据持久化 | C不支持数据持久化 |
【问题1标准答案】
(1)F)(2)G)(3)I)(4)E)(5)B)(6)H)(7)D)(8)C)(9)J)(10)A)
其中(1)(2)(3)的答案是F)G)I),以上三个答案顺序可调换。
比较类别 | Redis | MemCached |
---|---|---|
支持的数据类型 | 哈希,集合,列表,sorted set,string,Key-Value | Key-Value |
线程 | 支持单线程 | 支持多线程 |
数据备份与恢复数 | J数据丢失后可恢复,支持数据的备份 | A丢失后数据不可恢复 |
数据存储 | D支持数据持久化 | C不支持数据持久化 |
相比我的解答,数据存储和数据备份与恢复我弄反了,还有Redis只支持单线程呀!
【问题2我的解答】
软件负载均衡技术有应用层软件负载均衡技术(Http重定向,反向代理服务器),传输层的软件负载均衡技术(基于NAT的负载均衡,还有基于DNS的负载均衡)。
Http重定向是在请求转发至DNS域名服务器的时候,同一个http请求解析后变成不同的IP地址,从而均衡到不同的服务器去做响应从而达到负载均衡的目的。
反向代理服务器则是所有的请求都先发送至一台代理服务器上,由该台代理服务器再根据当前的负载情况,将请求动态分配到各台服务器中;
基于NAT的负载均衡是传输层的负载均衡技术,它是将不同的请求分配到不同的端口来实现负载均衡的。
基于DNS服务器的负载均衡是在DNS服务器上,请求发送到DNS服务器之后,由DNS服务器根据算法分配不同的IP地址返回给请求端,请求端再根据返回的IP地址访问服务器,从而达到负载均衡的目的。
【问题2标准答案】
常见的软件负载均衡的实现方案有:http重定向、反向代理服务器、DNS域名解析负载均衡等。
1)http重定向
HTTP重定向就是应用层的请求转发。用户的请求其实已经到了HTTP重定向负载均衡服务器,服务器根据算法要求用户重定向,服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后重发请求,从而达到负载均衡的目的。
2)反向代理服务器
在用户的请求到达反向代理服务器时(已经到达网站机房),由反向代理服务器根据算法转发到具体的服务器。常用的Apache,nginx都可以充当反向服务器。
3)DNS域名解析负载均衡
DNS域名解析负载均衡就是在用户请求DNS服务器,获取域名对应的IP地址时,DNS服务器直接给出负载均衡后的服务器IP。
【问题3标准答案】
分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。例如,用户可以“发表”一个允许其他客户机访问的目录,一旦被访问, 对客户机来说就像使用本地驱动器一样。常见的解决方案有GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等
【试题解析】
本题考查Web系统架构设计的相关知识及应用。 此类题目要求学生认真阅读题目,根据实际系统的需求描述,进行Web系统架构的设计。
本问题考查Web系统设计中分布式缓存的常用技术及实现这些技术的常用软件。
1)Memcached
它是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon)是用C写的,但是客户端可以用任何语言来编写,并通过Memcached协议与守护进程通信。
2)Redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、 add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主 服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
问题2
本题考查考生对负载均衡技术的相关概念的了解。
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务
Web系统设计中的负载均衡可以分为软件负载均衡和硬件负载均衡。
1)软件负载均衡
软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,如http重定向、DNS域名解析负载均衡、反向代理服务器、LVS、Nginx和HAProxy等,
它的优点是基于特定环境, 配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。
软件解决方案缺点也较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候, 软件本身会成为服务器工作成败的一个关键
软件可扩展性并不是很好,受到操作系统的限制;由于操作系统本身的Bug,往往会引起安全问题。
2)硬件负载均衡
硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。 负载均衡器有多种多样的形式,除了作为独立意义上的负载均衡器外,有些负载均衡器集成在交换设备中,置于服务器与Internet链接之间,有些则以两块网络适配器将这一功能集成到PC中,一块连接到Internet上,一块连接到后端服务器群的内部网络上。 一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。比较主流的几类产品如F5、Radware等。
问题3
本题考查分布式文件系统的相关概念。 分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。
分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色
例如,用户可以“发表”一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样。 计算机通过文件系统管理、存储数据,而信息爆炸时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式,在容量大小、容量增长速度、数据备份、数据安全等方面的表现都差强人意。
分布式文件系统可以有效解决数据的存储和管理难题:将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。
人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。 到目前为止,有很多种分布式文件系统解决方案可供选择,常见的分布式文件系统有,GFS、HDFS、Lustre 、 Ceph 、GridFS 、mogileFS、TFS、FastDFS等,他们对使用的环境和适应的文件形式各不相同,加速效果也不相同。
在国内mogileFS较为受欢迎,在图片存储上性能突出。而淘宝网开发出了TFS的文件系统,主要针对海量的非结构化数据,它建立在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。
GFS:是由google开发并设计的一个面向大规模数据处理的一个分布式文件系统,为了满足Google迅速增长的数 据处理需求,Google设计并实现了Google文件系统。它是有几百甚至几千台普通的廉价设备组装的存储机器。 GFS采用主/从模式,一个GFS包括一个master服务器r和多个chunk服务器。当然这里的一个master是指逻辑上的 一个,物理上可以有多个(就是可能有两台,一台用于以防万一,一台用于正常的数据管理)。
HDFS以流式数据访问模式来存储超大文件,它是谷歌的GFS提出之后出现的另外一种文件系统,它有一定高度的容错性,而且提供了高吞吐量的数据访问,非常适合大规模数据集上的应用。
Lustre是HP、 Intel、Cluster File System公司联合美国能源部开发的Linux集群并行文件系统,是第一个基于对象存储设备的,开源的并行文件系统。它由客户端,两个MDS,OSD 设备池通过高速的以太网或 QWS Net 所构成。可以支持1000个客户端节点的 I/O 请求,两个 MDS 采用共享存储设备的 Active-Standby方式的容错机制, 存储设备跟普通的,基于块的 IDE 存储设备不同,是基于对象的智能存储设备。
GridFS是mongoDB自带的文件系统,它以二进制的形式存储文件 大型文件系统的绝大多数特性GridFS全可以 完成。GridFS会直接利用已建立的复制、分片机制;GridFS可以避免传统文件系统的某些弊端,例如同一目录下 文件数量过多;GridFS不会产生磁盘碎片。
系统分析师下午案例模拟题二
阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。
【说明】
某软件企业开发一套类似于淘宝网上商城业务的电子商务网站。该系统涉及多种用户角色,包括购物用户、商铺管理员,系统管理员等。 在数据库设计中,该系统数据库的核心关系包括:
产品(产品编码,产品名称,产品价格,库存数量,商铺编码)
商铺(商铺编码,商铺名称,商铺地址,商铺邮箱,服务电话)
用户(用户编码,用户名称,用户地址,联系电话)
订单(订单编码,订单日期,用户编码,商铺编码,产品编码,产品数量,订单总价) 不同用户角色有不同的数据需求,为此该软件企业在基本数据库关系模式的基础上,定制了许多视图。其中,有很多视图涉及到多表关联和聚集函数运算。
【问题1】 (8分)
商铺用户需要实时统计本商铺的货物数量和销售情况,以便及时补货,或者为商铺调整销售策略。为此专门设计了可实时查看当天商铺中货物销售情况和存货情况的视图,商铺产品销售情况日报表(商铺编码,产品编码,日销售产品数量,库存数量,日期)。
数据库运行测试过程中,发现针对该视图查询性能比较差,不满足用户需求。
请说明数据库视图的基本概念及其优点,并说明本视图设计导致查询性能较差的原因。
【问题2】(8分)
为解决该视图查询性能比较差的问题,张工建议为该数据建立单独的商品当天货物销售、存货情况的关系表。但李工认为张工的方案造成了数据不一致的问题,必须采用特定的手段来解决。
1)说明张工方案是否能够对该视图查询性能有所提升,并解释原因。
2)解释说明李工指出的数据不一致问题产生的原因。
【问题3】(9分)
针对李工提出的问题,常见的解决手段有应用程序实现,触发器实现和物化视图实现等,请用300字以内的文字解释说明这三种方案。
【问题1我的答案】
数据库视图是虚表,是从一个或多个逻辑表中导出的数据库虚表。
优点:提高了数据库的逻辑独立性,增加了数据库安全性,可以定义用户使用不同的方式访问数据库表;通过过滤掉不需要的列,可以提高查找的速度。
【问题2我的答案】
建立单独的商品当天货物销售、存货情况的关系表之后,减少了每次计算量和数据库逻辑表在用视图查询时的逻辑操作,所以在查询的性能上得到了提升。
当天货物销售表和库存情况关系表这两个表中数据都是从已有的关系表中导出来的,当对货物销售和库存情况表进行数据更新时,如果不同步更新相应数据,就会出现数据不一致的现象。
【问题3我的答案】
1)应用程序实现
应用程序在更新一张逻辑表时,自动更新另一张逻辑表。
2)触发器实现
更新数据库表某个字段的时候,同步更新另一张逻辑表中的关联数据,从而保证数据的一致性。
3)物化视图
也叫实表。与视图不同的是它是真实建立在数据库中的,当我们操作了物化视图之后,数据库管理系统会自动同步到关联的逻辑表之中。
【问题1标准答案】
视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。
视图的优点:
1、视图能简化用户的操作
2、视图机制可以使用户以不同的方式查询同一数据
3、视图对数据库重构提供了一定程度的逻辑独立性
4、视图可以对机密的数据提供安全保护
查询性能较差的原因是视图中“日销售产品数量”需要针对订单表做统计分析,订单表中有数量庞大的历史销售记录,所以这种操作极为耗时
【问题2标准答案】
张工方案能够对该视图查询性能有所提升,因为这样做能极大的减少统计分析的数据量,对小数据量进行统计,性能是能得以保障的。
由于当日订单数据既存储在订单表中,又存储在单独的当天货物销售、存货情况表中。同一数据存储了两份,一旦出现修改,未同步修改,则会造成数据不一致。
【问题3标准答案】
应用程序实现:在进行订单的添加、修改、删除操作时,从应用程序中,控制对两个数据表都进行相关操作,以保障数据的一致性。
触发器实现:在应用程序中,只对订单表进行操作。但写触发器,当订单表发生变化时,把当日订单内容同步更新到当天货物销售、存货情况表中。
物化视图实现:建立“当天货物销售、存货情况”的物化视图,物化视图会把相应的数据物理存储起来,而且在订单表发生变化时,会自动更新。
【参考解析】
视图(View)是从一个或多个表(或视图)导出的表。视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。
系统分析师案例分析模拟题三
阅读以下关于软件系统可行性分析的叙述,在答题纸上回答问题1至问题3。
某软件开发企业受对外贸易公司委托开发一套跨境电子商务系统,项目组从多个 方面对该电子商务系统进行了可行性分析,在项目组给出的可行性分析报告中,对项目的 收益情况进行了说明:建设投资总额为300万元,建设期为1年,运营期为4年,该方案现金流量表如表1-1所示。
表1-1 系统解决方案现金流量表(单位:万元)
【问题1】(12分)
软件系统可行性分析包括哪几个方面?用200以内文字说明其含义。
【问题2】(7分)
成本和收益是经济可行性评价的核心要素,成本一般分为开发成本和运营成本, 收益包括有形收益和无形收益,请对照下列7项内容,将其序号分别填入成本和收益 对 的类别。
a)系统分析师工资;
b)采购数据库服务器;
c)系统管理员工资;
d)客户满意度增加;
e)销售额同比提高;
f)软件许可证费用;
g)应用服务器数量减少。
【问题3】
根据表1-1所示现金流量表,分别给出该解决方案的静态投资回收期、动态投资回收期和投资收益率的算术表达式或数值(结果保留2位小数)。
【问题1我的解答】
软件系统的可行性包括有经济可行性,技术可行性,用户使用可行性和社会可行性四种。
经济可行性一般做的就是成本效益分析,主要就是用来证实信息系统的开发完成之后可以收回支出的费用,是可以带来盈利的;
技术可行性是信息系统的建设所需要的技术可以满足,满足建设的必要条件;同时在建设过程中是否得到上级的支持也是一部分。
社会可行性是在信息系统建设完成后使用过程中没有存在违反社会法律道德等方面的问题;
用户使用可行性包括了信息系统使用符合用户的使用习惯
【问题1标准答案】
经济可行性:主要评估项目的建设成本,运行成本和项目建成后可能的经济收益。
技术可行性:研究的对象是信息系统需要实现的功能和性能,以及技术能力的约束。
法律可行性:具有比较广泛的内容,它需要从政策,法律,道德,制度等社会因素来论证
用户使用可行性:从信息系统用户的角度来评估系统的可行性,包括企业行政管理和工作制度,使用人员的素质和培训要求等
【问题2我的解答】
a)系统分析师工资; 开发成本✔️
b)采购数据库服务器;开发成本✖️
c)系统管理员工资;运营成本✔️
d)客户满意度增加;无形收益✔️
e)销售额同比提高;有形收益✔️
f)软件许可证费用;运营成本✔️
g)应用服务器数量减少。有形收益✔️
【问题2标准答案】
类别 选项
开发成本 a系统分析师工资;b采购数据库服务器
运营成本 c系统管理员工资;f软件许可证费用;
有形收益 e销售额同比提高;g应用服务器减少
无形收益 d客户满意度增加;
错了一个采购数据库服务器属于开发成本。
【问题3我的解答】
静态投资回收期=净现金流量出现正值的年份减1+上一年累计近现值的绝对值 / 当年净现金流量
动态投资回收期 = 累计折现值出现正值的年份减1+上一年折现值的绝对值 / 当年的折现值
【问题3标准答案】
静态投资回收期=累计净现金流量出现正值的年份数-1+|上年累计净现金流量|/ 当年净现金流量=3-1+|390-340|/ (200-60)=2+50 / 140= 2.35年
动态投资回收期=累计折现值出现正值的年份数-1+|上年累计折现值|/ 当年折现值 3-1+|377.9-295|/ (200-60)0.75=2+82.9 / 1400.75=2.79年;
投资收益率=投资收益/投资成本*100%=594.6/470.5=126.38%
【试题解析】
可行性是指企业当前的条件下,是否有必要建设新系统,以及建设新系统的工作是否具备必要的条件。在信息系统建设项目中,可行性评估通常从经济可行性、技术可行性、法律可行性和用户使用可行性四个方面进行分析,经济可行性通常被认为是项目的底线。经济可行性也称为投资收益分析或成本效益分析,主要评估项目的建设成本、运行成本和项目建成后可能的经济收益。技术可行性也称为技术风险分析,研究的对象是信息系统需要实现的功能和性能,以及技术能力约束。法律可行性也称为社会可行性,具有比较广泛的内容,它需要从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性。用户使用可行性也称为执行可行性,是从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等,可以分为管理可行性和运行可行性。 掌握系统可行性分析方法是系统分析师的重要技能,特别是成本效益分析方法,能够根据现金流量表计算静态投资回收期、动态投资回收期和投资收益率等可行性指标。
投资回收期就是投资收回的期限,也是用系统方案所产生的净现金收入回收初始全部投资所需要的时间。对于投资者来讲,投资回收期越短越好,从而减少投资的风险。计算投资回收期时,根据是否考虑资金的货币时间价值,可分为静态投资回收期和动态投资回收期。投资收益率又成为投资利润率,是指投资收益占投资成本的比率,用来反映投资的收益能力。各指标计算方法:
(1)静态投资回收期=累计净现金流量开始出现正值的年份数-1+|上年累计净现金流量|/当年净现金流量;
(2)动态投资回收期=累计折现值开始出现正值的年份数-1+|上年累计折现值|/当年折现值;
(3)投资收益率=投资收益/投资成本×100%