1、第3题(案例题):阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。【说明】某软件企业开发一套类似于淘宝网上商城业务的电子商务网站。该系统涉及多种用户角色,包括购物用户、商铺管理员,系统管理员等。在数据库设计中,该系统数据库的核心关系包括:产品(产品编码,产品名称,产品价格,库存数量,商铺编码) 商铺(商铺编码,商铺名称,商铺地址,商铺邮箱,服务电话) 用户(用户编码,用户名称,用户地址,联系电话)订单(订单编码,订单日期,用户编码,商铺编码,产品编码,产品数量,订单总价)不同用户角色有不同的数据需求,为此该软件企业在基本数据库关系模式的基础上,定制了许多视图。其中,有很多视图涉及到
2、多表关联和聚集函数运算。【问题1】 (8分)商铺用户需要实时统计本商铺的货物数量和销售情况,以便及时补货,或者为商铺调整销售策略。为此专门设计了可实时查看当天商铺中货物销售情况和存货情况的视商铺产品销售情况日报表(商铺编码,产品编码,日销售产品数量,库存数量,日期)。数据库运行测试过程中,发现针对该视图查询性能比较差,不满足用户需求。请说明数据库视图的基本概念及其优点,并说明本视图设计导致查询性能较差的原因。【问题2】(8分)为解决该视图查询性能比较差的问题,张工建议为该数据建立单独的商品当天货物销售、存货情况的关系表。但李工认为张工的方案造成了数据不一致的问题,必须采定的手段来解决。1) 说
3、明张工方案是否能够对该视图查询性能有所提升,并解释原因。2) 解释说明李工指出的数据不一致问题产生的原因。【问题3】(9分)针对李工提出的问题,常见的解决手段有应用程序实现,触发器实现和物化视图实现等,请用300字以内的文字解释说明这三种方案。选择文件标记收藏【问题1】视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。视图的优点:1、视图能简化用户的操作2、视图机制可以使用户以不同的方式查询同一数据3、视图对数据库重构提供了一定程度的逻辑独立性4、视图可以对机密的数据提供安全保护查询性能较差的原因是视图中“日销售产品数量”需要针对
4、订单表做统计分析,订单表中有数量庞大的历史销售记录,所以这种操作极为耗时。【问题2】1) 张工方案能够对该视图查询性能有所提升,因为这样做能极大的减少统计分析的数据量,对小数据量进行统计,性能是能得以保障的。2) 由于当日订单数据既存储在订单表中,又存储在单独的当天货物销售、存货情况表中。同一数据存储了两份,一旦出现修改,未同步修改,则会造成数据不一致。【问题3】应用程序实现:在进行订单的添加、修改、删除操作时,从应用程序中,控制对两个数据表都进行相关操作,以保障数据的一致性。触发器实现:在应用程序中,只对订单表进行操作。但写触发器,当订单表发生变化时,把当日订单内容同步更新到当天货物销售、存货情况表中。物化视图实现:建立“当天货物销售、存货情况”的物化视图,物化视图会把相应的数据物理存储起来,而且在订单表发生变化时,会自动更新。所属知识点: 案例分析数据库方向试题难度: 本题共被作答173次 平均得分15.1参考解析: 视图(View)是从一个或多个表(或视图)导出的表。视图与表(有时为与视图区别,也称表为基本表Base Table)不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。