第四章名词解释·数据冗余:指同一个数据在系统中多次重复出现。·函数依赖(FD):在关系模式R(U)中,FD是形为X→Y的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FDX→Y在关系模式R(U)中成立。·平凡的FD:如果X→Y,且Y⊆X,则称X→Y是一个“平凡的FD”。·FD集F的闭包F+:被F逻辑蕴涵的函数依赖全体构成的集合,称为F的闭包,记为F+,即F+={X→Y|F⊨X→Y}。·属性集X的闭包X+:从已知的FD集F使用FD推理规则推出的所有满足X→A的属性A的集合,称为X的闭包,记为X+,即X+={属性A|X→A在F+中}。·FD的逻辑蕴涵:如果从已知的FD集F能推导出X→Y成立,那么称F逻辑蕴涵X→Y,记为F⊨X→Y。·FD集的等价:对于两个FD集F和G,有F+=G+,则称F和G是等价的依赖集。·最小依赖集:设F是属性集U上的FD集,Fmin是F的最小依赖集,那么Fmin应满足下列四个条件:Fmin+=F+;每个FD的右边都是单属性;Fmin中没有冗余的FD;每个FD的左边没有冗余的属性。·无损分解:设关系模式R,F是R上的FD集,ρ={R1,…,Rk}是R的一个分解。如果对R中满足F的每一关系r,都有r=⋈πRi(r),那么称分解ρ相对F是“无损分解”。·保持FD:设关系模式R,F是R上的FD分解,ρ={R1,…,Rk}是R的一个分解,如果有∪πRi(F)⊨F,那么称分解ρ保持FD集F。·1NF:如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是1NF的模式。·2NF:如果R是1NF的模式,且每个非主属性完全函数依赖于R的候选键,那么称R是2NF的模式。·3NF:如果R是1NF的模式,且每个非主属性都不传递依赖于R的候选键,那么称R是3NF的模式。·BCNF:如果R是1NF的模式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式4.8设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,试写出关系模式R的关键码。并说明理由。解:R的关键码为ACD。因为从已知的F,只能推出ACD→ABCD。4.94.21设关系模式R(ABC),F是R上成立的FD集,F={B→C,C→A},那i=1么分解ρ={AB,AC}相对于F,是否无损分解和保持FD?并说明理由。答:①已知F={B→C,C→A},而πAB(F)=φ,πAC(F)={C→A}显然,这个分解丢失了FDB→C②用测试过程可以知道,ρ相对于F是损失分解。4.26设关系模式R(ABCD),F是R上成立的FD集,F={AB→CD,A→D}。①试说明R不是2NF模式的理由。②试把R分解成2NF模式集。答:①从已知FD集F,可知R的候选键是AB。另外,AB→D是一个局部依赖,因此R不是2NF模式。②此时R应分解成ρ={AD,ABC},ρ是2NF模式集。4.29设有关系模式R(运动员编号,比赛项目,成绩,比赛类别,比赛主管)存储运动员比赛成绩及比赛类别、主管等信息。如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。试回答下列问题:(1)根据上述规定,写出模式R的基本FD和关键码;(2)说明R不是2NF的理由,并把R分解成2NF模式集;(3)进而分解成3NF模式集。解:(1)基本的FD有三个:(运动员编号,比赛项目)→成绩比赛项目→比赛类别比赛类别→比赛主管R的关键码为(运动员编号,比赛项目)。(2)R中有两个这样的FD:(运动员编号,比赛项目)→(比赛类别,比赛主管)比赛项目→(比赛类别,比赛主管)可见前一个FD是局部依赖,所以R不是2NF模式。R应分解成R1(比赛项目,比赛类别,比赛主管)R2(运动员编号,比赛项目,成绩)这里,R1和R2都是2NF模式。(3)R2已是3NF模式。在R1中,存在两个FD:比赛项目→比赛类别比赛类别→比赛主管因此,“比赛项目→比赛主管”是一个传递依赖,R1不是3NF模式。R1应分解成R11(比赛项目,比赛类别)R12(比赛类别,比赛主管)这样,ρ={R11,R12,R2}是一个3NF模式集。4.26设关系模式R(ABCD),在R上有五个相应的FD集及分解:(1)F={B→C,D→A},ρ={BC,AD}(2)F={AB→C,C→A,C→D},ρ={ACD,BC}(3)F={A→BC,C→AD},ρ={ABC,AD}(4)F={A→B,B→C,C→D},ρ={AB,ACD}(5)F={A→B,B→C,C→D},ρ={AB,AD,CD}试对上述五种情况分别回答下列问题:①确定R的关键码。②是否无损分解?③是否保持FD集?④确定ρ中每一模式的范式级别。解:(1)①R的关键码为BD。②ρ不是无损分解。③ρ保持FD集F。④ρ中每一模式已达到BCNF级别。(2)①R有两个关键码:AB和BC。②ρ是无损分解。③因为πACD(F)={C→A,C→D},πBC(F)=φ(没有非平凡的FD),所以ρ不保持FD,丢失了AB→C。④ρ中两模式均已达到BCNF级别。(3)①R有两个关键码:A和C②ρ是无损分解。③因为πABC(F)={A→BC,C→A},πAD(F)={A→D},所以ρ保持FD。④在模式ABC中,关键码是A或BC,属性全是主属性,但有传递依赖(A→BC,BC→A)。因此模式ABC是3NF,但不是BCNF。而模式AD显然已是BCNF。(4)①R的关键码为A。②ρ是无损分解。③因为πAB(F)={A→B},πACD(F)={A→C,C→D},从这两个依赖集推不出原来的B→C,因此ρ不保持FD,丢失了B→C。④模式AB是BCNF,模式ACD不是3NF,只达到2NF级别。(5)①R的关键码为A。②ρ不是无损分解。③因为πAB(F)={A→B},πAD(F)={A→D},πCD(F)={C→D},从这三个依赖集推不出原来的B→C,因此ρ不保持FD,丢失了B→C。④ρ中每个模式均是BCNF级别。