一.关系模式设计的问题
1.数据冗余问题
2.数据更新问题
3.数据插入问题
4.数据删除问题
解决上述问题的方法就是进行模式分解,即把一个关系模式分解成两个或多个关系模式。
二.函数依赖
定义1:设有关系模式R(A1,A2,···,An),X和Y均为{A1,A2,···,An}的子集,r是R的任一具体关系,t1,t2是r中的任意两个元组。如果由t1[X]=t2[X]可以推到出t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X->Y。
术语于符号:
(1)如果XY,但Y不包含于X,则称XY是非平凡的函数依赖。如不做特别说明,我们讨论的都是非平凡函数依赖。
(2)如果Y不函数依赖于X,则记作X——Y。
(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),Y Z,则称Z传递函数依赖于X。
(7)设K为关系模式R的一个属性或属性组,若满足:KA1, KA2,···, KAn
则称K为关系模式R的候选键(或候选码)。称包含在候选键中的属性为主属性,不包含在任何候选码中的属性为非主属性。
公理1:Armstrong公理
(1)自反律(reflexivity)
若YXU,则XY在R上成立。即一组属性函数决定它的所有子集。
例如,对关系模式SC(Sno,Sname,Cno,Credit,Grade),有:
(Sno,Cno) Cno 和(Sno,Cno) Sno
(2)增广律
若 XY在R上成立,且ZU,则 XZYZ在R上也成立。
(3)传递律
若 XY和 YZ在R上成立,则 XZ在R上也成立。
Armstrong公理推论:
(1)合并规则
若 XY和 XZ在R上成立,则 XYZ在R上也成立。
(2)分解规则
若 XY和 Z Y在R上成立,则 XZ在R上也成立。
(3)伪传递规则
若 XY和 YWZ在R上成立,则 XWZ在R上也成立。
(4)复合规则
若 XY和 WZ在R上成立,则 XWYZ在R上也成立。