欢迎来到天天文库
浏览记录
ID:5563564
大小:407.00 KB
页数:85页
时间:2017-11-18
《dbms_07查询编译器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章:查询编译器6/15/20211parseQueryrewritingPhysicalplangenerationexecuteresultSQLqueryparsetreelogicalqueryplanstatisticsphysicalqueryplan2;7.13;7.2,7.31;64;7.4—7.76/15/202127.1语法分析查询语法分析器预处理器逻辑查询计划生成器查询重写优选的逻辑查询计划6/15/20213语法分析与语法分析树接收用类似SQL这样的语言编写的文本并将其转换成语法分析树语法分析树的结点原
2、子,没有子结点语法类6/15/20214SQL的一个简单子集的语法1查询::=::=()2Select-From-Where形式::=SELECTFROMWHERE3Select列表::=,::=6/15/202154From列表::=,3、t>::=5条件::=AND::=IN::==::=LIKE::=6基本语法类6/15/20216SQLQuerywithanUncorrelatedSubqueryFindthemovieswithstarsbornin1960Mo4、vieStar(name,address,gender,birthdate)StarsIn(title,year,starName)SELECTtitleFROMStarsInWHEREstarNameIN(SELECTnameFROMMovieStarWHEREbirthdateLIKE‘%1960’);6/15/20217ParseTreeSELECTFROMWHEREINt5、itleStarsIn()starNameSELECTFROMWHERELIKEnameMovieStarbirthDate‘%1960’6/15/20218Findthemovieswithstarsbornin1960MovieStar(name,address,gender,birthdate)StarsIn(title,year,star6、Name)SELECTtitleFROMStarsIn,MovieStarWHERE(starName=nameANDbirthdateLIKE‘%1960’);6/15/20219ParseTreeSELECTFROMWHERE=LIKE,titleStarsInMovieStar7、ondition>ANDstarNamenamebirthDate‘%1960’6/15/202110预处理器语义检查检查关系的使用检查与解析属性的使用检查类型合法语法树6/15/2021117.2用于改进查询计划的代数定律交换律与结合律R×S=S×R;(R×S)×T=R×(S×T)RS=SR;(RS)T=R(ST)R∪S=S∪R;(R∪S)∪T=R∪(S∪T)R∩S=S∩R;(R∩S)∩T=R∩(S∩T)-连接满足交换律,如果所在位置有意义,则满足结合律。6/15/202112涉及选择的定律选择操作对8、于查询优化非常关键。分解律:C1ANDC2(R)=C1(C2(R))C1ORC2(R)=(C1(R))∪S(C2(R))(只有R是集合时成立)C1(C2(R))=C2(C1(R))6/15/202113对二元操作符进行下推:积、并、交、
3、t>::=5条件::=AND::=IN::==::=LIKE::=6基本语法类6/15/20216SQLQuerywithanUncorrelatedSubqueryFindthemovieswithstarsbornin1960Mo
4、vieStar(name,address,gender,birthdate)StarsIn(title,year,starName)SELECTtitleFROMStarsInWHEREstarNameIN(SELECTnameFROMMovieStarWHEREbirthdateLIKE‘%1960’);6/15/20217ParseTreeSELECTFROMWHEREINt
5、itleStarsIn()starNameSELECTFROMWHERELIKEnameMovieStarbirthDate‘%1960’6/15/20218Findthemovieswithstarsbornin1960MovieStar(name,address,gender,birthdate)StarsIn(title,year,star
6、Name)SELECTtitleFROMStarsIn,MovieStarWHERE(starName=nameANDbirthdateLIKE‘%1960’);6/15/20219ParseTreeSELECTFROMWHERE=LIKE,titleStarsInMovieStar7、ondition>ANDstarNamenamebirthDate‘%1960’6/15/202110预处理器语义检查检查关系的使用检查与解析属性的使用检查类型合法语法树6/15/2021117.2用于改进查询计划的代数定律交换律与结合律R×S=S×R;(R×S)×T=R×(S×T)RS=SR;(RS)T=R(ST)R∪S=S∪R;(R∪S)∪T=R∪(S∪T)R∩S=S∩R;(R∩S)∩T=R∩(S∩T)-连接满足交换律,如果所在位置有意义,则满足结合律。6/15/202112涉及选择的定律选择操作对8、于查询优化非常关键。分解律:C1ANDC2(R)=C1(C2(R))C1ORC2(R)=(C1(R))∪S(C2(R))(只有R是集合时成立)C1(C2(R))=C2(C1(R))6/15/202113对二元操作符进行下推:积、并、交、
7、ondition>ANDstarNamenamebirthDate‘%1960’6/15/202110预处理器语义检查检查关系的使用检查与解析属性的使用检查类型合法语法树6/15/2021117.2用于改进查询计划的代数定律交换律与结合律R×S=S×R;(R×S)×T=R×(S×T)RS=SR;(RS)T=R(ST)R∪S=S∪R;(R∪S)∪T=R∪(S∪T)R∩S=S∩R;(R∩S)∩T=R∩(S∩T)-连接满足交换律,如果所在位置有意义,则满足结合律。6/15/202112涉及选择的定律选择操作对
8、于查询优化非常关键。分解律:C1ANDC2(R)=C1(C2(R))C1ORC2(R)=(C1(R))∪S(C2(R))(只有R是集合时成立)C1(C2(R))=C2(C1(R))6/15/202113对二元操作符进行下推:积、并、交、
此文档下载收益归作者所有