数据库的前世今生08
[姓名] | [课程标题] | [日期] |
|
查询处理是数据处理的一种途径,这是一中对于磁盘的访问,对于在磁盘中的文件,如何查询,是一个问题?计算机对于给定的一个查询对象,会给出多种查询策略【关系代数表达式】,那么,哪一种犯法是最好的,最省时间,最省空间。这就是对于关系代数表达式的优化。
关系代数表达式的优化问题
问题描述:系统用什么样的操作顺序,可以做到既省时间,又 省空间。而且效率比较高?
关系代数表达式的等价转换
关系代数表达式的等价变换规则
用通过的 关系实例 代替 表达式中相应的关系 相同的结果,得到的结果是一样的,得到相同的属性集,相同的元组集。
规则一:
连接和笛卡尔积的交换律:
规则二:
连接和笛卡尔积的结合律:
规则三:
投影的级联:
规则四:
选择的级联
规则五:
选择和投影操作的交换
规则六:
选择对笛卡尔积的分配律
规则柒:
选择对并的分配律
规则八:
选择对集合差的分配律:
规则九:
选择对自然连接的分配律:
规则十:
投影对笛卡尔积的分配律:
规则十一:
投影对并的分配律:
规则十二:
选择与连接操作的结合
规则十三:
并和交的交换律
规则十四:
并和交的结合律
关系代数表达式的启发式优化算法
现在的系统多采用 【启发式优化(Heuristic Optimization)】对关系代数进行优化。
有3条启发式规则:
1. 尽可能早的执行选择操作
2. 尽可能早的执行投影操作
3. 避免直接对笛卡尔积的操作,把笛卡尔积操作 之前的 和之后的 一连串的选择和投影操作合并起来一起做
附:同常 选择操作有与投影操作,因为选择操作可能会减少元组的数量,并且 ,选择操作可以利用索引存取元组。