第六篇类属B树索引技术.pptVIP

  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文档。上传文档
查看更多
第六章 类属B树索引技术 定义: GBT可看作是m-路查找树的特例。它也是一种平衡树。 (2) 它最多有m棵子树,其根具有如下结构: (A0, K1,A1, K2,A2, ……,Kn,An) 其中:Ai (0 ? i ? n ? m)是指向子树的子页指针, Ki(1? i ? n ? m)是关键字。 且Ki的数据类型为KT。 要使得GBT能正确地在用户定义的数据类型之上进行操作,我们必须让GBT知道这个新数据类型所具有的物理含义: 用户需定义新数据类型的表示法 定义与之相应的比较谓词(与新数据类型相匹配的比较操作函数模块)。 书写它的操作函数。 3.最近邻居查询。寻找一个与给定点最邻近的点。例如:如果用点描述城市,我们可能想找到一个与一个已经给定的小城市最邻近的超过十万人口的城市。 (3)数据类型表形式: (类型名,类型定义指针) 我们利用ORDDL定义了一个关系表。这个关系表有三个属性,如: create table person( name char(30), location point, picture image ); create index on person using b_tree(location,westness); 我们不妨将location和picture分别看作是类point和image的两个对象。同时,假定在location属性上建立B树索引。其比较操作符使用用户定义的westness操作,即将这些点在向西方向上排序。 分析器可以依据这些信息处理大部分查询语句。然而,如果查询中使用了函数,就需在函数目录表中查找。如果翻译where子句时,就需要查找contained, circle, beard函数的执行代码。并检查其参数个数、参数类型是否相配等等。同样,翻译中遇到比较操作函数,将查找比较操作函数目录表。遇到对象的信息,将查找类目录表等等。 使用同样的过程定义出一个名为CURVE的新类型 查询操作函数 地理信息系统的查询,需要一些带有空间、时间特性的查询: 1.部分匹配查询。为一维或多维指定一些数值,并且查找与这些值匹配的所有点。 2.范围查询。给出一维或多维的范围,并且要求查找出落在该范围内的所有的点。或者如果给出若干个多边形,问是否着个多边型的集合部分或全部落在这个区域内。这个查询推广了我们在第五章中讨论的一维范围索引。 4.“我在哪”查询. 给出一个点,想知道它被确定在哪一个多边形里,或者说定位这个点。一个很熟悉的例子就是当你点击鼠标时,系统判断你正在击哪一个已显示出来的元素。 为POINT类型引入二个查询操作函数Contained 和Above Boolean Function ABOVE(s1, s2) /* to retrieve the objects S1 that are located above of the objects S2. The data type of S1 and S2 ? (POINT, CURVE, AREA, VOLUME). And S1,S2 ? flat files f.*/ Processing algorithm parse ORSQL and interpret it to operation-lines; interpret header of files f. while there are more entities s in the file begin next E(f,s); if test E(f,s) ? s1 then E(f,s) - T1; if test E(f,s) ? s2 then E(f,s) - T2; end while there are more entities s1 in T1 begin next E(T1,s1); if test E(T1,s1) is up of ?E(T2,s2) then insert E(T1,s1) into the out-line; end To explain and put out the output-lines. Boolean Function CONTAINED(s1, s2) /* to retrieve the objects, S1, which are located

文档评论(0)

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

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

1亿VIP精品文档

相关文档