关系数据库系统而言需要从两个方面讨课件.pptVIP

关系数据库系统而言需要从两个方面讨课件.ppt

  1. 1、本文档共21页,可阅读全部内容。
  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文档。上传文档
查看更多

第一节查询的处理过程查询是由高级查询语言(如SQL)表示的对数据库的一系列操作。下边是查询处理的基本流程:K1查询1)语法检查;2)语义有效性检查;3)完整性安全性检查;扫描与语法分析4)产生查询的内部表示(树,图).查询的内部表示确定优化的执行策略,产生优化的执行计划查询优化层次和网状数据库的查询语言是面向过程的语言,查询优化由用户程序负责.关系数据库的查询语言是非过程性的语言,查询优化应该由DBMS负责,但因最优化需要大量信息和相当耗时,故仅产生效率较高的执行计划。查询的执行计划组合DBMS提供的查询代码生成各种操作算法,产生计划的执行代码查询计划的执行代码控制执行查询计划,产生查询结果查询结果查询执行

K11以下假设:每个关系储存在一个文件中。每个文件仅储存一个关系。下边的参数是本章经常使用的:TR关系R的元组数B磁盘块数RI每个元组的字节数RM主存缓冲区的块数b每个磁盘块字节数在分析关系代数各种操作的算法时,我们用对磁盘的存取块数来度量一个算法的复杂性。

第二节选择操作的实现算法K2选择操作是在关系R中抽取满足条件C的元组,其SQL表示形式为:select*fromRwhereCandCorC123式中第一子式(select)的含义是返回指定的属性,第二子式(from)指出参加选择操作的关系。第三子式(where)指出选择操作的条件。选择条件可以是简单条件,也可以是复合条件,即把一组简单条件用逻辑运算符and/or/not连接而成的条件。如果逻辑运算符仅是and,则复合条件称为合取条件。一般的DBMS都提供多种选择算法。不同的算法适用于不同的使用环境。有些算法要求参加运算的关系具有指定的存储结构或存取方法。下边介绍选择操作的实现算法。接下页

?具有简单条件(条件中仅包含关系的一个属性)的选择算法1.线性搜索:按原始顺序扫描关系,取出满足条件的元组。2.二分搜索:要求关系已排序,并且选择条件是排序域上的K21等值比较。N元组的关系,其搜索时间复杂性是O(logN)。23.主索引或HASH搜索:要求选择条件是主索引属性或HASH属性上的等值比较。4.用主索引查找多个元组:若条件是主属性上的非等值比较,则用等值比较可找出所有满足非等值比较条件的元组。5.使用聚集索引按等值比较条件寻找多个元组。6.使用B树索引搜索。+?具有合取条件(一组简单条件用and连接而成)的选择算法7.合取选择算法:先按一个简单条件用前述方法选择,然后检查是否满足其它条件。8.复合索引算法:若合取条件都是等值比较,可考虑使用有关属性上的复合索引。9.指针交集算法:若合取条件是等值比较,可用各索引域的辅助索引得到元组指针集合,然后取这些集合的交集。

K3设:关系R和S的元组字节数分别是I和I,第三节笛卡儿乘积的实现算法RS元组数目分别是T和T,RS则笛卡儿乘积R?S的元组的字节数是I+I,RS元组数目是TT,空间字节数是TT(I+I),RSRSRS占用磁盘块数是B=TT(I+I)/b,R?SRSRS其中b是磁盘块的容量。因此,笛卡儿乘积是一个非常耗时的操作。以下介绍笛卡儿乘积的四种实现算法。在选择算法时,要分析各种算法在访问磁盘时的复杂性和对内存缓冲区的要求。1简单算法2主存算法3半主存算法4大关系算法

1笛卡儿乘积的简单算法K31这种算法仅要求主存提供能容纳两个磁盘块数据的缓冲区。关系R和S各读一块到主存缓冲区,参加笛卡儿乘积运算。通过嵌套循环完成R?S。算法定义为:对结果关系result初始化;forR每块RdoB读R入主存;BforS每块SdoSB读S入主存;RB在主存完成R和S的元组笛卡儿BB乘积,产生元组存入result;endfor;endfor;返回result.输出R?S由于每读R一块,均扫描S一遍,故整个过程中,R读了一遍,而S读了B遍。从而磁盘存取量为B+BB+B,其中,动画RRRSR?SB=TT(I+I)/b是输出结果的写盘块数。R?SRSRS

K322笛卡儿乘积的主存算法这种算法假设内存缓冲区有足够的容量,能一次性地把关系R和S都读入主存,完成笛卡儿乘积运算。整个过程,两个关系各读了一遍。这种算法的磁盘存取量为B+B+B,其中RSR?SB=TT(I+I)/b是写盘块数。算法的形式定义为:R?SRSRS结果关系result初始化;把R和S读入主存;for主存中R的每个元组rdofor主存中S的每个元组sdo产生元组(rs)存入result;endfor;RSendfor;返回result.R?S动画

K333笛卡儿乘积的半主存算法这种算法假定内存缓冲区比

您可能关注的文档

文档评论(0)

136****1909 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档