9.1 关系模式设计的问题
(1)数据冗余问题;
(2)数据更新问题;
(3)数据插入问题;
(4)数据删除问题。
解决上述种种问题的方法就是进行模式分解。
9.2 函数依赖
9.2.1 基本概念
如果有一个关系模式R(,
,...,
),X和Y为(
,
,...,
)的子集,r是R的任一具体关系,那么对于关系r中的任意一个X值,都只有一个Y值与之对应,则称X函数决定Y或Y函数依赖于X表示为:X——>Y(X为候选键)。
9.2.2 一些术语和符号
(1)如果X——>Y,但Y不包含于X,则称X——>Y是非平凡的函数依赖;如果X——>Y,但Y包含于X,则称X——>Y是平凡的函数依赖。
(2)如果X——>Y,则称X为决定因子。
(3)如果X——>Y,并且Y——>X,则记作X<——>Y。
(4)如果X——>Y,并且对于X的一个任意真子集X’都有X’Y,则称Y完全函数依赖于X,记作X
Y;如果X’——>Y,则称Y部分函数依赖于X,记作X
Y。(候选键为单属性为完全函数依赖;候选键为属性组部分为部分函数依赖,部分为完全函数依赖)
(5)如果X——>Y(非平凡函数依赖,并且YX)、Y——>Z,则称Z传递函数依赖于X。
9.2.3 函数依赖的推理规则
(1)自反律:若YX
U,则X——>Y在R上成立。即一组属性函数决定它的所有子集。
(2)增广律:若X——>Y在R上成立,且ZU,则XZ——>YZ在R上也成立。
(3)传递律:若X——>Y和Y——>Z在R上成立,则X——>Z在R上也成立。
(4)合并规则:若X——>Y和X——>Z在R上成立,则X——>YZ在R上也成立。
(5)分解规则:若X——>Y和ZY在R上成立,则X——>Z在R上也成立。
(6)为传递规则:若X——>Y和YW——>Z在R上成立,则XW——>YZ在R上也成立。
(7)复合规则:若X——>Y和W——>Z在R上成立,则XW——>YZ在R上也成立。