问答题 设关系模式R(A,B,C,D,E,F),函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}。
1)求出R的候选码及F的最小函数依赖集。
2)将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性。
【正确答案】
【答案解析】R的候选码为BD
①将F中的函数依赖都分解为右部为单属性的函数依赖
F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}
②去掉F中冗余的函数依赖
判断A→C是否冗余
设:G1={C→A,B→A,B→C,D→A,D→C,BD→A},得(A) G1+=A C不属于(A) G1+ A→C不冗余判断C→A是否冗余
设:G2={A→C,B→A,B→C,D→A,D→C,BD→A},得(A) G2+=C
A不属于(C) G1+ C→A不冗余判断B→A是否冗余
设:G3={A→C,C→A,B→C,D→A,D→C,BD→A},得(B) G3+=BCA
A属于(B) G3+ B→A冗余判断B→C是否冗余
设:G4={A→C,C→A,D→A,D→C,BD→A},得(B) G4+=B
C不属于(B) G4+ B→C不冗余判断D→A是否冗余
设:G5={A→C,C→A,B→C,D→C,BD→A},得(D) C5+=DCA
A属于(D) G5+ D→A冗余判断A→C是否冗余
设:G6={A→C,C→A,B→C,BD→A},得(D) G6+=D
C不属于(D) G6+ D→C不冗余判断BD→A是否冗余
设:G7={A→C,C→A,B→C,D→C},得(BD) G7+=BDCA
A属于(BD) G7+