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

简答题

【说明】

某软件企业开发一套类似于淘宝网上商城业务的电子商务网站。该系统涉及多种用户角 色,包括购物用户,商铺管理员,系统管理员等。

在数据库设计中,该系统数振库的核心关系包括:

产品(产品编码,产品名称,产品价格,库存数量,商铺编码) 商铺(商铺编码,商铺名称,商铺地址,商铺邮箱,服务电话); 用户(用户编码,用户名称,用户地址,联系电话)

订单(订单编码,订单日期,用户编码,商铺编码,产品编码,产品数量,订单总价)

不同用户角色也有不同的数据需求,为此该软件企业在基本数据库关系模式的基础上,定制 了许多试图。其中,有很多视图涉及到多表关联和聚集函数运算。

【问题 1】 (8 分) 商铺用户需要实时统计本商铺的货物数运和销售情况,以便及时补货,或者为商铺调整 销售策略。为此专门设计了可实时查看当天商铺中货物销售情况和存贷情况的视图,商铺产品销售情况日报表(商铺编码,产品编码,日销售产品数量,库存数量,日期)。

数据库运行测试过程中,发现针对该视图查询性能比较差,不满足用户需求。 请说明数据库视图的基木概念及其优点,并说明本视图设计导致查询性能较差的原闪。

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

答案:

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

视图优点如下:

1)视点集中

视图集中即是使用户只关心它感兴趣的某些特定数据和他们所负责的特定任务。这样通过只允许用户看到视图中所定义的数据而不是视图引用表中的数据而提高了数据的安全性。

2)简化操作

视图大大简化了用户对数据的操作。因为在定义视图时,若视图本身就是一个复杂查询的结果集,这样在每一次执行相同的查询时,不必重新写这些复杂的查询语句,只要一条简单的查询视图语句即可。可见视图向用户隐藏了表与表之间的复杂的连接操作。

3)定制数据

视图能够实现让不同的用户以不同的方式看到不同或相同的数据集。因此,当有许多不同水平的用户共用同一数据库时,这显得极为重要。

4)合并分割数据

在有些情况下,由于表中数据量太大,故在表的设计时常将表进行水平分割或垂直分割,但表的结构的变化却对应用程序产生不良的影响。如果使用视图就可以重新保持原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。

5)安全性

视图可以作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据。其它数据库或表既不可见也不可以访问。如果某一用户想要访问视图的结果集,必须授予其访问权限。视图所引用表的访问权限与视图权限的设置互不影响。

由于日销售产品数量基于订单统计而得,而订单表是一张大表,数据量可能非常大,导致统计耗时。

解析:

关于数据库视图的基本概念及优点:

  • 视图是一个虚拟表,其内容是根据SQL查询的结果动态生成的,不存储实际的数据。
  • 视图的优点包括视点集中(只让用户看到他们关心的数据)、简化操作(用户无需写复杂的查询语句,只需查询视图)、定制数据(不同用户可以看到不同的数据集)、合并分割数据(保持表的结构关系,便于应用程序的数据加载)以及安全性(通过视图控制用户对数据的访问)。

关于本视图设计导致查询性能较差的原因:

  • 商铺产品销售情况日报表中的“日销售产品数量”是基于订单统计的。
  • 订单表可能是一个数据量非常大的表,需要进行大量的数据扫描和聚合运算来统计日销售产品数量。
  • 这会导致查询性能下降,因为大量的数据扫描和聚合运算需要消耗较多的计算资源和时间。

为了提高查询性能,可以考虑对订单表进行索引优化、使用缓存技术、或者采用其他的数据统计和存储策略。

创作类型:
原创

本文链接:【说明】某软件企业开发一套类似于淘宝网上商城业务的电子商务网站。该系统涉及多种用户角 色,包括购物用

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

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

分享考题
share