关系代数

若有关系R (A,B,C,D)和S(C,D,E),则与表达式π3,4,7(σ4<5 (R×S))等价的SQL语句如下:

SELECT (17) FROM (18) WHERE (19) ; 
(17) A.A,B,C,D,E B.C,D,E C.R.A, R.B,R.C, R.D, S.E D.R.C,R.D,S.E 
(18) A.R B.S C.R, S D.RS 
(19) A.D<C B.R.D<S.C C.R.D< R.C D.S.D< R.C

  • 首先,来说一下什么是RxS。比如

   


也就是笛卡儿积,将R和S的每一行当作一个整体做一个组合运算,从列上看,相当于R和S中的列数相加,从行上看,相当于R和S的行相乘。 所以如果以后遇到这种问题,若有关系R (A,B,C,D)和S(C,D,E),问RxS的结果是几元,你可以很自信的说是7元,就是属性列到底有几个。

  • 第二, σ  选择运算

σ4<5 (R×S) 的意思在RxS的结果中,选择出满足属性列4 的值 <属性列5的值的那些行。

第四列是什么,是R中的D列,第五列是S中的C列,假如d1<c2,d1<c3, d2<c3, 那么我们得到的结果是:

只有绿色背景的三行,因为其他行都因为不满足σ4<5而过滤掉了

所以总结一下,选择 σ4<5 (R×S)是对关系(R x S)的映射,选出满足4<5关系的行。

  • 第三, π投影运算

π3,4,7(σ4<5 (R×S)),其实比较简单了,就是在σ4<5 (R×S)的结果中选择相应的列,这里对应的是第3,4,7列,

其实最后的结果就是上面这个样子,为了避免C,D两列区分不清,要加上相应的关系名。

okay,基本知识普及完毕,我们来看下这道题的解答:

首先整理一下你给的答案那段字:

(17) A.  A,B,C,D,E       B.  C,D,E      C.  R.A, R.B,R.C, R.D, S.E     D. R.C,R.D,S.E 

(18) A.  R                   B.   S           C.   R, S                               D. RS 

(19) A.  D<C              B.   R.D<S.C          C.R.D< R.C               D.  S.D< R.C

投影对应列,选择就是通常所说的查询条件,那么在这里其实就是:

SELECT R.C, R.D, S.E   from  R,S  where  R.D<S.C 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StrideBin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值