admin管理员组

文章数量:1794759

数据库作业19:第九章: 关系查询处理和查询优化 课后习题

数据库作业19:第九章: 关系查询处理和查询优化 课后习题

B:占用的块数;Br,Bs分别代表R,S占用的块数; Frs,Mrs分别是连接选择率,存放连接结果因子表示每块可存放的结果元组数 2、假设关系R(A,B)]和S(B,C,D)情况如下:R有20000个元组,S有1200个元组,一个块能装40个R的元组,能装30个S的元组,估算下列操作需要多少次磁盘块读写。 (1)R上没有索引,

select * from R;

只在R上查询时:20000/40=500(块);

(2)R中A为主码,A有三层B+树索引, B+树图文详解,这篇文章将B+树用户简单易懂的方式解释,利于更好的复习B+树的相关知识。

select * from R where A=10;

选择条件是“码=值”,采用该表主索引,如果是B+树,层数为L,需要存取B+树中从根结点到叶结点L块,加上基本表中该元组所在的一块,cost=L+1 3+1=4(块)

(3)嵌套循环连接 R ⋈ S R \\Join S R⋈S; 一个块可以装40个R的元组,30个S的元组,但是不知道在内存中分别要存放多少块的R元组和多少块的S元组。只知道外层循环读多少遍,不知道内层循环,所以无法进行估算。

(4)排序合并连接 R ⋈ S R \\Join S R⋈S,区分R与S在B属性上已经有序和无序两种情况。 有序:由于表已经有序了,R和S 都只需要扫描一遍即可。20000/40+1200/30=540. 无序:需要提前将表排序,所以执行时间需要加上对两个表的排序时间。 540+(2*540)+(2 * 540 * log ⁡ 2 540 \\log_2 540 log2​540)

3、对学生-课程数据库,查询信系学生选修了的所有课程名称。

SELECT Cname FROM Student,Course,SC WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno AND Student.Sdept='IS';

试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。 语法树: 关系代数语法树: 优化后的关系代数语法树: 4、对于下面的数据库模式: Teacher( T n o ‾ \\underline{Tno} Tno​,Tname,Tage,Tsex); Department( D n o ‾ \\underline{Dno} Dno​,Dname,Tno); Work( T n o ‾ \\underline{Tno} Tno​,Dno,Year,Salary); 假设Teacher的Tno属性,Department的Dno属性以及Work的Year属性上有B+树索引,说明下列查询语句的一种较优的处理方法。 (1)

select * from Teacher where Tsex='女';

在Tsex上没有索引,采用全表扫描方法。 (2)

select * from Department where Dno<301;

B+树索引。 (3)

select * from Work where Year<>2000;

<>操作法表示的是不等于,与!=等效。 B+树索引。按照条件查找,则会有大块数据 满足或不满足条件,就可以不用在判别了,直接输出。 (4)

select * from Work where Year>2000 and Salary<5000;

B+树索引。按照Year索引后,再判断Salary是否满足条件。 (5)

select * from Work where Year<2000 or Salary<5000;

全表扫描方法。 Salary上没有索引,只能全表扫描。

5、对于题4 的数据库模式有如下查询:

select Tname from Teacher,Department,Work where Teacher.Tno=Work.Tno and Department .Dno=Work.Dno and Department.Dname='计算机系' and Salary>5000.

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

关系代数表示的语法树: 优化后的关系代数语法树:

B+树的特征: 1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。 2.所有的叶子结点中包含了全部元素的信,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。 3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。 B+树的优势: 1.单一节点存储更多的元素,使得查询的IO次数更少。 2.所有查询都要查找到叶子节点,查询性能稳定。 3.所有叶子节点形成有序链表,便于范围查询。

这次做题复习了一下以前B+树的相关知识,要是不复习的话,都快忘光了!

本文标签: 作业课后第九章习题关系