一、关系模式设计的问题
1.数据冗余问题
2.数据更新问题
3.数据插入问题
4.数据删除问题
总结:S-L-C关系模式不是一个好的关系模式。
解决方法:解决上述问题的方法是进行模式分解,即把一个关系模式分解为二个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得良好的关系模式。
二、函数依赖
1.基本概念
函数依赖定义:如果有一个关系模式R(A1,A2,……,An),X和Y为{A1,A2,……,An}的子集,r是R的任一具体关系,那么对于关系r中的任意一个X值,都有一个Y值与之对应,则称X函数决定Y或Y函数依赖于X。
2.一些术语和符号
(1) 如果XY ,但Y不包含于X,则称XY是非平凡的函数依赖。
(2)如果XY ,但Y包含于X,则称XY是平凡的函数依赖。
(3)如果XY ,则称X为决定因子。
(4) 如果XY , YX,则记作XY。
(5) 如果XY ,并且对于X的一个任意真子集X'都有X'不决定Y,则称Y完全函数依赖于X,记作XY;如果 X'Y成立,则称Y部分函数依赖于X,记作XY。
(6)如果 XY(非平凡的函数依赖,并且Y不决定X)、YZ,则称Z传递函数依赖于X。
(7)设K 为关系模式R的一个属性或者属性组,若满足:
KA1, KA2,..., KAn
则称K为关系模式R的候选键(或候选码)。称包含在候选键中的属性为主属性,不包含在任何候选键中的属性为非主属性。
三、函数依赖的推理规则
设有关系模式R(U,F),U为关系模式R上的属性集,F为R上成立的只涉及U中属性的函数依赖集,X,Y,Z,W均是U的子集。推理规则如下:
1.Armstrong公理
(1)自反律
若YXU,则 XY在R上成立。即一组属性函数决定它的所有子集。
(2)增广律
若 XY在R上成立,且ZU,则XZYZ在R上也成立。
(3)传递律
若 XY和 YZ在R上成立,则 XZ在R上也成立。
2.Armstrong公理推论
(1)合并规则
若 XY和 XZ在R上成立,则 XYZ在R上也成立。
(2)分解规则
若 XY和ZY在R上成立,则 XZ在R上也成立。
(3)伪传递规则
若 XY和 YWZ在R上成立,则 XWZ在R上也成立。
(4)复合规则
若 XY和 WZ在R上成立,则 XWYZ在R上也成立。