数据库原理与应用第九章关系规范化理论


文章目录

  • 第九章关系规范化理论
  • 9.1关系模式设计问题
  • 9.2函数依赖
    • 9.2.1基本概念
    • 9.2.2一些术语和符号
    • 9.2.3函数依赖的推理规则
    • 9.2.4闭包及候选键求解方法

9.1关系模式设计问题

一、数据冗余问题

二、数据更新问题

三、数据插入问题

四、数据删除问题

小结:出现这些问题是由于关系模式没有处理好,解决以上问题就是进行模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得良好的关系模式。

9.2函数依赖

9.2.1基本概念

一般把X函数决定Y,或Y函数依赖于X表示X——>Y

(例如:X为城市,Y为省,城市决定省,省依赖于城市)

9.2.2一些术语和符号

(1)如果X——>Y,但Y不包含于X,则称X——>Y是非平凡的函数依赖。

(2)如果Y函数不依赖与X,则记作X——/Y

(3)如果X——>Y,则称X为决定因子

(4)如果X——>Y,并且Y——>X,则记作X<——>Y

(5)如果X——>Y,并且对于X的任意真子集X'都有X'——/>Y,则称Y完全函数依赖于X,记作X——>fY;如果X'——>Y成立,则称Y部分函数依赖于X,记作X——>pY

(6)如果X——>Y(非平凡函数依赖,并且Y——/>X)、Y——>Z,则称Z传递函数依赖于X

(7)设K为关系模式R的一个属性或属性组,若满足:

K——f>A1,K——f>A2,........,K——f>An

则称K为关系模式R的候选键(或候选码)。称包含候选键中的属性为主属性,不包含在任何候选码中的属性称为非主属性。

小结:单属性是一个关系的主键/候选键时,是完全函数依赖;多属性则对应部分函数依赖。

9.2.3函数依赖的推理规则

1、Armstrong公理

(1)自反律

(2)增广律

(3)传递律

2、Armstrong公理推论

(1)合并规则

(2)分解规则

(3)伪传递规则

(4)复合规则

9.2.4闭包及候选键求解方法

一、函数依赖的闭包

1、定义:在关系模式R(U,F)中,U是R的属性全集,F是R上的一组函数依赖。所有被F逻辑蕴含的函数依赖的全集称为F+的闭包。

2、计算F+的过程

步骤一:初始F+=F

步骤二:对F+中的每一个函数依赖f,在f上应用自反性和增广性,将结果加入F+中,对F+中的一对函数依赖f1和f2,如果f1和f2可以使用传递律结合起来,则将结果加入F+中

步骤三:重复步骤二,直至F+不在增大为止。

3、例题:

设有关系模式R(A,B,C,G,H,I)及其函数依赖集F={A→B,A→C,CG→H,CG→I,B→H},判断A→H,CG→HI是否属于F+

解:

(1)A→H,由于有A→B,B→H,根据传递性,A→H

(2)CG→HI,由于CG→H,CG→I,根据合并规则,CG→HI

因此,A→H,CG→HI属于F+

二、属性依赖闭包

1、定义:设有关系模式R(U,F),U为R的属性集,F是R上的函数依赖集,X是 U的一个子集(X属于U)。用函数依赖推理规则可从F推出的函数依赖X→A中所有A的集合,称为属性集x关于F的闭包,记为X+(或X+f)。即:
X+={AIX→A能够由F根据Armstrong公理导出}

2、对关系模式R(UF),求属性集X相对于函数依赖集F的闭包X的算法如下:

步骤1:初始,X+=X。
步骤2:如果F中有某个函数依赖Y→Z满足Y属于X+。则X+=XUZ

步骤3:重复步骤2,直到X+不再增大为止。

三、候选键的求解方法

1、对于给定的关系模式R(A1,A2,``````,An)和函数依赖F,现将R的属性分为如下四类:

(1)L类:仅出现在函数依赖左部的属性

(2)R类:仅出现在函数依赖右部的属性

(3)N类:在函数依赖的左部和右部均不出现的属性

(4)LR类:在函数依赖的左部和右部均出现的属性

例如:A→B,B→C,A→C,I

A为L类,B为N类,C为R类,I为LR类

2、求解思路:

(1)L、N

(2)(L,N)+=U

(3)!        不等于LR

(4)(L,N,LR)+=U

(5)得候选键

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值