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

简答题

试题四(共25分)

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

【说明】

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

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

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

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

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

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

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

问题描述:在系统初步运行后,发现数据访问性能不佳,特别是在查询商品信息时。经过分析,刘工认为原来的数据库规范化设计导致关系表过于细分,产生了大量的多表关联查询。针对此问题,提出了采用反规范化设计的思路来改造药品关系的结构。请阐述常见的反规范化设计方法,并说明针对此情况应采用哪种方法。

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

答案:

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

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

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

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

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


解析:

反规范化设计的主要目的是提高查询性能。在关系数据库规范化后,为了提高查询效率,可以采取反规范化设计。常见的反规范化设计方法包括增加冗余列、增加派生列、表重组和表分割等。在本例中,用户查询商品信息时需要同时显示药品、供应商和库存等信息,如果采用增加冗余列的反规范化设计方法,可以在药品表中直接包含供应商名称和当前库存数量等信息,从而避免多表关联查询,提高查询性能。

创作类型:
原创

本文链接:问题描述:在系统初步运行后,发现数据访问性能不佳,特别是在查询商品信息时。经过分析,刘工认为原来的数

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

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

分享考题
share