系分资料规范化理论在数据库设计中的应用

系统分析师 责任编辑:seewarwall 2013-12-17

添加老师微信

备考咨询

加我微信

摘要:规范化理论是数据库设计的理论基础,它可以应用到数据库设计的不同阶段中。

9.2.7规范化理论在数据库设计中的应用

规范化理论是数据库设计的理论基础,它可以应用到数据库设计的不同阶段中。

在概念结构设计阶段,可以以规范化理论为指导"规范化"E-R图中的实体。当进行概念结构设计,识别出所有的实体时,有可能在一个实体的属性间存在函数依赖。例如,假设"职工"实体中除其他属性外还包含属性"部门号"和"部门地址",有一个函数依赖:部门号→部门地址。这样的实体如果转换为关系,则是一个未达到3NF的关系。可以在概念结构设计时对E-R图中的实体进行"规范化",从"职工"实体中去掉"部门地址"属性;创建一个包含属性"部门号"、"部门地址"的"部门"实体;并建立一个"职工"实体与"部门"实体之间的联系。

函数依赖有助于我们检测到不好的E-R模型设计。如果在从E-R模型向关系转换时得到的关系不属于希望的范式,问题也许在E-R设计中。因此,如果我们在概念结构设计阶段引入规范化理论做指导,那么一般说来,在从E-R模型向关系转换时得到的关系将是规范化程度较高的。

当然规范化理论最主要的应用是在数据库逻辑结构设计阶段,当E-R模型向关系的转换完成后,逐一检查转换得到的各个关系模式,如果某些关系模式未到达应用所要求的规范化程度,则进行关系模式的分解。

前面总是强调为消除"不好"的关系模式的数据冗余等种种不良特性而对关系模式进行分解,提高关系模式的规范化程度,但有时候数据库设计者会希望要包含冗余信息的模式,即规范化程度较低的模式,目的是提高性能。例如,在银行应用中,规范化的模式是:

account(account-number,depositor-number,balance)

depositor(depositor-number,depositor-name,depositor-address)

其中account关系是关于储蓄账户的信息depositor关系是关于存款人的信息。假设每次查询储蓄账户的存款余额时,都希望同时查到存款人的姓名和地址,这就需要进行account和depositor两个关系的连接。

一个避免进行连接计算的方法是保存一个包含account和depositor的所有属性的关系

account-depositor:account-depositor(account-number,depositor-number,depositor-name,depositor-address,balance)。这使得显示账户信息更快。然而account-depositor关系的规范化程度只达到了2NF.如果一个人持有多个账户,他的姓名和地址就会重复存储多次,当他的地址变更时,就必须更新所有的副本。把一个规范化的模式变成非规范化的过程称为解除规范化(denormalization),适当地解除规范化可以提高对响应时间要求严格的系统的性能。保持高的规范化程度以避免数据冗余等毛病,还是降低规范化程度而追求高查询性能,这是一个设计权衡问题。

章节目录:系统分析师考试教材第9章数据库与数据仓库 

返回全书目录:系统分析师章节辅导教程


更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取