给定关系模式R(A1,A2,A3,A4)上的函数依赖集F={A1A3->A2,A

免费题库2022-08-02  25

问题 给定关系模式R(A1,A2,A3,A4)上的函数依赖集F={A1A3->A2,A2->A3}。若将R分解为p={(A1,A2),(A1,A3)},则该分解是(52)的。A.无损联接且不保持函数依赖B.无损联接且保持函数依赖C.有损联接且保持函数依赖D.有损联接且不保持函数依赖

选项 A.无损联接且不保持函数依赖
B.无损联接且保持函数依赖
C.有损联接且保持函数依赖
D.有损联接且不保持函数依赖

答案 D

解析 本题考查数据库知识点。设关系模式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是有损连接分解。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2407905.html

最新回复(0)