急,两道关于无损分解的题目
有两道关于无损分解的题目,题目与标准答案出自《数据库系统教程习题解答及上机指导》,丁宝康编著,高等教育出版社出版,P68页,4.18和4.19
1.设关系模式R(ABCD),F是R上成立的FD集,F={A->B,B->C,A->D,D->C},
ρ={AB,AC,BD}是R的一个分解。相对于F,ρ是否无损分解?为什么?
标准答案:用测试过程可以知道,ρ相对于F是损失分解。
我的解法:
由chase过程,建立表格
       A   B    C    D
AB   a1  a2   b13  b14
AC   a1  b21  a3   b24
BD   b31 a2   b32  a4
由B->C,表格变为
       A   B    C    D
AB   a1  a2   a3   b14
AC   a1  b21  a3   b24
BD   b31 a2   b32  a4
由A->D,表格变为
A   B    C    D
AB   a1  a2   a3   a4
AC   a1  b21  a3   b24
BD   b31 a2   b32  a4
存在一行全部为a,因此是无损分解。
2.设关系模式R(ABCD),R上的FD集为F={A->C,D->C,BD->A},试说明ρ={AB,ACD,BCD}相对于F是损失分解的理由。
标准解答:据已知的F集,不可能把初始表格修改为有一个全a行的表格,因此ρ相对于F是损失分解。
我的解法:
由chase过程,建立表格
        A   B    C    D
AB    a1  a2  b13   b14
ACD   a1  b12  a3   a4
BCD   b31 a2   a3   a4
由BD->A,表格变为
        A   B    C    D
AB    a1  a2  b13   b14
ACD   a1  b12  a3   a4
BCD   a1  a2   a3   a4
存在一行全部为a,因此是无损分解。
提问:
1.什么是标准答案提到的“测试过程”?我只会用 chase过程来判断是否是无损分解,是否有其它的判断方法?
2.为什么不能用chase过程来解题?第一、二题我的chase过程解法是否有误?
请大家帮忙看看如何解决,谢谢。
------解决方案--------------------帮顶。
我学oracle,把数据库的理论知识都忘完了。
------解决方案--------------------唉,对牛弹琴。
你根本就没有理解什么是无损分解,为什么叫无损分解。
你以为我是通过什么7788的过程判断的?
告诉你我是通过定义。理解了一件事情的定义,才能无往不利。
chase过程无非是定义延伸出的一个自动化过程罢了。
------解决方案--------------------
楼主的推断方法出错了,你仔细看一下你的第一题:
        A      B        C       D  
AB       a1     a2       b13     b14  
AC       a1     b21      a3      b24  
BD       b31    a2       b32     a4  
由B-> C,表格变为  
         A      B        C        D  
AB       a1     a2       a3       b14  
AC       a1     b21      a3       b24  
BD       b31    a2       b32      a4  
由A-> D,表格变为  
         A      B        C        D  
AB       a1     a2       a3       a4  
AC       a1     b21      a3       b24  
BD       b31    a2       b32      a4  
上表中,在由B->C时,你的表格就已经变错了,
可以按以下的表格做:
        A      B        C       D  
AB       a1     a2       b13     b14  
AC       a1     b21      a3      b24  
BD       b31    a2       b32     a4  
A->B
        A      B        C       D  
AB       a1     a2       b13     b14  
AC       a1     a2       a3      b24  
BD       b31    a2       b32     a4  
B->C
        A      B        C       D  
AB       a1     a2       a3      b14  
AC       a1     a2       a3      b24  
BD       b31    a2       a3      a4  
A->D
        A      B        C       D  
AB       a1     a2       a3      b14  
AC       a1     a2       a3      b14  
BD       b31    a2       a3      a4  
D->C
        A      B        C       D  
AB       a1     a2       a3      b14  
AC       a1     a2       a3      b14  
BD       b31    a2       a3      a4  
该题四个步骤如上所示,最后表格显示,没有哪一行是全a的,所以,R是F的有损分解.
第二题自己分析一下吧.