[发明专利]基于哈希的聚簇表存储方法无效
申请号: | 201110392274.6 | 申请日: | 2011-11-30 |
公开(公告)号: | CN102521304A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 李茂增;陈建克;何国明;冯玉;李祥凯;冷建全 | 申请(专利权)人: | 北京人大金仓信息技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京汲智翼成知识产权代理事务所(普通合伙) 11381 | 代理人: | 陈曦;郭亚芳 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 聚簇表 存储 方法 | ||
技术领域
本发明涉及一种数据库存储方法,尤其涉及一种面向数据库存储管理的需要,基于哈希(hash)的聚簇表存储方法,属于数据库存储技术领域。
背景技术
数据库(Database)是依照某种数据模型组织起来并存放二级存储器中的数据集合。在数据库技术中,可以使用两种形式描述客观现实的数据:物理数据描述和逻辑数据描述。物理数据描述是指数据在存储设备上的存储方式,物理数据是实际存放在存储设备上的数据,这些数据也称为物理记录。逻辑数据描述是指用户或程序员用于操作的数据形式,逻辑数据是一种抽象的概念,是对客观现实世界的反映和记录,这些数据也可以称为逻辑记录。物理数据和逻辑数据之间的转换通过数据库管理系统实现。
在数据库管理系统中,采用字段来标记实体属性的可以命名的最小信息单位。字段的集合称为元组。一个元组表示一个具体的实体。在现有的关系型数据库中,往往将一个数据表中的行作为元组,列作为字段。一个数据表由行(元组)和列(字段)构成,组成一个二维关系表。若干个数据表、视图及相关的文件等组成一个统一的相关联的数据库系统。
在数据库系统中,索引是对数据表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据表中的特定信息。索引分为聚簇索引和非聚簇索引两种。所谓聚簇是指为了提高某个字段(或字段组)的查询速度,将这些字段上具有相同值的元组集中存放在连续的物理块中。因此,聚簇索引能够提高多行检索的速度,而非聚簇索引适合于单行的检索。
哈希聚簇(hash cluster)是指通过预先分配空间的方式,将相同关键字(key)的数据存放在一起,以提高查询性能的一项技术。目前,仅仅在Oracle系列数据库产品有哈希聚簇功能,其它的数据库产品,例如SQL Server、IBM DB2以及达梦DM等中均没有类似功能。在实际使用中,该项技术仍然存在一定的缺陷,例如关键字(key)的数量难以精确估计,造成哈希聚簇技术的应用场景非常有限。
发明内容
鉴于现有技术所存在的不足,本发明所要解决的技术问题在于提供一种基于哈希的聚簇表存储方法。该方法能够提供跨过索引直达元组的数据库存储管理机制。
为实现上述的发明目的,本发明采用下述的技术方案:
一种基于哈希的聚簇表存储方法,所述数据表由元组和列构成,其特征在于包括以下步骤:
步骤1:预先初始化空的数据表页面空间;
步骤2:指定所述数据表的一个或多个列为哈希列;
步骤3:根据各个元组的所述哈希列的值来计算哈希值,作为相应元组的存储位置;
步骤4:根据所述哈希值映射出所述相应元组在所述页面空间上的行指针;
步骤5:根据所述行指针,将所述相应元组插入到所述页面空间。
其中较优地,根据可能用到的元组的、哈希列的哈希值的个数,对所述页面空间进行动态预分配。
其中较优地,在所述步骤3中,当各个元组的哈希列的哈希值中出现两个或多个哈希值相同时,对相应的哈希值增加溢出链,将该元组存储到溢出链中。
其中较优地,还包括对所述聚簇表的查询步骤:
根据指定的哈希列的值计算出相应的哈希值,通过所述哈希值按照已建立的映射关系找到行指针,根据所述行指针找到相应的元组。
其中较优地,当所述聚簇表是非独特类型聚簇表时,所述查询步骤还包括:对查询得到的、符合行指针的多条元组的哈希列的值进行验证。
其中较优地,当所述聚簇表是独特类型聚簇表时,对查询得到的符合行指针的多条元组的哈希列的值,不进行验证。
其中较优地,如果在查询过程后面有插入操作,那么还包括动态扩充聚簇表的页面空间的步骤:
获得需要插入的元组的哈希列的值,然后计算出哈希值,并通过一对一的映射得到所述需要插入的元组存储在页面上的行指针,然后根据所述行指针找到对应的页面进行插入。
其中较优地,如果所述行指针找到的页面的页面空间不够,则将所述需要插入的元组存储在溢出链中。
其中较优地,如果查询列包括所述数据表的所有哈希列,或者使用特定哈希函数时的查询列为哈希列的前缀以及排序操作,使用聚簇扫描方式进行扫描。
本发明所提供的聚簇表存储方法对现有哈希聚簇技术做了进一步改进,可以实现跨过索引直达元组的数据库存储管理机制,从而在大规模数据库系统的使用过程中避免了索引对缓存资源的大量占用,改善了数据库系统的使用性能。
附图说明
下面结合附图和具体实施方式对本发明做进一步的详细说明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京人大金仓信息技术股份有限公司,未经北京人大金仓信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110392274.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:家禽育种谱系孵化用的出雏笼
- 下一篇:一种新型监控摄像机