阅读以下关于数据库分析与设计的叙述,在答题纸上回答问题1至问题4。 某集团公司在各省均设有分公司,现欲建立全国统一的销售管理信息系统,以便总公司及时掌握各分公司的销售情况。公司成立专门的项目组进行该系统的研发工作,其中张工负责其中的数据库设计工作。 张工和

admin2014-08-23  50

问题 阅读以下关于数据库分析与设计的叙述,在答题纸上回答问题1至问题4。
某集团公司在各省均设有分公司,现欲建立全国统一的销售管理信息系统,以便总公司及时掌握各分公司的销售情况。公司成立专门的项目组进行该系统的研发工作,其中张工负责其中的数据库设计工作。
张工和需求分析小组紧密合作,在设计出数据流图和数据字典的基础上,给出了数据库关系模式和相应的索引设计。同时考虑到未规范化关系模式可能引起的各类数据错误,对关系模式进行了全面的规范化处理,使所有关系模式均达到了3NF或BCNF。
在项目实施过程中,应用开发小组认为该设计方案未考虑应用功能的实际需求。如果严格按照设计方案实施,会对应用系统的整体性能产生较大影响。主要的原因在于进行数据查询时,会产生大量的多表连接操作,影响性能。而设计方案中的索引设计,并不能完全满足数据查询的性能要求。应用开发小组还认为,该设计方案未考虑到信息系统中核心销售数据处理的特点:各分公司在使用该信息系统时只能操作自己分公司的销售数据,无权操作其他分公司的销售数据;只有总公司有权利操作所有销售数据,以便进行统计分析。
应用开发小组要求,在数据库设计方案中,必须针对实际应用功能的实现来考虑关系模式的规范化,必要时需要采用逆规范化或解除规范化的方法来保证性能要求。
请解释逆规范化方法,说明其优缺点。

选项

答案具体方案:根据分公司的不同,每个不同的分公司拥有单独的数据表。这样每个分公司在处理自己的销售数据时,和其他分公司互不干扰,性能得到提高。 问题有两点: 1)当全国总公司获取全国总的销售数据时,需要对分公司的数据进行数据union(并)操作,会带来额外的开销。 2)信息系统中执行分公司应用功能时,需要动态根据分公司来选择不同的数据库表,增加了应用程序的复杂度。

解析 本问题考查逆规范化的实际应用。
在进行数据库设计时,需要考虑应用的实际需求,合理增加冗余属性,以提升系统性能。常用的措施有:
(1)将常用的计算属性(例如,总计和最大值等)存储到数据库实体中;
(2)重新定义实体,以减少外部属性数据或行数据的开销;
(3)将关系进行水平或垂直分割,以提升并行访问效率。
除了上述逻辑结构的设计外,物理设计对系统性能也起到了非常关键的作用。
根据本题的实际问题,可采用关系水平分割进行设计。
具体方案:根据分公司的不同,每个不同的分公司拥有单独的数据表。这样每个分公司在处理自己的销售数据时,和其他分公司互不干扰,性能得到提高。
问题有两点:当全国总公司获取全国总的销售数据时,需要对分公司的数据进行数据union(并)操作,会带来额外的开销;信息系统中执行分公司应用功能时,需要动态根据分公司来选择不同的数据库表,增加了应用程序的复杂度。
转载请注明原文地址:https://jikaoti.com/ti/t767FFFM
0

最新回复(0)