文档介绍::设有关系模式R(U),X和Y是属性集U的子集,函数依赖(functionaldependency,简记为FD)是形为X→Y的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FDX→Y在关系模式R(U)[X]表示元组t在属性集X上的值,→Y读作“X函数决定Y”,或“Y函数依赖于X”.,如果X值相同,则要求Y值也相同,即有一个X值就有一个Y值与之对应,. :对于FDX→Y,如果YX,那么称X→Y是一个“平凡的FD”,否则称为“非平凡的FD”.正如名称所示,平凡的FD并没有实际意义,“真正的”,……An是关系模式R的属性集,那么X→A1……An成立的充分必要条件是X→Ai(i=1,…,n)+(Closure):设F是函数依赖集,被F逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集F的闭包(Closure),记为F+.即F+={X→Y|F|=X→Y}.+:设F是属性集U上的FD集,X是U的子集,那么(相对于F)属性集X的闭包用X+表示,它是一个从F集使用FD推理规则推出的所有满足X→A的属性A的集合:X+={属性A|F|=X→A}:设F是在关系模式R上成立的函数依赖的集合,X→→Y,那么称F逻辑蕴涵X→Y,记为F|=X→:如果关系模式R(U)上的两个函数依赖集F和G,有F+=G+,:如果函数依赖集G满足下列三个条件,则称为G是最小依赖集. (1)G中每个FD的右边都是单属性. (2)G中没有冗余的F,即G中不存在这样的函数依赖X→Y,使得G—{X→Y}与G等价. (3)G中每个FD的左边没有冗余的属性,即G中不存在这样的函数依赖X→Y,X有真子集W使得G—{X→Y}∪{W→Y} 显然,每个函数依赖集至少存在一个等价的最小依赖集,:设R是一个关系模式,={R1,R2…Rk}.如果对R中满足F的每一个关系r,都有r=那么称分解相对于F是“无损连接分解”(position),简称为“无损分解”,否则称为“损失分解”(position).:无损分解定义有一个先决条件,(泛关系)的情况下,再去谈论分解,这就是关系数据库理论中著名的“泛关系假设”(UnivarsalRelationAssumption).有泛关系假设时,r与(r)之间的联系,(r)有两个性质:个人收集整理勿做商业用途(1)r(r)(2)设s=(r),则=riRrs={R1,R2…Rk}r1,r2,…,:“追踪”(chase)过程,用于测试一个分解是否是无损分解. 追踪过程的算法(无损分解的测试) 输入:关系模式R=A1…An,F是R上成立的函数依赖集,={R1,…,Rk}是R的一个分解. 输出:判断相对于F是否具有无损分解特征. 方法: ①构造一张k行n列的表格,每列对于一个属性Aj(1≤j≤n),每行对于一个模式Ri(1≤i≤k).如果Aj在Ri中,那么在表格的第i行第j列处填上符号aj, ②把表格看成模式R的一个关系,反复检查F中每个FD在表格中是否成立,若不成立,:个人收集整理勿做商业用途 对于F中一个FDX→Y,如果表格中有两行在X值上相对,在Y值上不相等,,那么另一个也改成aj;如果没有aj,那么用其一个bij替换另一个值(尽量把下标ij改成较小的数).一直到表格不能修改为止.(这个过程称为Chase过程)个人收集整理勿做商业用途 ③若修改的最后一张表格中有一行是全a,即a1a2…an,那么称相对于F是无损分解,:分解的另一个特征是在分解