- 3
- 0
- 约2.79千字
- 约 33页
- 2019-02-22 发布于湖北
- 举报
第六章?查询处理与优化 ? 6.2关系代数表达式的等价变换规则 5.在执行连接前对关系适当预处理 快速找到要连接的元组。 方法:索引连接法、排序合并连接法。 1.连接、笛卡儿积交换率 设 E1和 E2是关系代数表达式,F 是连接运算的条件,则有 2.连接、笛卡儿积结合率 设 E1,E2,E3是关系代数表达式,F1,F2是连接运算的条件,则有 3.投影的串接定律 设 E 是关系代数表达式,A1,…,An和 B1,…,Bm是属性名,且 B1,…,Bm是 A1,…,An的子集。则有 4. 选择的串接定律 设 E 是关系代数表达式,F1,F2是选取条件表达式,选择的串接定律说明选择条件可以合并,则有 5. 选择与投影的交换律 设 E 是关系代数表达式,F 是选取条件表达式,并且只涉及 A1,…,An属性,则有 6.选择与笛卡儿积的交换律 若 F 涉及的都是 E1中的属性,则 7.选择与并的交换律 设 E = E1∪ E2,E1,E2有相同的属性,则 σF(E1∪ E2)≡ σF(E1)∪ σF(E2) 8. 选择与差的交换律 设 E1,E2有相同的属性,则 σF(E1- E2)≡ σF(E1) - σF ( E2 ) 9.投影与笛卡儿积的交换律 设 E1,E2是两个关系表达式,A1,…,An是 E1中的属性,B1,…,Bm是 E2中的属性,则 10.投影与并的交换律 设 E1,E2有相同的属性,则 πA1,…,An(E1∪ E2)≡ πA1,…,An(E1)∪ πA1,…,Am(E2) 6.3 关系代数表达式的优化算法 * * 查询优化关系系统与关系模型密切相关。 对于一个给定的查询问题会有多种等价的实现办法,能否找出一个与之等价而操作时间又少的表达式? 即,究竟哪一种方法是最优的? 这就是查询优化要讨论的问题。 6.1 关系代数表达式的优化问题 一、查询处理 从数据库中提取数据的一系列活动。包括: 1)将高级数据库语言表示的查询语句翻译成为 能在文件系统层次上实现的表达式; 2)为优化查询进行各种转换; 3)查询的实际执行。 通常取决于磁盘的访问,磁盘的访问比内存访问速度要慢。对于一个给定的查询,可以有许多可能的处理策略,复杂查询更是如此。 就所需的磁盘访问次数而言,策略好坏差别很大,有时甚至相差几个数量级。 所以,多花一点时间选择一个较好的查询策略是很值得的。 二、查询处理的代价 对一个查询,从多种执行策略中,选择一个最有效、合适策略的过程。 1)在关系代数级进行优化,力图找出与给定表达式等价,执行效率更高的一个表达式。 2)涉及查询语句处理的详细策略的选择,例如选择执行运算所采用的具体算法,以及将使用的特定索引,等等。 三、查询优化 一个查询往往会有许多实现办法, 关键是: 如何找出一个等价的且操作时间又少的表达式。 关系系统的查询优化: 既是关系数据库管理系统实现的关键技术, 又是关系系统的优点。 在关系代数运算中,笛卡儿积、连接运算最费时间和空间,究竟应采用什么样的策略,才能节省时间和空间?这就是优化的准则。 1.提早执行选取运算 对于有选择运算的表达式,应优化成尽可能先执行选择运算的等价表达式,以得到较小的中间结果,减少运算量和从外存读块的次数。 一、优化的准则 2.合并乘积与其后的选择运算为连接运算 在表达式中,当乘积运算后面是选择运算时,合并为连接运算,使选择与乘积一道完成,避免做完乘积后,需再扫描一个大的乘积关系进行选择运算。 3.将投影运算与其后的其他运算同时进行 以避免重复扫描关系。 4.将投影运算和其前后的二目运算结合起来 使得没有必要为去掉某些字段再扫描一遍关系。 优化的策略均涉及关系代数表达式,讨论关系代数表达式的等价变换规则十分重要。 常用的等价变换规则有10 种: 二、关系代数表达式的等价变换规则 该规则的目的是使一些投影消失。 若 F 中有不属于 A1,…,An 属性,B1,…,Bm,那么有更一般的规则
原创力文档

文档评论(0)