期末复习之查询优化

优化中的算法描述:根据排序——合并算法描述下列查询操作的实现。

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.直到外层循环的元组全部输出

 

 

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值