问题 问答题 案例分析题

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

某集团公司在各省均设有分公司,现欲建立全国统一的销售管理信息系统,以便总公司及时掌握各分公司的销售情况。公司成立专门的项目组进行该系统的研发工作,其中张工负责其中的数据库设计工作。

张工和需求分析小组紧密合作,在设计出数据流图和数据字典的基础上,给出了数据库关系模式和相应的索引设计。同时考虑到未规范化关系模式可能引起的各类数据错误,对关系模式进行了全面的规范化处理,使所有关系模式均达到了3NF或BCNF。在项目实施过程中,应用开发小组认为该设计方案未考虑应用功能的实际需求。如果严格按照设计方案实施,会对应用系统的整体性能产生较大影响。主要的原因在于进行数据查询时,会产生大量的多表连接操作,影响性能。而设计方案中的索引设计,并不能完全满足数据查询的性能要求。

应用开发小组还认为,该设计方案未考虑到信息系统中核心销售数据处理的特点:各分公司在使用该信息系统时只能操作自己分公司的销售数据,无权操作其他分公司的销售数据;只有总公司有权利操作所有销售数据,以便进行统计分析。

应用开发小组要求,在数据库设计方案中,必须针对实际应用功能的实现来考虑关系模式的规范化,必要时需要采用逆规范化或解除规范化的方法来保证性能要求。

应用开发小组认为张工的规范化设计虽然解决了末规范化关系模式带来的问题,但实际实现功能时会造成系统性能的下降。请解释其原因。

答案

参考答案:

规范化程度是通过模式分解来实现的,因此规范化程度越高,关系模式表达的概念越单一,生成的关系模式就越多。

实际应用的数据请求往往非常复杂而多样化,经常会出现一个请求中涉及多个概念、多个关系模式的情况。关系数据库通过多表连接查询来满足这种需求,而表与表之间的连接操作会带来较大的性能开销。

开发小组认为设计方案中没有考虑应用功能的实际要求,将所有关系模式均规范到3NF或BCNF,则在满足用户复杂、多样的数据操作请求时,必然会带来大量的多表连接操作,从而影响实际的数据查询性能。数据量大时,性能下降非常迅速。

解析:

本问题考查关系模式分解的基本知识。

如果某关系模式存在存储异常等问题,可通过分解该关系模式来解决问题,将一个关系模式分解成几个子关系模式。

根据关系模式分解和规范化理论能够看出,数据库的规范化程度越高,数据库中的冗余信息就越少。然而,规范化使得关系模式不断被拆解,这样关系模式之间的结构就变得越来越复杂,在使用数据时频繁执行连接操作,而连接操作是最耗时间的,是数据库性能的制约因素。

开发小组认为设计方案中没有考虑应用功能的实际要求,将所有关系模式均规范到3NF或BCNF,则在满足用户复杂、多样的数据操作请求时,必然会带来大量的多表连接操作,从而影响实际的数据查询性能。数据量大时,性能下降非常迅速。

解答题
问答题 简答题