本文共 2502 字,大约阅读时间需要 8 分钟。
还有数据库恢复(小声)
本篇文章记录了第19&20次作业R有20 000个元组,S有1 200个元组,一个块能装40个R的元组,能装30个S的元组,估算下列操作需要多少次磁盘块读写。
解答:这里是要select*,没有限定条件,就直接全表扫描一遍,需要 20000 40 = 500 \frac{20 000}{40}=500 4020000=500次 。
解答:3层B+树每层的元素肯定不到40。三次查找加上最后一次读写,一共需要4次读写。
解答: c o s t = B r + B r B s / ( K − 1 ) + ( F r s ∗ N r ∗ N s ) / M r s cost=Br+BrBs/(K-1)+(Frs*Nr*Ns)/Mrs cost=Br+BrBs/(K−1)+(Frs∗Nr∗Ns)/Mrs,在这里内存缓冲区块数K和存放连接结果的块因子Mrs都不知道,故无解。
注:Br与Bs是R、S分别占用的内存块数,Frs连接选择率。解答:有序: c o s t = B r + B s + ( F r s ∗ N r ∗ N s ) / M r s cost=Br+Bs+(Frs*Nr*Ns)/Mrs cost=Br+Bs+(Frs∗Nr∗Ns)/Mrs,这里Mrs和Frs都不清楚,故无法计算。
无序则需要加上对B个块文件排序的代价: ( 2 ∗ B ) + ( 2 ∗ B ∗ log 2 B ) (2*B)+(2*B*\log_2B) (2∗B)+(2∗B∗log2B),R表有500块,S表40块,分别代入得R排序代价约为11000次,S排序代价约为480次,,总共11480次。SELECT Cname FROM Student,Course,SC WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Student.Sdept='IS';
试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。
Teacher(Tno,Tname,Tage,Tsex);
Department(Dno,Dname,Tno); Work(Tno,Dno,Year,Salary). 假设Teacher的Tno属性、Department的Dno属性以及Work的Year属性上有B+树索引,说明下列查询语句的一种较优的处理方法。解答:直接全表扫描。
解答:全表扫描,这里的条件是"<",且数据小。
解答:不等于的话只能全表扫描了,毕竟只有少数的元组不用读取
解答:利用Year的B+树索引。这里Year>2000,很容易用B+树找到。
解答:这里使用的是OR,满足子句中一种条件就行了,应该利用全表扫描。
SELECT Tname FROM Teacher,Department,Work WHERE Teacher.Tno=Work.Tno AND Department.Dno=Work.Dno AND Department.Dname='计算机系' AND Salary>5000;
画出语法树以及用关系代数表示的语法树,并对关系代数语法树进行优化,画出优化后的语法树。
解答:T1和T3都提交了,T4还未提交,T2已回滚。故T1,T3重做,T4回滚。
解答:T1重做,T3回滚。
解答:T1重做,T2,T3回滚。
解答:T1重做,T2回滚。
解答:A=8,B=7,C=11.
解答:A=10,B=0,C=11.
解答:A=10,B=0,C=11.
解答:A=10,B=0,C=11.
解答:A=10,B=0,C=11.
解答:A=0,B=0,C=0.
参考文献: [1]萨师煊,王珊,数据库系统概论.5版.北京:高等教育出版社,2014.转载地址:http://wkfz.baihongyu.com/