数的和式分解Java_【Java笔试】对数据库中的分解是否为无损连接和是否保持函数依赖的判定-由牛客网试题引申-保姆式教学...

【牛客网数据库原理题目】设关系模式R(A,B,C),F是R上成立的FD集,F={A→B,C→B},ρ={AB,AC}是R的一个分解,那么分解ρ()?

正确答案:C你的答案:A(错误)

( A ) 保持函数依赖集F

( B ) 丢失了A→B

( C ) 丢失了C→B

( D ) 丢失了B→C

个人背景:牛客网的一道数据库原理做错,本人没学过数据库,现在要查资料弄懂这道题

1、牛客网数据库原理题目

设关系模式R(A,B,C),F是R上成立的FD集,F={A→B,C→B},ρ={AB,AC}是R的一个分解,那么分解ρ( )?

正确答案:C你的答案:A(错误)

( A ) 保持函数依赖集F

( B ) 丢失了A→B

( C ) 丢失了C→B

( D ) 丢失了B→C

ccaddf65dcccf4d0dee7654158df649b.png

牛客网这个题目,在你看完本文以后应该就会解,算是最简单的。

【解析如下】:

设①U1=AB,A→B,②U2=AC,但FD函数依赖集中没有对应关系,

因此我们不能推出C→B,即我们丢失了C→B。

所以也不具有保持函数依赖的特性。

为了保证分解后的关系模式与原关系模式等价,我们要判定:1)分解后形成的行的关系模式中是否为无损连接、2)是否保持函数依赖

然后我们再扩展一些题目中没有的,判断一下分解后的关系模式是否为无损连接

一、无损连接的判定:

1)如果分解后的的关系模式是形如{U1,U2}这,里面只有两个,那很好做,就判断U1∩U2→U1-U2或U1∩U2→U2-U1是否成立,成立的话肯定是无损连接。

本题已知ρ={AB,AC}是R的一个分解,即R分解以后是ρ={AB,AC},设U1=AB,U2=AC,然后开始判断。

判断无损连接过程:AB∩AC=A,又AB-AC=B,AC-AB=C,因为F={A→B,C→B}

所以所以AB∩AC→AB-AC,相当于或的左边成立,'或’是有真则真,所以是无损连接。

但ρ这个分解又不具有保持函数依赖的特性,因此分解后的关系模式与原关系模式不等价

保姆式教学:两个集合相减

两个集合的相减.

问:A={-1,2,4,9,10},B={-1,-2,0,1,2,3,4}.A-B=?,B-A=?

答:A-B={9,10},B-A={-2,0,1,3}.

088898fe00c0ec2815e014e74aa487da.png

![作业帮](https://img-blog.csdnimg.cn/20191208140054986.png#pic_center =350x400)

我用这种方式,删了优快云图片的水印,再修改为水平居中并且带尺寸的图片。

下面这段是查了优快云,感觉是优快云博客、百度里讲无损连接分解和是否保持函数依赖最好的,是直接解释这道题的

2、数据库中的分解是否为无损连接和是否保持函数依赖的判定

转载自legendaryhaha的文章《数据库中的无损连接分解和是否保持函数依赖的判定》2018-06-11 17:48:45 legendaryhaha 阅读数 18661

https://blog.youkuaiyun.com/legendaryhaha/article/details/80649234

9b9d288d99caa4f54470d2057c20e41b.png

为了保证分解后的关系模式与原关系模式等价,我们要判定:1)分解后形成的行的关系模式中是否为无损连接、2)是否保持函数依赖

55e83a36b64feb8754b8a69f5a08c49a.png

一、无损连接的判定:

1)如果分解后的的关系模式是形如{U1,U2}这,里面只有两个,那很好做,就判断U1∩U2→U1-U2或U1∩U2→U2-U1是否成立,成立的话肯定是无损连接。

如果关系模式内超过两个,请参考原文,我没有转载过来。避免弄错重点。

本文只摘抄了关系模式内含有两个的情况

047b380124e528ddd1993982fbf45c13.png

。。。。如上文所说,后面的判定过程省略,在原文里,大家自己去看看。我稍后也会全文转载过来

二、是否保持函数依赖?

这个的判断方法就比较简单了,还是这道题,有属性集,ABCDEF,存在这样

的函数依赖集{A->BC , CD->E , B->D , BE->F , EF->A},然后有这样的分解

{ABC , BD , BEF}。

设U1=ABC,A->BC,

U2=BD,B->D ,

U3=BEF,BE->F ,即我们不能推出 CD->E ,EF->A,

所以也不具有保持函数依赖的特性。

3、背景知识:函数依赖 ( Functional Dependency,FD)

从函数依赖的一套推理规则。由ARMSTRONG提出,即ARMSTRONG公理

公理1:自反律–如果B->A,则A->B

公理2:增广律–如果A->B,则AC->BC

公理3:传递律–如果A->B,且B->C,则A->C

由上面公理得到推论

推论1:自合规则–A->A

推论2:分解规则–如果A->BC,则A->B,A->C

推论3:合并规则–如果A->B,A->C,则 A->BC

推论4:复合规则–如果A->B,C->D,则 AC->BD

范例:设有关系模式R,有A,B,C,D,E,F是它的属性集中的子集,R满足下列函数依赖:

F={A->BC,CD->EF},证明:函数依赖AD->F成立。

证明:

1)A->BC 给定

2)A->C 分解规则

3)AD->CD 增广律

4)CD->EF 给定

5)AD->EF 传递律(由第3,4得)

6)AD->F 分解规则

上面这段是百度知道摘抄的,与这道题无直接关系

4、最后给读者的话:

本文可能有错别字,欢迎指出。我没学过数据库,有错误的地方,也欢迎大家评论。感谢大家的观看!

这是我的赞赏码,如果答案对你有帮助,请支持一下原创作者

8ff1154b5744bf4e966fe2c66908968c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值