阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。 【说明】 某软件企业开发一套类似于淘宝网上商城业务的电子商务网站。该系统涉及多种用户角色,包括购物用户、商铺管理员、系统管理员等。 在数据库设计中,该系统数据库的核心关系包括: 产品(产

admin2020-04-30  58

问题 阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。
【说明】
    某软件企业开发一套类似于淘宝网上商城业务的电子商务网站。该系统涉及多种用户角色,包括购物用户、商铺管理员、系统管理员等。
在数据库设计中,该系统数据库的核心关系包括:
产品(产品编码,产品名称,产品价格,库存数量,商铺编码)
商铺(商铺编码,商铺名称,商铺地址,商铺邮箱,服务电话)
用户(用户编码,用户名称,用户地址,联系电话)
订单(订单编码,订单H期,用户编码,商铺编码,产品编码,产品数量,订单总价)
    不同用户角色有不同的数据需求,为此该软件企业在基本数据库关系模式的基础上,定制了许多视图。其中,有很多视图涉及多表关联和聚集函数运算。
     商铺用户需要实时统计本商铺的货物数量和销售情况,以便及时补货,或者为商铺调整销售策略。为此专门设计了可实时查看当天商铺中货物销售情况和存货情况的视图,商铺产品销售情况日报表(商铺编码,产品编码,日销售产品数量,库存数量,日期)。
    数据库运行测试过程中,发现针对该视图查询性能比较差,不满足用户需求。
    请说明数据库视图的基本概念及其优点,并说明本视图设计导致查询性能较差的原因。

选项

答案 视图是由一个或多个表中数据组成的虚拟表,视图本身没有物理数据存在。针对视图的查询被DBMS转换为针对底层基表的数据查询。 其优点: 1)简单性,视图不仅可以简化用户对数据的理解,也可以简化他们的操作。 2)通过视图用户只能查询和修改他们所能见到的数据,用户可以被限制在数据的不同子集上。 3)逻辑数据独立性,视图可帮助用户屏蔽真实表结构变化带来的影响。 视图商铺产品销售情况日报表的数据来源于二三个基表,针对该视图的查询被DBMS转换为针对底层基表的查询,即DBMS需要实时执行三个基表的关联操作、sum函数计算,性能开销比较大。基表中的数据越多,查询的性能开销越大。

解析     本题考查数据库视图的基本概念以及视图查询优化的问题。
    视图是数据库开发中经常使用的一个数据库对象,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以物理存储的数据形式存在,存储的是视图定义对应的SELECT语句。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
    根据视图本身的定义和特定,其优点是:
    简单性,视图不仅可以简化用户对数据的理解,也可以简化他们的操作。例如可以封装底层的多表数据查询的细节,只提供用户关心的数据等;
    限制用户对数据的访问,通过视图用户只能查询和修改他们所能见到的数据,用户可以被限制在数据的不同子集上;
    逻辑数据独立性,视图可帮助用户屏蔽真实表结构变化带来的影响。例如多表查询、聚合信息等。
    缺点是视图对应的数据是在用户引用视图时动态生成,往往会有较大的开销,针对复杂视图的查询往往存在性能问题。尤其是设计多表关联操作时,表现更为明显。
    视图商铺产品销售情况日报表的数据来源于三个基表,针对该视图的查询被DBMS转换为针对底层基表的查询,即DBMS需要实时执行三个基表的关联操作、sum函数计算,性能开销比较大。基表中的数据越多,查询的性能开销越大。
转载请注明原文地址:https://jikaoti.com/ti/9067FFFM
0

最新回复(0)