查询树的优化PPT

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) 实例:信息系选修1号课程的学生信息
(S cno'1' sdept' IS ' SC) cno'1' (SC) sdept' IS ' (S )
14
等价变换规则
4. 选择的串接定律
F1 ( F2 (E)) F1F2 (E)
E是关系代数表达式,F1和F2是选 择条件。选择的串接定律说明选择条件 可以合并,这样一次就可以检查全部的 条件。
15
等价变换规则
Sage19 ( Sname,Sage (S)) Sname,Sage ( Sage19 (S ))
(E1 >< E2 ) >< E3 E1 >< (E2 >< E3)
(
E1
>< F1
E2
)
><
F2
E3
E1
>< F1
(
E2
><
F2
E3 )
11
等价变换规则
2. 连接、笛卡儿积的结合率
设E1,E2,E3是关系代数表达式,F1和F2是 连接运算的条件,则有:
Student SC
Course ≡ Student (SC
Sname ( Sage19 (S )) Sname ( Sage19 ( Sname,Sage (S )))
16
等价变换规则
5. 选择与投影的交换律
F ( A1,A2 ,L ,An (E)) A1,A2 ,L ,An ( F (E))
此时,条件F只涉及属性组A。若条件中有不属 于A的属性组B,那么有更一般的规则:
查询检查:语义检查 查询优化:代数优化和物理优化 查询执行
4
4.1 关系数据库系统的查询处理
Βιβλιοθήκη Baidu
为什么进行代数优化?
例:选修了2号课程的学生姓名
Πsname( student.sno=sc.sno Λ sc.cno=‘2’
( SC ХStudent))
Πsname( sc.cno=‘2’ ( SC
A1,A2,L ,An ( F (E)) ( ( (E))) A1,A2 ,L ,An F A1,A2 ,L ,An ,B1,B2 ,L ,Bm
17
6.选择与笛卡尔积的交换
F (E1) E2
F (E1 E2 ) F1 (E1) F2 (E2 )
F2 ( F1 (E1) E2 )
1. 连接、笛卡儿积交换率
设E1和E2是关系代数表达式,F是连接运算的 条件,则有:
E1 E2 E2 E1
E1 >< E2 E2 >< E1
E1
>< F
E2
E2
>< F
E1
10
等价变换规则
1. 连接、笛卡儿积的结合率
设E1,E2,E3是关系代数表达式,F1和F2是 连接运算的条件,则有:
(E1 E2 ) E3 E1 (E2 E3)
6
4.1 关系数据库系统的查询处理
假设有1000个学生记录,10000个选课记录,2 号课程的选课记录为500个。
Πsname( sc.cno=‘2’ ( SC
Student))
1. 连接,采用嵌套循环:10000*1000 ,得到 10000个结果 2. 选择:扫描10000个记录 3. 投影
and sc.cno=2;
1.查询分析:识别其中的关键字,属性名,表名。 2.查询检查:属性名是否有效,表名是否有效等。 3.查询优化:例如上例中先执行连接还是先执行
sc.cno=2从sc表中进行选择。选用何 种方法进行连接。 4.查询执行。
3
4.1 关系数据库系统的查询处理
查询处理步骤
查询分析:对查询语句进行扫描、 词法分析和语法分析。
Student))
Πsname( sc.cno=‘2’(SC)
Student))
5
4.1 关系数据库系统的查询处理
假设有1000个学生记录,10000个选课记录,2 号课程的选课记录为500个。
Πsname( student.sno=sc.sno Λ sc.cno=‘2’ ( SC ХStudent)) 1. 笛卡尔积计算:1000*10000 2. 选择:扫描1000*10000个记录 3. 投影
这里,E是关系代数表达式,Ai(i=1, 2,…,n),Bj(j=1,2,…,m)是属性 名且{A1,A2,… An} 是{B1,B2,…,Bm} 的子集。
13
等价变换规则
4. 选择的串接定律
求IS系年龄大于19岁的学生:
Sdept'IS ' (Sage19 (S )) (S ) Sdept'IS 'Sage19
选择操作先做可以提高效率。
8
4.2 代数优化
4.2.1 关系代数表达式等价变换规则
等价的概念: 若关系表达式f(E1,E2,…,En)的结果与
关系表达式g(E1,E2,…,En)的结果是同 一个关系,那么称这两个表达式等价。 若关系表达式E1和E2是等价的可以记为:
E1 E2
9
等价变换规则
7
4.1 关系数据库系统的查询处理
假设有1000个学生记录,10000个选课记录,2
号课程的选课记录为500个。
Πsname( sc.cno=‘2’(SC)
Student)
1. 选择:扫描10000个记录 ,得到500个记录 2. 连接,采用嵌套循环:500*1000次,得到 500个记录 3. 投影
第四章 查询优化
1
4.1 关系数据库系统的查询处理
查询处理步骤
例:选修了2号课程的学生姓名
Select student.name from student,sc Where student.sno=sc.sno
and sc.cno=2;
2
4.1 关系数据库系统的查询处理
Select student.name from student,sc Where student.sno=sc.sno
(1) (2) (3)
(1)F只涉及E1的属性。 (2)F=F1∧F2,且F1只涉及E1的属性,F2只涉及 E2的属性。 (3) F=F1∧F2,且F1只涉及E1的属性,而F2涉及 E1和E2的属性。
18
等价变换规则
(1) 实例:选修1号课程的学生信息
cno'1' (S SC) cno'1' (SC) S
Course)
Student SC
Course ≡ SC (Student
Course)
12
等价变换规则
3. 投影的串接定律
Sname ( Sname,Sage (S )) Sname (S )
( (E)) (E) A1,A2 ,L ,An B1,B2 ,L ,Bm
A1, A2 ,L , An
相关文档
最新文档