【数据库】关系代数、查询处理和优化

学习数据库系统概念(第六版)笔记,第六章形式化关系查询语言-关系代数,第十二章查询处理(部分),第十三章查询优化(部分)

关系代数

and or not
\wedge \vee ¬\neg

选择(select)

σ属性的数学关系(R)\sigma_\text{属性的数学关系}(R) :返回关系RR 中满足某些属性数学关系的

注意,如果跟SQL对应,这里对应的是where

投影(project)

Π{A1,A2,Am}(R)\Pi_{\{A_1,A_2,\cdots A_m\}}(R) :输出关系RR 中所有行的属性{A1,A2,Am}\{A_1,A_2,\cdots A_m\} ,去重

注意:SQL中对应的是select,不会去重

并(union)&交(intersect)&差(difference)

R1R2R_1\cup R_2R1R2R_1\cap R_2R1R2R_1-R_2 属性个数相同,属性对应的域相同

自然连接(natural join)

R1R2R_1\Join R_2 ,在相同名字的属性取值相同的元组

等价于 ΠR1R2(σR1.A1=R2.A1R1.A2=R2.A2R1.Am=R2.Am(R1×R2))\Pi_{R1\cup R2}(\sigma_{R1.A1=R2.A1\wedge R1.A2=R2.A2\wedge\cdots R1.Am=R2.Am}(R1\times R2))

笛卡尔积(Cartesian product)

R1×R2R_1\times R_2 ,两个关系组成的元组对

R1θR2=σθ(R1×R2)R_1 \Join_\theta R_2=\sigma_\theta(R_1 \times R_2)

assignment

RR1R2R\leftarrow R_1\Join R_2

更名(rename)

ρR(A1,A2,An)(E)\rho_{R(A_1,A_2,\cdots A_n)}(E) 将表达式EE 的结果更名为RR

关系运算的执行?

查询优化

等价规则

两种不同形式的表达式是等价的

启发式优化

尽早执行选择、投影运算