若有关系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
答案是D,C,B。请问各位原因为何?π3,4,7与σ4<5 (R×S)都代表什么意思? 展开
若有关系R (A,B,C,D)和S(C,D,E),则与表达式π3,4,7(σ4<5 (R×S))等价的SQL语句是SELECT R.C,R.D,S.E FROM R, S WHERE R.D<S.C 。
两个集合X和Y的笛卡尔积,表示为X×Y,是指第一个对象是X的成员,而第二个对象是Y的所有可能有序对的其中一个成员。假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。等价的SQL语句是SELECT * FROM R, S。
σ4<5是限制关系代数,用对关系的运算来表达查询。等价的SQL语句是R.D<S.C。
π3,4,7是获取查询表里的对应的数据。等价的SQL语句是 R.C,R.D,S.E。
扩展资料:
关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的,所以按照运算符的不同,主要将关系代数分为传统的集合运算和专门的关系运算两类。
笛卡尔积RxS是一个(m+n)目关系,前n列是关系R的属性,后n列是关系S的属性。每个元组的前n个属性是关系R的一个元组,后m个属性是关系S的一个元组。若关系R有p个元组,关系S有q个元组,关系RxS有pxq个元组,且每个元组的属性为(m+n)。
你这个答案文字写的也是醉了,完全看不清楚,最近在复习这方面的一个知识点,要去参加考试,顺便解答一下,方便以后的朋友查看。
解答之前,
首先,来说一下什么是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
本答案是从基础知识开始分析,比较适合入门的人群,谢谢大家。
18、R,S
19、R.D<S.C
R*S是等值连接 所以R*S(R.A, R.B, R.C, R.D, S.C, S.D, S.E)
π3,4,7简单的讲就是找上面括号里的第几位
σ4<5同上,一目了然