关系查询处理和关系优化-第三节:查询优化之代数优化
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系查询处理和关系优化-第三节:查询优化之代数优化相关的知识,希望对你有一定的参考价值。
注意:
- 关系代数有关符号,大家可能又不熟悉了,点击跳转:(数据库系统概论|王珊)第二章关系数据库-第四节:关系代数
文章目录
在(数据库系统概论|王珊)第九章关系查询处理和关系优化-第一节:查询处理中讲到过:SQL语句经过查询分析,查询检查后变换为查询树,它是关系代数表达式的内部表示。本节介绍查询优化之代数优化,它是基于关系代数等价变换规则的优化方法
- 两个关系表达式 R 1 R_1 R1和 R 2 R_2 R2是等价的,可以记为 R 1 ≡ R 2 R_1 \\equiv R_2 R1≡R2
一:关系代数表达式等价变换规则
- 为了能方便阅读,就没用截图。手都麻了🤮(动动手点个赞吧🥳)
(1)连接、笛卡尔积、并、交的交换律
笛卡尔积
R × S ≡ S × R R×S \\equiv S×R R×S≡S×R
并
R
∪
S
≡
S
∪
R
R \\cup S \\equiv S \\cup R
R∪S≡S∪R
交
R ∩ S ≡ S ∩ R R \\cap S \\equiv S \\cap R R∩S≡S∩R
连接
R ⋈ F S ≡ S ⋈ F R 、 R ⋈ S ≡ S ⋈ R R \\undersetF\\bowtie S \\equiv S \\undersetF\\bowtie R 、 R\\bowtie S \\equiv S\\bowtie R RF⋈S≡SF⋈R、R⋈S≡S⋈R
(2)连接、笛卡尔积、并、交的结合律
笛卡尔积
( R × S ) × T ≡ R × ( S × T ) (R×S) ×T\\equiv R×(S×T) (R×S)×T≡R×(S×T)
并
(
R
∪
S
)
∪
T
≡
R
∪
(
S
∪
T
)
(R \\cup S)\\cup T \\equiv R \\cup (S\\cup T)
(R∪S)∪T≡R∪(S∪T)
交
( R ∩ S ) ∩ T ≡ R ∩ ( S ∩ T ) (R \\cap S)\\cap T \\equiv R \\cap (S\\cap T) (R∩S)∩T≡R∩(S∩T)
连接
(
R
⋈
F
S
)
⋈
F
T
≡
R
⋈
F
(
S
⋈
F
T
)
(R \\undersetF\\bowtie S) \\undersetF\\bowtie T \\equiv R \\undersetF\\bowtie (S \\undersetF\\bowtie T)
(RF⋈S)F⋈T≡RF⋈(SF⋈T)
(
R
⋈
S
)
⋈
T
≡
R
⋈
(
S
⋈
T
)
(R\\bowtie S) \\bowtie T \\equiv R\\bowtie (S \\bowtie T)
(R⋈S)⋈T≡R⋈(S⋈T)
(3)投影的串接定律
关系的两次投影操作可以合并为一次完成(反过来就是分解)
Π A 1 , A 2 , . . . , A n ( Π B 1 , B 2 , . . . , B m ( E ) ) ≡ Π A 1 , A 2 , . . . , A n ( E ) \\Pi_A_1,A_2,...,A_n(\\Pi_B_1,B_2,...,B_m(E)) \\equiv \\Pi_A_1,A_2,...,A_n(E) ΠA1,A2,...,An(ΠB1,B2,...,Bm(E))≡ΠA1,A2,...,An(E)
- E E E是关系代数表达式
- A i ( i = 1 , 2 , . . , n ) , B j ( j = 1 , 2 , . . , m ) A_i(i=1,2,..,n),B_j(j=1,2,..,m) Ai(i=1,2,..,n),Bj(j=1,2,..,m)是属性名。并且 A 1 , A 2 , . . . , A n \\ A_1,A_2,...,A_n \\ A1,A2,...,An构成 B 1 , B 2 , . . . , B m \\ B_1,B_2,...,B_m \\ B1,B2,...,Bm的子集
(4)选择的串接定律
选择的两次投影操作可以合并为一次完成(反过来就是分解)
σ F 1 ( σ F 2 ( E ) ) ≡ σ F 1 ∧ F 2 ( E ) \\sigma_F1(\\sigma_F2(E)) \\equiv \\sigma_F1\\land F2(E) σF1(σF2(E))≡σF1∧F2(E)
(5)选择与投影的交换律
σ F ( Π A 1 , A 2 , . . . , A n ( E ) ) ≡ Π A 1 , A 2 , . . . , A n ( σ F ( E ) ) \\sigma_F(\\Pi_A_1,A_2,...,A_n(E)) \\equiv \\Pi_A_1,A_2,...,A_n(\\sigma_F(E)) σF(ΠA1,A2,...,An(E))数据库 chapter 9 关系查询处理和查询优化