Note08- 查询处理

查询处理是指从数据库中提取数据时涉及的一系列活动。这些活动包括:将用高层数据库语言表示的查询语句翻译为能在文件系统的物理层上使用的表达式,为优化查询而进行各种转换,以及查询的实际执行。

基本概念

先介绍三种树的概念:

选择操作

SELECT *
FROM R
WHERE C1 AND C2 OR C3

简单选择操作:仅包含关系 R 的一个属性的条件

复杂选择操作:由简单条件经 AND, OR, NOT 等逻辑运算符连接而成的条件

算法:

投影操作

ΠA1,Ak(R)R 上的投影操作,则就看投影属性中有无 R 的码,如果有直接取即可,如果没有则需要去重,采用排序去重

连接操作

R(X,Y)S(Y,Z) 为例,令

一趟连接算法

假设:B(S)<B(R)

举例

算法分析

基于元组的嵌套连接循环连接

算法分析

基于块的嵌套循环连接

假设:B(S)<B(R)

举例

算法分析

排序归并连接

举例

算法分析

哈希连接

算法分析

基于索引的连接

假设:关系 S 上建有属性 Y 的索引

算法分析

集合操作算法

算法:首先利用排序算法在相同的键属性上排序两个关系,然后扫描,完成相应操作。