[发明专利]数据库索引的方法无效
| 申请号: | 200810038369.6 | 申请日: | 2008-05-30 |
| 公开(公告)号: | CN101286160A | 公开(公告)日: | 2008-10-15 |
| 发明(设计)人: | 蒋昌俊;曾国荪;陈闳中;苗夺谦;闫春钢;方钰;徐逸文 | 申请(专利权)人: | 同济大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 上海光华专利事务所 | 代理人: | 余明伟 |
| 地址: | 200092上*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据库 索引 方法 | ||
技术领域
本发明数据库索引技术领域,涉及一种数据库索引方法,尤其涉及一种利用B+树的数据库索引方法。
背景技术
B树由R.Bayer和E.McCreight在1972年提出,可以看作是“二叉搜索树”在外存中多路扩展的一般形式,它被设计用来管理和维护大规模数据的索引,具有随机查询效率高、更新开销小和自平衡等特点。B+树在B树的基础上,进一步规定所有的“键值”只能出现在叶子节点中,并用链表的方式把所有叶子节点串连在一起,提高了顺序查询的效率。
研究B+树的算法时,为了简化一般都假设不存在键值重复的情况。现有处理处理重复键值的方法主要是采用“溢出页”,即当某个键值对应的记录数大于1时,分配一个“溢出页”用来存放所有的重复键值和其对应记录的偏移量。
这个方法尽管简单,但不可避免的浪费了溢出页中空闲的空间,尤其是当键值所占空间相对于溢出页容量较小时,空间浪费的程度加剧,整个索引文件对磁盘的需求量随之明显增加。
发明内容
本发明所要解决的技术问题是:提供一种利用B+树的数据库索引方法。
为解决上述技术问题,本发明采用如下技术方案:
一种数据库索引的方法,其特征在于,该方法包括如下步骤:
步骤A、根据索引数据库建立一B+树;
步骤B、定义步骤A中的B+树的数据结构,将重复的键值存储于B+树的叶节点中;
步骤C、执行索引操作,包括查询操作、插入操作、删除操作。
作为本发明的一种优选方案,所述步骤B包括:
步骤B1、重新定义B+树非叶节点的索引键值;
步骤B2、在每个非叶节点中新增一个索引键值。
作为本发明的一种优选方案,所述步骤B1中,将B+树非叶节点中的第i个索引键值定义为:以该非叶节点的第i+1个子节点为根的子树中,第一次出现的新键值;若新键值不存在,即该子树中包含的所有键值均相同,且已经出现在之前的子树中,则将该索引键值定义为“空”。
作为本发明的一种优选方案,所述步骤B2中,该新增的索引键值表示以某个非叶节点第0个子节点为根的子树中,第一次出现的新键值。
作为本发明的一种优选方案,所述查询操作中,在非叶节点中,确定下一步应该遍历的个子节点时,增加了对可能出现的“空”索引键值的处理。
作为本发明的一种优选方案,所述插入操作中,每次将新键值插入到相应的叶节点后,从该叶节点向上递归更新父节点的的索引键值,直至根节点。
作为本发明的一种优选方案,所述插入操作包括分裂过程,将一个节点分裂成两个节点后,在父节点中更新本节点索引键值并且增加对应新节点的索引键值,并可能需要递归向上更新,直至根节点。
作为本发明的一种优选方案,所述删除操作中,每次在某个叶节点中删除一个键值后,从该叶节点向上递归更新父节点的的索引键值,直至根节点。
作为本发明的一种优选方案,所述删除操作包括合并过程,合并两个节点后,需要在父节点中更新本节点索引键值并且删除被合并节点的索引键值,并可能需要递归向上更新,直至根节点。
本发明的有益效果在于:本发明的利用B+树的数据库索引方法,由于将重复出现的键值直接存储在B+树的叶节点中,避免了使用溢出节点,所以当溢出节点相对于键值较大时,而数据表中又存在一定量的重复键值的情况下,本发明能够有效地避免空间的浪费,从而减少索引文件的大小,同时也拓宽了B+树的适用范围。由此优化了数据库索引方案。
附图说明
图1为本发明数据库索引方法的流程图。
图2为本发明定义的B+树结构图。
图3-1、图3-2分别为实施例中B+树分裂过程前后的结构示意图。
图4为实施例中B+树删除操作的结构示意图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
请参阅图1,本发明揭示了一种数据库索引的方法,其特征在于,该方法包括如下步骤:
步骤A、根据索引数据库建立一B+树;
步骤B、定义步骤A中的B+树的数据结构,将重复的键值存储于B+树的叶节点中;包括:
步骤B1、重新定义B+树非叶节点的索引键值;将B+树非叶节点中的第i个索引键值定义为:以该非叶节点的第i+1个子节点为根的子树中,第一次出现的新键值;若新键值不存在,即该子树中包含的所有键值均相同,且已经出现在之前的子树中,则将该索引键值定义为“空”。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同济大学,未经同济大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810038369.6/2.html,转载请声明来源钻瓜专利网。





