2.假设关系R(A, B)和S(B, C, D)情况如下: R有20000个元组,S有1 200个元组,一个块能装40
个R的元组,能装30个S的元组,估算下列操作需要多少次磁盘块读写。
(1) R上没有索引,sclect* from R;
解:需要20000÷40 = 500次
(2) R中A为主码,A有3层B+树索引,select * from R whereA- 10; Hoto
解:块数:4(3个B+树,一个数据)
(3)嵌套循环连接RDAS;
解:S中本身有1200÷30 = 40块,需要的次数为:40 + 500 * (40 ÷ 内存分配的块数)
(4)排序合并连接RDAS,区分R与S在B属性上已经有序和无序两种情况。
解:有序的时候:(20000 ÷ 40) + (1200 ÷30) = 500 + 40 = 540 = T(有序)
无序的时候:T(排序) + T(有序)
3.对学生课程数据库,查询信息系学生选修了的所有课程名称。中为代期I- 31053
select Cname
from Student, Course, sc
where Student Sno-SC.Sno and SC.Cno=Course.Cno and Student.Sdept = 'IS':
- 试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。
解:
(1):对teacher表进行扫描,查看元组性别为女的数据
(2):可以先通过索引找到Dno = 301的,然后顺着B+树的顺序集合来得到想要的数据即可。
(3):和(1)几乎一样,对表进行扫面,找到满足条件的
(4):先对year进行处理,找到之后判断salary是否满足条件
(5):对work表进行扫描,看数据是否满足条件。
5.对于题4中的数据库模式,有如下的查询:
seleet Tname
from teacher, department, work
where teacher.tno = work tno and department.dno = work.dno and
department. dname = '计算机系' and salary> 5000
- 画出语法树以及用关系代数表示的语法树,并对关系代数语法树进行优化,画出优化后的语法树。