9.1 关系模式设计问题
数据冗余问题
数据更新问题
数据插入问题
数据删除问题
解决方法:模式分解(把一个关系模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得良好的关系模式)
9.2函数依赖
基本概念
设有关系模式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,记为XY。
一些术语和符号
设有关系模式R(A1,A2,....,An),X和Y均为{A1,A2,....,An}的子集,则有以下结论:
(1)如果XY,但Y不包含于X,则称XY是非平凡的函数依赖。如不做特别说明,我们讨论的都是非平凡的函数依赖。
(2)如果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(非平凡函数依赖,并且YX)、YZ,则称Z传递函数依赖于X。
(7)设K为关系模式R的一个属性或属性组,若满足:
KA1,KA2,...,KAn
则称K为关系模式R的候选键(或候选码)。称包含在候选键中的属性为主属性,不包含在任何候选码中的属性称为非主属性。
函数依赖的推理过程
Armstrong公理
(1)自反律
若YXU,则XY在R上成立。即一组属性函数决定它的所有子集。
(2)增广律
若XY 在R 上成立,且属性集Z 包含于属性集U,则XZYZ 在R 上成立。
(3)传递律
若XY 和YZ在R 上成立,则则X Z 在R 上成立。
Armstrong公理推论
(1)合并规则
若XY和XZ在R上成立,则XYZ在R上也成立。
(2)分解规则
若XW和ZY在R上成立,则XZ在R上也成立。
(3)伪传递规则
若XY和YWZ在R上成立,则XWZ在R上也成立。
(4)复合规则
若XY和WZ在R上成立,则XWYZ在R上也成立。