关系运算优化

关系运算的安全约束和等价性

在数据库技术中,不产生无限关系和无穷验证的运算称为安全运算,相应的表达式称为安全表达式,所采取的措施称为安全约束。

并、差、笛尔卡积、投影和选择是关系代数最基本的操作,并构成了关系代数运算的最小完备集。已经证明,在这个基础上,关系代数、安全的元组关系演算、安全的域关系演算在关系的表达和操作能力上是完全等价的。

关系代数表达式的优化

在关系代数运算中,笛卡儿积和连接运算是最费时间的。

例 设关系R和S都是二元关系,属性名分别为A,B和C,D。设有一个查询可用关系代数表达式表示:

           E1=πA(σB=C∧D='99'(R×S))

 也可以把选择条件D=‘99’移到笛卡儿积中的关系S前面:

           E2=πA(σB=C(R×σD='99' S))

 还可以把选择条件B=C与笛卡儿积结合成等值连接形式:

           E3=πA((R ⋈ σD='99' S))

  

这三个关系代数表达式是等价的,但执行的效率大不一样。显然,求El,E2,E3的大部分时间是花在连接操作上的。  

关系代数表达式的等价变换规则

 

关系代数表达式的优化算法

在关系代数表达式中,最花费时间和空间的运算是笛卡儿积和连接操作,为此,引出三条启发式规则,用于对表达式进行转换,以减少中间关系的大小。

(1)尽可能早地执行选择操作;

(2)尽可能早地执行投影操作;

(3)避免直接做笛卡儿积,把笛卡儿积操作之前和之后的一连串选择和投影合并起来一起做。 

算法2.1  关系代数表达式的启发式优化算法。

  输入:一个关系代数表达式的语法树

  输出:计算表达式的一个优化序列

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值