列表

详情


给定关系模式R(A,B,C,D)、S(C,D,E),与

等价的SQL语句如下:
    SELECT(  )FROM R, S WHERE (  );
下列查询B=“信息”且E=“北京”的A、B、E的关系代数表达式中,查询效率最高的是(  )。

第 1 问

A. A,C,S.C

B. A,B,E

C. A,R.C,E

D. A,R,C,S.D

第 2 问

A. B=软件工程OR R.C=S.C AND R.D=S.D

B. B=’软件工程’OR R.C=S.C AND R.D=S.D

C. B=’软件工程’OR R.C =S.C OR R.D =S.D

D. B=’软件工程’AND R.C =S.C AND R.D=S.D

第 3 问

A.

B.

C.

D.

参考答案: C D B

详细解析:

该关系代数表示的意思是:先关系R与关系S进行自然连接运算,形成新的结果集,然后在新的结果集中进行选择运算,选择运算的条件是 第2列的值为“软件工程”,接下来再选择运算的结果集上再进行投影运算,选择 1 3 5列。
由于R与S关系中,存在重复的列C、D,因此需要在加上关系的名称,表示该列来自哪个关系,如: R.C。
自然连接运算,要求在结果集中消除重复的列,即R与S关系中C、D列,只能保留一个关系中的C、D列,所以自然连接运算后的关系列一个有:5列 即A、B、R.C(或者S.C)、R.D(或者S.D)、E。
第二问是要指定连接的条件:选择运算的连接条件为:第2列的值为软件工程,B=’软件工程’, 同时需要进行自然连接运算,因此条件中需要R.C =S.C  AND      R.D=S.D,因此:该题要选B=’软件工程’     AND       R.C =S.C    AND      R.D=S.D
优化的准则
提早执行选取运算。对于有选择运算的表达式,优化的原则可能先执行选择运算的等价表达式,以得到较小的中间结果,减少运算量和从外存读块的次数
合并乘积与其后的选择运算为连接运算。在表达式中,当乘积运算后面是选择运算时,应该合并为连接运算,使选择与乘积一道完成,以避免完成乘积后,再对一个大的乘积关系进行选择运算
将投影运算与其后的其他运算同时进行,以避免重复扫描关系
将投影运算和其后的二目运算结合起来,使得没有必要为去掉某些字段再扫描一遍关系
在执行连接前对关系做适当的预处理,就能快速地找到要连接的元组。方法有两种:即索引连接法和排序合并连接法
存储公共子表达式。公共子表达式的结果应存于外存(中间结果),这样,当从外存读出它的时间比计算时间少时,就可节约操作时间

上一题