关系运算优化
2015-10-07 19:18
357 查看
关系运算的安全约束和等价性
在数据库技术中,不产生无限关系和无穷验证的运算称为安全运算,相应的表达式称为安全表达式,所采取的措施称为安全约束。
并、差、笛尔卡积、投影和选择是关系代数最基本的操作,并构成了关系代数运算的最小完备集。已经证明,在这个基础上,关系代数、安全的元组关系演算、安全的域关系演算在关系的表达和操作能力上是完全等价的。
关系代数表达式的优化
在关系代数运算中,笛卡儿积和连接运算是最费时间的。
例 设关系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 关系代数表达式的启发式优化算法。
输入:一个关系代数表达式的语法树
输出:计算表达式的一个优化序列
在数据库技术中,不产生无限关系和无穷验证的运算称为安全运算,相应的表达式称为安全表达式,所采取的措施称为安全约束。
并、差、笛尔卡积、投影和选择是关系代数最基本的操作,并构成了关系代数运算的最小完备集。已经证明,在这个基础上,关系代数、安全的元组关系演算、安全的域关系演算在关系的表达和操作能力上是完全等价的。
关系代数表达式的优化
在关系代数运算中,笛卡儿积和连接运算是最费时间的。
例 设关系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 关系代数表达式的启发式优化算法。
输入:一个关系代数表达式的语法树
输出:计算表达式的一个优化序列
相关文章推荐