- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库系统实现06
第六章 查询执行;引言; DBMS处理查询计划的过程是这样的:
在做完查询语句的词法、语法检查之后,将语句提交给DBMS的查询优化器,优化器做完代数优化和存取路径的优化之后,由预编译模块对语句进行处理并生成查询规划,然后在合适的时间提交给系统处理执行,最后将执行结果返回给用户。
在实际的数据库产品(如Oracle、Sybase等)的高版本中都是采用基于代价的优化方法,这种优化能根据从系统字典表所得到的信息来估计不同的查询规划的代价,然后选择一个较优的规划。
虽然现在的数据库产品在查询优化方面已经做得越来越好,但由用户提交的SQL语句是系统优化的基础,很难设想一个原本糟糕的查询计划经过系统的优化之后会变得高效,因此用户所写语句的优劣至关重要。
DBMS中的存储统计信息:
有关关系的统计信息
关系R中的元组数目
含有关系R的元组的块数目
关系R中每个元组的字节数
关系R的块因子,即一个块中能存放的关系
统计信息的维护
?? 每次关系修改时,更新统计信息
?? 系统处于轻负载时,更新统计信息
;查询处理的步骤:
;分析:
例:SELECT SNAME
FROM S,C,SC
WHERE S.SNO=SC.SNO AND
C.CNO=SC.CNO AND
C.CNAME=‘DATABASE SYSTEM’
S=10000,C=1000,SC=100000
查询方案:
1) ∏ sname(σ S.SNO=SC.SNO AND((sXc)Xsc))
C.CNO=SC.CNO AND
C.CNAME=‘DATABASE SYSTEM)
2) ∏ sname(σC.CNAME=‘DATABASE SYSTEM ((s∞c) ∞sc))
3) ∏ sname( ((s∞ σC.CNAME=‘DATABASE SYSTEM (c)) ∞sc))
;1.一种基于包的查询代数;1.并,交和差:
基于包的并,交和差的语义:
1)R∪S:一个元组t在结果中出现的次数是在R中出现的次数与S中出
现的次数之和.
2)R∩S:一个元组t在结果中出现的次数是在R中出现的次数与S中出
现的次数之间的最小值.
3)R-S:一个元组t在结果中出现的次数是在R中出现的次数减去S中
现的次数.
例:如果R={A,B,B},S={C,A,B,C}是两个包
那么:
1)R∪S=
2)R∩S=
3)R-S=
考虑:S={C,A,B,B,C}时,
;2.选择操作符:
σc(R)产生由R中满足条件C的元组构成的包,结果关系的模式与R的模式一样.
例:
;3.投影操作符:
∏L(R)是R在列表L上的投影,不去掉重复的元组.
L的构成:
1):R的单个属性
2):表达式x?y,其中x,y是属性名字列表,将x换名为y
3):表达式e?z,
例:
4.关系的积(笛卡儿积)
如果R和S是关系,则R×S是一个模式中包含R的属性和S的属性的关系,在结果积中不去掉重复的属性.
例:
;5.连接操作:∞
1)自然连接R ∞ S
2)等值连接R ∞ S
3)θ连接R ∞ θ S
6.消除重复:
δ(R)与distinct 对应,是将包转换为集合的操作符
SQL的UNION,INTERSET,EXCEPT均按集合方式理解,故转为包的表示时,用δ消除重复.
如:R UNION S 可表示为δ(R∪S);7.分组和聚集:
三要素:
(1)聚集操作符:
出现在SQL的SELECT中,对属性应用AVG,SUM,COUNT,MIN和MAX,产生
相应的结果.
(2)分组:
出现在SQL的SELECT中,以GROUP BY 方式,其主要作用为:
1)对由FROM 和 WHERE 所描述的关系按照GROUP BY 后面的属性
分组
2)将聚集作用到每个分组上
(3)HAVING条件:
给出查询结果中的每个分组所必须满足的条件
符号表示:
(1)符号γ表示分组和聚集: γL(R)
R是关系
L是元素的列表:
a) GROUP BY
文档评论(0)