本题考查数据库知识点。设关系模式R(A1,A2,…,An),R的一个分解ρ={R1,R2,…,R },是否无损联接分解的判断方法如下:
第一步.构造一张k行n列的表格,每列对应一个属性Aj(1≤j≤n),每行对应一个模式Ri(1≤i≤k)。如果Aj在Ri中,那么在表格的第i行第j列处填上aj,否则填上符号bij。
根据此步骤,画出本题的初始表格如下(本题中n为4,k为2,所以表格核心部分为2行4列):
上表中,11号格子对应的列标A1在第1行的行标R1(A1, 2)中,故11号格子的值为a1;12号格子对应的列标A2在第
1行的行标R1(A1, 2)中,故12号格子的值为a2;13号格子对应的列标A3不在第1行的行标R1(A1, 2)中,故13号格子的值为b13;14号格子对应的列标A4不在第1行的行标R1(A1, 2)中,故14号格子的值为b14;21号格子对应的列标A1在第2行的行标R2(A1, 3)中,故21号格子的值为a1;22号格子对应的列标A2不在第2行的行标R2(A1, 3)中,故22号格子的值为b22;23号格子对应的列标A3在第2行的行标R2(A1, 3)中,故23号格子的值为a3;24号格子对应的列标A4不在第2行的行标R2(A1, 3)中,故24号格子的值为b24。
第二步.把表格看成模式R的一个关系,反复检查F中每个FD(函数依赖式)在表格中是否成立,若不成立,则修改表格中的元素。修改方法如下:对于F中一个FD“X->Y”,如果表格中有行在X分量上相等,在Y分量上不相等,那么把对应行在Y分量上改成相等。如果Y的分量中有一个是aj,那么另一个也改成aj;如果没有aj,那么用其中的一个bij替换另一个(尽量把ij改成较小的数),一直到表格不能修改为止。
根据本题F={A1A3→A2,A2→A3},依赖式A1A3→A2中的左部对应第1步中画出的初始表格的第1列和第3列的组合,即A1A3两列,两列对应的行值组合分别是a1b13与a1a3,两行值明显不相等,则依赖式A1A3→A2右边A2对应的表格列值不需要修改;再看依赖式A2→A3,A2列的值为a2和b22,两值不相等,故A3的值也不需要进行修改。
经过本步骤的处理,表格内容依然不变。
第三步.若修改的最后一张表格中有一行全为a,即a1,a2,a3,……,a ,那么ρ相对于F是无损连接分解,否则是有损连接分解。
本题对应的表格中,可看出没有任何一行的值全为a,故ρ相对于F是有损连接分解。