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

admin2022-08-02  7

问题 给定关系模式  R(A1,A2,A,A4)  上的函数依赖集  F={A1A3-小于A2,A2-小于A3}  。若将R分解为p ={( A1,A2),( A1,A3)}  ,则该分解是(  )的。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://tihaiku.com/congyezige/2408885.html

最新回复(0)