关系数据库及查询及优化.docVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关系数据库及查询及优化

2.4 查询优化 关系系统和关系模型既密切相关,又是不相同的概念。一般支持关系模型的DBMS称之 为关系系统,但是一个实际的关系数据库管理系统,不必苛求它完全支持关系模型,所以要 讨论关系系统的最小要求和分类。对于一个给定的查询问题会有多种等价的实现办法,能否 找出一个与之等价而操作时间又少的表达式,换句话说,究竟哪一种方法是最优的?这就是 查询优化要讨论的问题。 2.4.1 关系代数表达式的优化问题 查询处理:是指从数据库中提取数据的一系列活动。这一系列活动包括:将高级数据库 语言表示的查询语句翻译成为能在文件系统这一物理层次上实现的表达式,为优化查询进 行各种转换,以及查询的实际执行。 查询处理的代价:通常取决于磁盘的访问,磁盘的访问比内存访问速度要慢。对于一个 给定的查询,可以有许多可能的处理策略,复杂查询更是如此。就所需的磁盘访问次数而言, 策略好坏差别很大,有时甚至相差几个数量级。所以,多花一点时间选择一个较好的查询策 略是很值得的。 查询优化:是为了查询选择最有效的查询计划的过程。查询优化一方面是在关系代数级 进行优化,要做的是力图找出与给定表达式等价,但执行效率更高的一个表达式。查询优化 的另一方面涉及查询语句处理的详细策略的选择,例如选择执行运算所采用的具体算法,以 及将使用的特定索引,等等。 一个查询往往会有许多实现办法,关键是如何找出一个与之等价的且操作时间又少的 表达式。下面将专门讨论这个问题。 2.4.2 关系代数表达式的等价变换规则 关系系统的查询优化既是关系数据库管理系统实现的关键技术,又是关系系统的优点。第2章 关系数据库·43· 因为,用户只要提出“干什么”,不必指出“怎么干”。 在关系代数表达式中需要指出若干关系的操作步骤,问题是怎样做才能保证省时、省空 间、效率高,这就是查询优化的问题。 需要注意的是,在关系代数运算中,笛卡儿积、连接运算最费时间和空间,究竟应采用什 么样的策略,才能节省时间和空间?这就是优化的准则。 1.优化的准则 (1)提早执行选取运算。对于有选择运算的表达式,应优化成尽可能先执行选择运算的 等价表达式,以得到较小的中间结果,减少运算量和从外存读块的次数。 (2)合并乘积与其后的选择运算为连接运算。在表达式中,当乘积运算后面是选择运算 时,应该合并为连接运算,使选择与乘积一道完成,以避免做完乘积后,需再扫描一个大的乘 积关系进行选择运算。 (3)将投影运算与其后的其他运算同时进行,以避免重复扫描关系。 (4)将投影运算和其前后的二目运算结合起来,使得没有必要为去掉某些字段再扫描 一遍关系。 (5)在执行连接前对关系适当地预处理,就能快速地找到要连接的元组。方法有两种: 索引连接法、排序合并连接法。 (6)存储公共子表达式。对于有公共子表达式的结果应存于外存(中间结果),这样,当 从外存读出它的时间比计算的时间少时,就可节约操作时间。 2.关系代数表达式的等价变换规则 优化的策略均涉及关系代数表达式,所以讨论关系代数表达式的等价变换规则显得十 分重要。常用的等价变换规则有如下10种: 1)连接、笛卡儿积交换率 设E1和E2是关系代数表达式,F是连接运算的条件,则有   E1×E2≡E2×E1 E1  E2≡E2  E1 FF 2)连接、笛卡儿积结合率 设E1,E2,E3是关系代数表达式,F1,F2是连接运算的条件,则有   (E1×E2)×E3≡E1×(E2×E3)   (E1  E2)  E3≡E1  (E2  E3) F1F2F1F2 3)投影的串接定律 设E是关系代数表达式,A1,…,An和B1,…,Bm是属性名,且B1,…,Bm是A1,…,An的子 集。则有   πA1,…,An(πB1,…,Bm(E))≡πA1,…,An(E) 该规则的目的是使一些投影消失。 4)选择的串接定律 设E是关系代数表达式,F1,F2是选取条件表达式,选择的串接定律说明选择条件可以 合并,则有   σF1(σF2(E))≡σF1∧F2(E)·44·数据库原理及应用 5)选择与投影的交换律 设E是关系代数表达式,F是选取条件表达式,并且只涉及A1,…,An属性,则有   σF(πA1,…,An(E))≡πA1,…,An(σF(E)) 若F中有不属于A1,…,An属性,B1,…,Bm,那么有更一般的规则:   σF(πA1,…,An(E))≡πA1,…,An(σF(πA1,…,AnB1,…,Bm(E))) 该规则可将投影分裂为两个,使得其中的一个可能被移到树的叶端。 6)选择与笛卡儿积的交换律 若F涉及的都是E1中的属性,则   σF(E1×E2)≡σF(E1)×E2 如果F=F1∧F2,并且,F1只涉及E1中的属性,F2只涉及E2中的属性,则有   σF(E1×E2)≡σF1(E1)×σF

文档评论(0)

liwenhua00 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档