查询树的优化

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3. 投影的串接定律
( (E)) (E) A1,A2 ,L ,An B1,B2 ,L ,Bm
A1, A2 ,L , An
这里,E是关系代数表达式,Ai(i=1, 2,…,n),Bj(j=1,2,…,m)是属性 名且{A1,A2,… An} 是{B1,B2,…,Bm} 的子集。
求所有的学生Fra Baidu bibliotek名:
查找所有学生可能的选课对:
Sname,Cname (S C) Sname (S) Cname (C)
11. 投影与并的分配律
设E1和E2有相同的属性名,则:
A1,A2 ,L ,An (E1 U E2 )
(E ) U (E ) A1,A2 ,L ,An 1
A1,A2 ,L ,An 2
F只涉及E1和E2的公共属性。
注:先做选择可以减少做笛卡儿积的数据,结果关系的数 据量也同步减少,因此减少磁盘IO量,提高了效率。
查找‘95001’这位学生的选课记录:
(S Sno'95001' >< SC) Sno'95001' (S ) >< Sno'95001' (SC)
10. 投影于笛卡尔积的分配律
注:先做投影可以减少读取写入的数据,因此减少磁盘IO 量,从而提高了效率。
设S1是计科041的学生关系表, S2是计科042的学生关系表: 查找计科041、042的大于19岁的学生:
Sage19 (S1 U S2 ) Sage19 (S1) U Sage19 (S2 )
优化规则:
选择运算尽可能先做。 投影运算和选择运算同时进行。 把投影运算同其前后的 双目运算结合执行。 选择运算和笛卡儿积运算结合成连接运算。 找出公共子表达式,避免重复运算。
注:先做选择可以减少读取写入的数据,因此减少磁盘IO 量,从而提高了效率。
设S1是计科041的学生关系表, S3是计科专业的学生关系表:
Sage19 (S3 S1) Sage19 (S3) Sage19 (S1)
9. 选择对自然连接的分配率
F (E1 >< E2 ) F (E1) >< F (E2 )
设E1和E2是两个关系表达式,A是E1的属性组, B是E2的属性组。则:
(E E ) A1,A2 ,L ,An ,B1,B2 ,L ,Bm 1
2
(E ) (E ) A1,A2 ,L ,An 1
B1,B2 ,L ,Bm 2
注:先做投影可以减少读取写入的数据,因此减少磁盘IO 量,从而提高了效率。
(2)证明:
F (E1 E2 ) F1F2 (E1 E2 ) F2 (F1 (E1 E2 )) F2 (F1 (E1) E2 ) F1 (E1) F2 (E2 )
7. 选择与并的分配率
设E=E1∪E2,E1和E2有相同的属性名,则:
F (E1 U E2 ) F (E1) UF (E2 )
F2 ( F1 (E1) E2 )
(1) (2) (3)
(1)F只涉及E1的属性。 (2)F=F1∧F2,且F1只涉及E1的属性,F2只 涉及E2的属性。 (3) F=F1∧F2,且F1只涉及E1的属性,而F2 涉及E1和E2的属性。
(1) 实例:95001这个学生可能的选课情况:
(S Sno'95001' C ) Sno'95001' (S ) C
5. 选择与投影的交换率
F ( A1,A2 ,L ,An (E)) A1,A2 ,L ,An ( F (E))
此时,条件F只涉及属性组A。若条件中有不属 于A的属性组B,那么有更一般的规则:
A1,A2,L ,An ( F (E)) ( ( (E))) A1,A2 ,L ,An F A1,A2 ,L ,An ,B1,B2 ,L ,Bm
Sname ( Sname,Sage (S )) Sname (S )
4. 选择的串接定律
F1 ( F2 (E)) F1F2 (E)
E是关系代数表达式,F1和F2是选 择条件。选择的串接定律说明选择条件 可以合并,这样一次就可以检查全部的 条件。
求IS系年龄大于19岁的学生:
( Sdept'IS ' Sage19 (S )) (S ) Sdept'IS 'Sage19
Sage19 ( Sname,Sage (S )) Sname,Sage (Sage19 (E))
Sname ( Sage19 (S )) Sname (Sage19 ( Sname,Sage (E)))
6.选择与笛卡尔积的交换
F (E1) E2
F (E1 E2 ) F1 (E1) F2 (E2 )
等价的概念:
若关系表达式f(E1,E2,…,En)的结果 与关系表达式g(E1,E2,…,En)的结果 是同一个关系,那么称这两个表达式等价。
若关系表达式E1和E2是等价的可以记为:
E1 E2
等价变换规则
1. 连接、笛卡儿积交换率 设E1和E2是关系代数表达式,F是连接运算的条 件,则有:
E1 E2 E2 E1
注:先做选择可以减少读取写入的数据,因此减少磁盘IO 量,从而提高了效率。
设S1是计科041的学生关系表, S2是计科042的学生关系表:
Sage19 (S1 U S2 ) Sage19 (S1) USage19 (S2 )
8. 选择与差运算的分配率
设E1和E2有相同的属性名,则:
F (E1 E2 ) F (E1) F (E2 )
(E1 E2 ) E3 E1 (E2 E3)
(E1 >< E2 ) >< E3 E1 >< (E2 >< E3)
(
E1
>< F1
E2
)
><
F2
E3
E1
>< F1
(
E2
><
F2
E3 )
(R S) T { t¼ »rts tt (tr R) (ts S) (tt T )}
R (S T ) { t¼ r tºstt (tr R) (ts S) (tt T )}
E1 >< E2 E2 >< E1
E1
>< F
E2
E2
>< F
E1
笛卡尔积
R S { t»rts (tr R) (ts S)}
S R { t»str (tr R) (ts S)}
自然连接
R >< S R.AS.B (R S )
2. 连接、笛卡尔积的结合率
设E1,E2,E3是关系代数表达式,F1和F2是 连接运算的条件,则有:
相关文档
最新文档