关系代数表达式优化步骤

本文详细介绍了如何构建和优化关系代数表达式的查询树,包括从SQL语句转换为关系代数表达式,利用等价转换规则进行优化,以及具体的解题技巧。通过对查询树的优化,实现选择和投影操作的提前执行,提高查询效率。
摘要由CSDN通过智能技术生成

关系代数表达式优化步骤

本篇主要讲解怎么画查询语法树并对其优化,因为我在学关系代数的语法树的时候,在网上找不到比较详细的教法或者技巧,最后通过答案反推原理,所以想写一篇技巧来描述一下这类题的解题方法。

先上书内讲解

1、构造查询树

第一步:把用高级语言定义的查询转换为关系代数表达式
★ 以 SELECT子向对应投影操作,以FROM字向对应笛卡尔积以 WHERE子句对应选择操作,生成原始查询树
★ SQL语句转化为原始查询树
第二步:把关系代数表达式转换为查询树。

注: 查询树是一种表示关系代数表达式的树形结构。在一个查询树中,叶子结点表示关系,内结点表示关系代数操作。查询树以自底向上的方式执行:当一个内结点的操作分量可用时,这个内结点所表示的操作启动执行,执行结束后用结果关系代替这个内结点。

2、利用等价转换规则反复地对查询表达式进行尝试性转换,将原始的语法树转換成“优化”的形式(方式的等价变换规则查书)
  1. 对每一个选择,利用等价变换规则4~9尽可能把它移到树的叶端。目的是使选择操作尽早执行
  2. 对每一个投影利用等价变换规则3,9等的一般形式尽可能把它移向树的叶端。目的是使投影操作尽早执行
  3. 对每个叶节点加必要的投影操作,以消除对查询无用的属性。
  4. 如果笛卡尔乘积后还须按连接条件进行选择操作,可将两者组合成连接操作
    选择下沉,投影随后

题目举例

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

​ SELECT

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值