专注在线职业教育25年
下载APP
小程序
希赛网小程序
导航

软考高级系统架构设计师案例分析题+答案!

责编:龙小林 2025-12-26

阅读以下关于数据库设计的叙述,回答问题1至问题3。

案例场景

某医药销售企业因业务发展,需要建立线上药品销售系统,为用户提供便捷的互联网药品销售服务。该系统除了常规药品展示订单、用户交流与反馈功能外,还需要提供当前热销产品排名、评价分类管理等功能。通过对需求的分析,在数据管理上初步决定采用关系数据库(MySQL)和数据库缓存(Redis)的混合架构实现。

经过规范化设计之后,该系统的部分数据库表结构如下所示。

供应商(供应商ID,供应商名称,联系方式,供应商地址);

药品(药品ID,药品名称,药品型号,药品价格,供应商ID);

药品库存(药品ID,当前库存数量);

订单(订单号码,药品ID,供应商ID,药品数量,订单金额)。

[问题1](9分)

在系统初步运行后,发现系统数据访问性能较差。经过分析,刘工认为原来数据库规范化设计后,关系表过于细分,造成了大量的多表关联查询,影响了性能。例如当用户查询商品信息时,需要同时显示该药品的信息、供应商的信息、当前库存等信息。

为此,刘工认为可以采用反规范化设计来改造药品关系的结构,以提高查询性能。修改后的药品关系结构为:

药品(药品ID,药品名称,药品型号,药品价格,供应商ID,供应商名称,当前库存数量);

请用200字以内的文字说明常见的反规范化设计方法,并说明用户查询商品信息应该采用哪种反规范化设计方法。

[问题2](9分)

王工认为,反规范化设计可提高查询的性能,但必然会带来数据的不一致性问题。请用200字以内的文字说明在反规范化设计中,解决数据不一致性问题的三种常见方法,并说明该系统应该采用哪种方法。

[问题3](7分)

该系统采用了Redis来实现某些特定功能(如当前热销药品排名等),同时将药品关系数据放到内存以提高商品查询的性能,但必然会造成Redis和MySQL的数据实时同步问题。

(1)Redis的数据类型包括String、Hash、List、Set和ZSet等,请说明实现当前热销药品排名的功能应该选择使用哪种数据类型。

(2)请用200字以内的文字解释说明解决Redis和MySQL数据实时同步问题的常见方案。


参考答案:

[问题1]

常见的反规范化技术包括:

(1)增加冗余列:增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作。

(2)增加派生列:增加派生列指增加的列可以通过表中其他数据计算生成。它的作用是在查询时减少计算量,从而加快查询速度。

(3)重新组表:重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。

(4)分割表:有时对表做分割可以提高性能。

用户查询商品信息应该采用:增加冗余列。

用户查询商品信息时,需要显示药品信息(药品表中),供应商信息(供应商表),库存信息(库存表中),此时查询的是药品表,但表中缺了供应商的信息和库存信息,可以通过增加冗余列的方式把这些信息并过来。以避免连接操作带来的查询性能下降。

[问题2]

完整试题+答案解析可点击下方蓝字获取!

系统架构设计师试题+答案解析

                  软考架构考资料汇总
资料名称资料价格
资源链接
2026年上半年 系统架构设计师考试简介免费点击获取
2025下半年系统架构设计师综合知识真题免费点击获取
系统架构设计师论文范文五篇免费点击获取
2026年上半年系统架构设计师考点自查清单免费点击获取
系统架构设计师三色笔记免费点击获取
2026年上半年系统架构设计师易混淆知识点免费点击获取
2025年上半年系统架构设计师综合知识真题免费点击获取
更多软考架构备考资料请点此查看


题库真题:每日一练 历年真题 | 章节练习 |高频考点

精品课程:系统架构设计师报考指南 | 系统架构设计师备考攻略 

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
相关阅读
查看更多

加群交流

公众号

客服咨询

考试资料

每日一练

咨询客服