首页
登录
从业资格
阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。 【说明】 某医
阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。 【说明】 某医
资格题库
2022-08-02
54
问题
阅读以下关于数据库设计的叙述,在答题纸上回答问题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标准答案】
针对反规范化数据不一致问题,可采用的解决方案包括:
1、触发器数据同步
2、应用程序数据同步
3、物化视图
或者说:批处理维护,应用逻辑,触发器
【问题3标准答案】
(1)热销药品排名适合用:ZSet,即有序集合类型
(2)
1、实时同步方案,先查缓存,查不到再从DB查询,并保存到缓存;更新缓存时先更新数据库,再将缓存设置过程期更新缓存。
2、异步队列方式同步,可采用消息中间件处理。
3、通过数据库插件完成数据同步。
4、利用触发器进行缓存同步。
另一种答案:
引用MYSQL的事务,因为事物有一致性保证,事务提交更新之后再更新缓存。
通过数据库中间件产品来保证缓存和数据库是实时同步的。
在缓存里面引用一些访问控制位,数据库数据变化之后,同步变更对应的访问控制位,然后从缓存查询时,率先判断该访问控制位,有变化就从数据库查,无变化直接从缓存返回数据。
转载请注明原文地址:https://tihaiku.com/congyezige/2398125.html
本试题收录于:
高级系统架构设计师题库软件水平考试初中高级分类
高级系统架构设计师
软件水平考试初中高级
相关试题推荐
在()设计阶段选择适当的解决方案,将系统分解为若干个子系统,建立整个系统的体
以下关于软件维护和可维护性的叙述中,不正确的是()。A.软件维护要解决软件
以下关于增量模型的叙述中,正确的是()。A.需求被清晰定义 B.可以快速构
以下关于文档的叙述中,不正确的是()。A.文档仅仅描述和规定了软件的使用范围
以下关于统一过程UP的叙述中,不正确的是()。A.UP是以用例和风险为驱动,以
以下关于进度管理工具Gantt图的叙述中,不正确的是()。A.能清晰地表达每个任
以下关于软件测试的叙述中,不正确的是()。A.在设计测试用例时应考虑输入数据和预
在进行子系统结构设计时,需要确定划分后的子系统模块结构,并画出模块结构图。该过程
以下关于软件项目管理中人员管理的叙述,正确的是()。A.项目组成员的工作风格也应
在一块电路板的上下两端分别有n个接线柱。根据电路设计,用(i,π(i))表示将上
随机试题
Dearprofessor,Itismypleasuretoinviteyoutobeincludedinourhighly
SomeSuggestionsforPessimists[A]Obesityandsmokingmayb
[originaltext]M:Sitdown,please.MissJenkins.W:Thankyou,sir.M:Well,I’
Forwelloveracentury,onestreetinNewYorkCityhasbeenknownforthe
语法这一术语有()含义A.一种 B.两种 C.三种 D.四种
职业病指()。A.劳动者在工作中所患的疾病 B.用人单位的劳动者在职业活动
建设周期一年半以上的工程项目,采用变动总价合同时,应考虑引起价格变化的因素不能包
子宫动脉来自于A.髂外动脉 B.髂总动脉 C.腹主动脉 D.股主动脉 E
关于破产重整和和解程序,下列说法正确的是: A.在重整期间,债务人有欺诈破产行
下列关于发票类型和适用范围的说法中,错误的是()。A.农产品收购发票属于增值税
最新回复
(
0
)