文章目录
第九章关系规范化理论
9.1关系模式设计问题
9.2函数依赖
9.2.1基本概念
9.2.2一些术语和符号
9.2.3函数依赖的推理规则
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)复合规则