优化中的算法描述:根据排序——合并算法描述下列查询操作的实现。
Select a.cust_id,b.tot_amt,b.order_date,a.tel_no
From customer a ,sales b
Where a.cust_id=b.cust_id
1.对a表和b表按照连接属性cust_id进行排序
2.取customer表的第一个cust_id,依次扫描sales中具有相同cust_id的元组,将他们连接起来
3.直到扫描到第一个cust_id不相同时,返回student表继续扫描下一个cust_id,接着扫描sales表中的每一个cust_id,相同cust_id连接起来
4.重复过程,直到customer表扫描结束
给定图书管理数据库,包括如下三个表。
图书表Book:书号(Bno Char(20)) ,书名(Bname Char(30)),作者(Bauthor Char(15)),出版社(Bpublisher Char(15)),其中Bno为主码。
学生表Student:借书证号(Lno,Char(12)),学号(Sno Char(10)) ,姓名(Sname Char(8)),所在系(Sd Char(15)),其中借书证号为主码。
借阅表L:书号(Bno Char(20)),借书证号(Lno,Char(12)),借阅日期(Ldate Date),主码为(Bno,Lno)。
查询借阅图书名为“数据库”的学号、姓名和借阅日期,请完成以下题目。
1、写出上述查询要求的SQL语句(3分)
2、写出上述查询要求的关系代数表达式(3分)
3、画出用关系代数表示的语法树(2分)
4、画出优化后的标准语法树(2分)
1.select Sno,Sname,Ldate from Student,L,Book where Student.Lno=L.Lno and L.Bno=Book.Bno and Bname="数据库"
2.Πsno,sname,ldate(σbname=’数据库’ (student∞l∞book))
3.
4.
优化中的算法描述:根据嵌套循环算法描述下列查询操作的实现。
Select a.cust_id,b.tot_amt,b.order_date,a.tel_no
From customer a ,sales b
Where a.cust_id=b.cust_id
1.对外层循环customer中的每一个元组c,检索内层循环sales的每一个元组s
2.检查这两个元组在连接属性cust_id上是否相同
3.如果相同满足连接条件,将连个元组串联后输出
4.直到外层循环的元组全部输出