刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

试题四(共25分)

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

【说明】

某医药销售企业因业务发展,需要建立线上药品销售系统,为用户提供便捷的互联网药品销售服务、该系统除了常规药品展示、订单、用户交流与反馈功能外,还需要提供当前热销产品排名、评价分类管理等功能。

通过对需求的分析,在数据管理上初步决定采用关系数据库(MySQL)和数据库缓存(Redis)的混合架构实现。

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

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

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

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

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

【问题1】(9分)

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

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

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

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

使用微信搜索喵呜刷题,轻松应对考试!

答案:

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

增加派生列/派生列:指增加的列可以通过表中其他属性列加工计算生成,作用是查询时减少计算量。

表重组/重新组表:如果需要经常查询两个表连接之后的数据,则把这两个表重新组成一个表来减少连接而提高性能。

表分割/分割表:通过将较大的表分割为多个较小的表来提高查询性能,包括水平分割和垂直分割。

该系统适合采用增加冗余列冗余列方法。


解析:

反规范化设计是为了提高查询性能而降低数据库规范化的设计方法。在关系数据库中,规范化是为了减少数据冗余和依赖异常,但过高的规范化可能导致过多的表连接查询,影响性能。因此,反规范化通过增加数据冗余和优化表结构来提高查询效率。对于用户查询商品信息的情况,采用增加冗余列的反规范化设计方法是最直接的解决方案。在药品表中直接包含供应商名称和当前库存数量等信息,可以避免多表关联查询,从而提高查询性能。

创作类型:
原创

本文链接:【问题1】(9分)在系统初步运行后,发现系统数据访问性能较差。经过分析,刘工认为原来数据库规范化设计

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share