假设关系R(A1,A2,A3)上的一个分解为ρ={(A1,A2),(A1,A3)},下表是关系R上的一个实例,根据实例推出R的函数依赖集F为 (问题1) ,分解 ρ (问题2) 。

函数依赖判定核心:若关系中某组属性X的每个取值,都唯一对应另一组属性Y的取值,则X→Y成立;若同一X对应多个不同Y,则该依赖不成立,复合属性组的依赖(如XY→Z)需确保每一组XY组合都对应唯一Z值。关系模式分解的无损连接判定:分解为两个子模式时,若两子模式的属性交集能函数决定至少一个子模式的属性差集,即为无损连接,否则是有损连接;多子模式分解可采用chase算法判定。保持函数依赖判定:分解后各子模式的函数依赖集的并集需能逻辑蕴涵原模式的所有函数依赖,若存在原依赖无法被蕴涵,则分解不保持依赖。
本题考察的是关系数据库的函数依赖判定与无损连接分解。
问题 1:
实例中三元组为(a,a,d)、(a,b,e)、(a,c,f)。A1恒为a,但A2取a/b/c、A3取d/e/f。
A选项A1→A2:当A1=a时,对应多个A2,不唯一,故不成立。
B选项A1A3→A2,A1A2→A3:对每个二元组(A1,A3)分别对应唯一A2,如(a,d)→a、(a,e)→b、(a,f)→c;对每个二元组(A1,A2)分别对应唯一A3,如(a,a)→d、(a,b)→e、(a,c)→f,均成立,为正确答案。
C选项A1→A3:当A1=a时,对应多个A3,不唯一,不成立。
D选项A1→A2,A1→A3:两者都不成立,因此该组合也不成立。
因此选择B。
问题 2:
无损分解判定要点:两个子模式R1(X)、R2(Y)的交集X∩Y若能函数决定至少一方的差集(X−Y或Y−X),则无损;否则有损。此处R1(A1,A2)、R2(A1,A3),交集为**{A1},差集分别为{A2}与{A3}。由小题1可知A1→A2不成立且A1→A3不成立**,因此不满足无损条件,为有损连接。
A选项是无损连接的:与上述判定相反,错误。
B选项是保持函数依赖的:将F投影到(A1,A2)与(A1,A3)后,均得不到跨关系的依赖A1A2→A3或A1A3→A2,不保持依赖,错误。
C选项是有损连接的:符合判定,正确。
D选项无法确定是否保持函数依赖:依据小题1已可确定,错误。
因此选择C。
