数据库第9章作业——关系查询处理和查询优化

Posted Fmm-PMO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库第9章作业——关系查询处理和查询优化相关的知识,希望对你有一定的参考价值。

这一章的题,我想用一个字形容——“绝”。。。
先复习一下查询树的启发式优化规则

(1)选择运算应尽可能先做
(2)把投影运算和选择运算同时进行
(3)把投影同其前或后的双目运算结合起来,没有必要为了去掉某些字段而扫描一遍关系
(4)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。
(5)找出公共子表达式。

本章作业是第2、3、4、5题。
2题

假设关系R(A,B)和S(B,C,D)情况如下:R有20000个元组,S有1200个元组,一个块能装40个R的元组,能装30个S的元组,估算下列操作需要多少次磁盘块读写。
(1)R上没有索引,select * from R;
(2)R中A为主码,A有3层B+树索引,select * from R where A = 10;
(3)嵌套循环连接R⋈S;
(4)排序合并连接R⋈S,区分R与S在B属性上已经有序和无序两种情况。

3题

对学生-课程数据库,查询信息系学生选修了的所有课程姓名

select Cname
from Student,Course,SC
where Student.Sno=SC.Sno and SC.Cno=Course.Cno and Student.Sdept='IS';

试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。

4题

对于下面的数据库模式
Teacher(Tno, Tname, Tage,Tsex); Department(Dno, Dname, Tno); Work(Tno, Dno, Year, Salary) 假设Teacher的Tno属性,Department的Dno属性以及Work的Year属性上有B+树索引,说明下列查询语句的一种较优的处理方法。
(1)select * from teacher where Tsex = '女'
(2)select * from department where Dno < 301
(3)select * from work where Year <> 2000
(4)select * from work where year > 2000 and salary < 5000
(5)select * from work where year < 2000 and salary < 5000

5题

对于题4中的数据库模式,有如下查询

select Tname
from teacher,department,work
where teacher.tno = work.tno and department.dno = work.dno
and department.dname = '计算机系' and salary > 5000

画出语法树以及用关系代数表示的语法树,并对关系代数语法树进行优化,画出优化后的语法树。

答案

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

以上是关于数据库第9章作业——关系查询处理和查询优化的主要内容,如果未能解决你的问题,请参考以下文章

数据库 chapter 9 关系查询处理和查询优化

作业——关系查询处理和查询优化

作业——关系查询处理和查询优化

作业——关系查询处理和查询优化

第04章 Schema与数据类型优化

第九章 关系查询处理和查询优化——关系数据库系统的查询处理