数据库系统教程 教学课件 作者 何玉洁 李宝安 第14章 查询处理与优化.pptVIP

数据库系统教程 教学课件 作者 何玉洁 李宝安 第14章 查询处理与优化.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
散列连接法(续) 在建立散列文件时,由于R、S一般不会对连接属性建立聚集索引,因此,一个桶的元组不可能被集中地写入,而是按其在R、S中出现的次序逐个填入。 每当在桶中填入一个元组,均需要一次I/O。 如果经常需要进行这种连接操作,建立这样的散列文件是值得的。 * * 散列连接法(续) 建立散列文件时,也可以在桶中不填入R和S的实际元组,而只填入它们的元组id(tid) 这样可以缩小散列文件大小,甚至有可能在内存中建立散列文件, 这样所付出的I/O代价是仅对R和S各扫描一次。 在扫描R和S时,可将∏A(R)和∏B(S)与相应的tid一起放入桶中。 * * 散列连接法(续) 在连接时,可以桶为单位,按∏A(R)=∏B(S)条件找出匹配的tid对。 在得到匹配的元组id后,可按tid对中的tid,取出相应元组进行连接。 为减少I/O次数,使每个物理块在连接时最多被访问一次,可以将各桶中匹配的tid按块分类,一次集中取出同一块中所需的所有元组。 * * 连接操作的启发式规则 如果两个关系都已按连接属性排序,则优先选用排序归并法。如果两个关系中有一个关系已按连接属性排序,而另一个关系很小,则可考虑按连接属性排序,然后再用排序归并法进行连接。 如果两个关系中有一个关系在连接属性上有索引或散列,则可以另一个关系为外关系,顺序扫描,并利用内关系上的索引或散列寻找与之匹配的元组,以代替多遍扫描。 如果上述两个规则的条件都不具备,且两个关系都比较小,则可以用嵌套循环法。 如果上述规则都不适用,则可以选用散列连接法。 * * 14.4.3 投影操作的实现 投影操作一般与选择、连接等操作同时进行,不需要附加的I/O开销。 如果投影的属性集中不包含主键,则投影结果中可能出现重复元组。 消除重复元组一般需要将投影结果按其所有属性排序,使重复元组连续存放。 也可以将投影结果按其一个或多个属性散列成一个文件,当一个元组被散列到一个桶中时,可以检查是否与桶中已有元组重复。 * * 14.4.4 集合操作的实现 笛卡尔积一般用嵌套循环方法实现。 集合R、S的并、交、差操作: 可先将R、S按同一属性排序,然后扫描这两个关系,并选出所需的元组。 也可用散列方法先将R按主键散列到一散列文件中,然后再将S也按主键和同一散列函数散列到同一散列文件中。当将S的一个元组散列到一个桶中时,可以检查桶中是否有与之重复的元组。 * * 14.4.5 组合操作 在一个查询中可以包含多个用AND和OR连接起来的操作,如果孤立地执行各个操作,则势必要为每个操作建立一个临时文件来存放中间结果,并作为下一个操作的输入。这在时间和空间上都是不经济的。 因此,在处理查询时,应尽可能把其中的操作组合起来执行。 * * 小结 查询处理是RDBMS的核心,而查询优化技术又是查询处理的关键技术。 各种优化技术的实现与具体的数据库管理系统有关,但优化的原则是共同的。 * * * * 开场白: * * 一些等价转换规则(续) (3)多重投影(∏) ∏A1(∏A1,A2( … ∏A1,A2,…,An(R))) ≡ ∏A1(R) 示例: ∏sname(∏Sdept,Sname(Student))≡ ∏Sname(Student) * * 一些等价转换规则(续) (4)选择(σ)与投影(∏)的交换律 σc(∏A1,A1,…,An(R)) ≡∏A1,A1,…,An(σc(R)) 示例: σSage=20(∏sname,sdept,sage(Student))≡ ∏sname,sdept,sage (σSage=20 (Student)) * * 一些等价转换规则(续) (5)连接和笛卡尔积(×)的交换律 示例: * * 一些等价转换规则(续) (6)并(∪)和交(∩)运算的交换律 R ∪ S ≡ S ∪ R R ∩ S ≡ S ∩ R * * 一些等价转换规则(续) (7)选择(σ)和连接( )的交换律 σc(R S)≡(σc(R)) S , σc1∧c2(R S)≡ σc1(R) σc2(S) 示例 σSdept=’计算机系’ Λ Grade=90(Student SC) ≡(σSdept=’计算机系’(Student)) (σGrade=90(SC)) * * 一些等价转换规则(续) (8)投影(∏)和连接的分配律 设R和S的连接属性在L1和L2中,则 ∏L1∪L2(R S)≡ ∏L1(R) ∏L2(S) 示例: ∏Sdept,Sno,Sname,Grade(Student SC)≡ (∏Sdept,Sno,Sname(Student) (∏Sno,Grade(SC)) * * 一些等价转换规则(续) (9)选择与集

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档