上海大学数据库原理第二学期复习资料<数据库原理二>考试复习资料上海大学1设关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个?其中平凡的FD有多少个?非平凡的FD有多少个?解:这个问题是排列组合问题。FD形为XY,从n个属性值中选择属性组成X共有C0n+C1n+⋯+Cnn=2n种方法;同理,组成Y也有2n种方法。因此组成XY形式应该有2n·2n=4n种方法。即可能成立的FD有4n个。平凡的FD要求YX,组合XY形式的选择有:C0n·C00+C1n·(C01+C11)+C2n·(C02+C12+C22)+⋯+Cnn(C0n+C1n+⋯Cnn)=C0n·20+C1n·21+C2n·22+⋯+Cnn·2n=(1+2)n=3n即平凡的FD有3n。因而非平凡的FD有4n-3n个。5.3对函数依赖X→Y的定义加以扩充,X和Y可以为空属性集,用φ表示,那么X→φ,φ→Y,φ→φ的含义是什么?答:据推理规则的自反律可知,Xφ和φφ是平凡的FD,总是成立的。而φY表示在当前关系中,任意两个元组的Y值相等,也就是当前关系的Y值都相等。5.4已知关系模式R(ABC),F是R上成立的FD集,F={A→B,B→C},试写出F的闭包F+。解:据已知条件和推理规则,可知F+有43个FD:AφABφACφABCφBφCφAAABAACAABCABBCCABABBACBABCBBCφφACABCACCABCCBBCAABABABACABABCABBCфAACABACACACABCACBCBABCABBCACBCABCBCBCCAABCABABCACABCABCABCBCBC5.5设关系模式R(ABCD),如果规定,关系中B值与D值之间是一对多联系,A值与C值之间是一对一联系。试写出相应的函数依赖。解:从B值与D值之间有一对多联系,可写出函数依赖DB,从A值与C值之间是一对一联系。可写出函数依赖AC和CA。5.6试举出反例说明下列规则不成立:①{A→B}?{B→A}②{AB→C,A→C}?{B→C}③{AB→C}?{A→C}答:设有三个关系:r1ABr2ABCr3ABC1121212321222134323(1)在关系r1中,A→B成立,但B→A不成立。(2)在关系r2中,AB→C和A→C成立,但B→C不成立(3)在关系r3中,AB→C成立,但A→C不成立。5.7设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,试写出关系模式R的关键码。并说明理由。解:R的关键码为ACD。因为从已知的F,只能推出ACD→ABCD。5.8设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},①试写出属性集BD的闭包(BD)+。②试写出所有左部是B的函数依赖(即形为“B→?”)。解:①从已知的F,可推出BD→BCD,所以(BD)+=BCD。②由于B+=BC,因此左部是B的FD有四个:B→φ,B→B,B→C,B→BC。5.9设关系模式R(ABC)分解成ρ={AB,BC},如果R上的FD集F={A→B},那么这个分解是损失分解。试举出R的一个关系r,不满足mρ(r)=r。解:这个反例r可以举测试时的初始表格:ABCABa1a2b13BCb21a2a3πAB(r)?πBC(r)有四个元组:ABCa1a2b13a1a2a3b21a2b13b21a2a3即mρ(r)≠r。5.10试解释数据库“丢失信息”与“未丢失信息”两个概念。“丢失信息”与“丢失数据”有什么区别?答:数据库中丢失信息是指r≠mρ(r),未丢失信息是指r=mρ(r)。丢失信息是指不能辨别元组的真伪,而丢失数据是指丢失元组。5.11设关系模式R(ABC),F是R上成立的FD集,F={A→C,B→C},试分别求F在模式AB和AC上的投影。答:πAB(F)=φ(即不存在非平凡的FD)πAC(F)={A→C}5.12设关系模式R(ABC),F是R上成立的FD集,F={B→A,C→A},ρ={AB,BC}是R上的一个分解,那么分解ρ是否保持FD集F?并说明理由。答:已知F={B→A,C→A},而πAB(F)={B→A},πBC(F)=φ,显然,分解ρ丢失了FDC→A。5.13设关系模式R(ABC),F是R上成立的FD集,F={B→C,C→A},那么分解ρ={AB,AC}相对于F,是否无损分解和保持FD?并说明理由。答:①已知F={B→C,C→A},而πAB(F)=φ,πAC(F)={C→A}显然,这个分解丢失了FDB→C②用测试过程可以知道,ρ相对于F是损失分解。5.14设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C,A→D,D→C},ρ={AB,AC,BD}是R的一个分解。①相对于F,ρ是无损分解吗?为什么?②试求F在ρ的每个模式上的投影。③ρ保持F吗?为什么?答:①用测试过程可以知道,ρ相对于F是损失分解。②πAB(F)={A→...