为什么说将R(A、B、C)解成R1=(AB)和R2=(BC)不具有无损联接

liangshutao 2004-04-19 01:39:50

书上讲解如下:
设R(A、B、C), F={A→B、B→C}
如果分解成R1=(AB)和R2=(BC),则对应的F1={ A→B },F2={ B→C },不具有无损联接。


我问:为什么说将R(A、B、C)解成R1=(AB)和R2=(BC)不具有无损联接?
...全文
123 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaojieandy 2004-04-22
  • 打赏
  • 举报
回复

A B C
------------------
AB a1 a2 b13 ----第一行
BC b21 a2 a3 --第二行

AB中由A则在一行一列处填啊a1 AB中有B在一行二烈处填a2 AB中无c在一行三列处填b13
其他同理!
loopf 2004-04-20
  • 打赏
  • 举报
回复
书上的详细说明:
1、关系模式R=A1...An,R上成立的FD集F,R的一个分解ρ={R1,...Rk}
构造k行n列的表格每列对应一个属性Aj(1≤j≤n),每行对应一个模式Ri(1≤i≤k);如果Aj在Ri中,则在表格i行j列处填aj,否则填bij

2、将表格看成R的一个关系,对于F中一个FD X->Y,如果表中有两行在X分量上相等,在Y分量上不等,则将这两行在Y分量上改成相等。若Y分量中有一个是aj,则将另一个改为aj;若没有aj,则用其中一个bij代替另一个。循环此过程,直到表格无法再修改(这个过程称chase过程)

3、若修改后的表格中有一行全为a,即a1a2...an,则ρ对于F是无损分解
maladola 2004-04-20
  • 打赏
  • 举报
回复
能解释一下你的初始表格如何构造?
loopf 2004-04-19
  • 打赏
  • 举报
回复
提供一种判断方法:
(1)构造初始表格
A B C
------------------
AB a1 a2 b13
BC b21 a2 a3

(2)由f{A->b,B->C},将表修改为
A B C
------------------
AB a1 a2 b13
BC b21 a2 a3
(3)由于表中没有全a的行,所以,此分解属于有损分解


而对于分解p{AB,AC}由以上步骤:
初始表:
A B C
------------------
AB a1 a2 b13
AC b21 a2 a3

由f{A->B,A->C}替换后,表为
A B C
------------------
AB a1 a2 a3
AC b21 a2 a3
表中有一行为全a,所以此分解为无损分解!
liangshutao 2004-04-19
  • 打赏
  • 举报
回复
更正:为什么说将R(A、B、C)分解成R1=(AB)和R2=(BC)不具有无损联接

2,958

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧