文件数据库多级索引技术制造技术

技术编号:3769098 阅读:446 留言:0更新日期:2012-04-11 18:40
本发明专利技术是一种文件数据库多级索引技术,即InforGuard水印模块采用的水印存取机制。它包括数据存储和数据查询两个步骤,通过建立独立的索引文件并按照HASH算法存储索引,通过两阶段快速定位的多级索引技术,克服传统文件数据库效率低下的弱点,显著提高了文件数据库查询数据的性能。

【技术实现步骤摘要】

本专利技术涉及一种文件数据库多级索引技术,即InforGuard水印模 块采用的水印存取机制。
技术介绍
在功能上,InforGuard为验证网页文件的合法性,必须存储网页 文件的原始水印(水印即文件的摘要信息),以便比对。每个网页都对 应自己的水印,水印总数量与网站上网页的总数量成正比,网站规模 很大时,就必须存储大量的水印数据。为保证水印存储和查询的高效 率,InforGuard产品中设计了 一个基于多级索引技术的文件数据库来 存储水印信息。文件数据库区別于各种商业数据库(如Oracle等),特点是轻便、 专用性强,许多产品都会实现自己的文件数据库来存储数据。 目前,在此领域采用的方案为存储数据的文件由定长的记录组成,记录是固定结构,包含key 和data两部分,key即数据的键信息,而data存储数据内容信息。 记录之间紧凑存储。查询记录时,需要遍历整个文件对.key进行匹配, 找到需要的data。该方法的特点是实现简单,易于控制,稳定性和可靠性较高。但 是查询效率是该项技术使用的主要限制。虽然通过内存緩冲技术(即 cache技术)可以提高查询的效率,但是受实际环境的限制,当需要 存储大量数据时,仍然很难满足效率上的要求。
技术实现思路
本专利技术的目的就是针对上述的不足,提供了一种基于文件数据库 的多级索引技术,能够有效提高文件数据库的查询性能,从而扩展文 件数据库的可用范围。多级索引技术,主要采用了以下技术手段1. 建立独立的索引文件当在数据文件中存储数据记录(包含key和data )时,将key和 该记录的存储偏移值作为索引另存在一个独立的文件中,称为索引文 件。当根据key查询数据时,先从索引文件中找到索引,然后再依据 其中包含的偏移值,直接从数据文件中定位到目标记录。2. 按照HASH算法存储索引3索引文件中对索引的存储不是按照顺序紧凑的方法,而是通过HASH算法把记录的key转化为数值,作为存储该索引的位置偏移量。 任何HASH算法都存在冲突的问题,即不同的key可能会转化出相同的 位置偏移量,因此本次索引要存储的位置可能已被以前的索引占据。 可以采取最简单的策略解决,即从该沖突位置向后查找第一个空白位 置,进行存储。实现时不限于该策略。根据上述技术,本专利技术提供的文件数据库多级索引技术包括数据 存储和数据查询两个步骤,其中,数据存储包括如下步骤1-1)查找数据文件空白位置存储数据,数据包括键(key)和值 (data)两部分,键是查询数据的关键字,将键和值组成名值对结构, 作为存储记录,将记录存入数据文件中的空白位置,该位置标记为 data_pos i t ion;1-2) HASH转换产生索引存储位置,以数据的键(key)为参数, 调用HASH函数,转换为一个数值,作为索引存储位置,该位置标记为 index_pos i t ion;1- 3)在索引文件中存储索引,索引包括两部分,数据的键(key) 以及1-1 )步中获得的data — position,打开索引文件,以l-2)步产 生的index_position为偏移量,将索引存储到该位置;如果该位置已 经被占用,则从该位置起向后查找第一个空白位置进行存储;数据查询包括如下步骤2- 1) HASH转换计算出索引的存储位置,以数据的键(key)为参 数,调用HASH函数,转换结果即为索引存储位置;2_2)从索引文件取出索引,打开索引文件,从2-l)步获得的存 储位置开始,向后逐个匹配key,查找目标索引(多数情况下,首个 就是匹配的索引);2-3)从数据文件中取出数据,2-2)步获得的索引信息,包含查 询数据在数据文件中的存储位置,故打开数据文件,按上述位置直接 取出数据。本专利技术提供的文件数据库多级索引技术具有如下优点 l.显著提高查询性能通过HASH算法,可以从索引文件中快速定位到索引信息,进而通 过索引信息直接获得数据的存储位置。因此,相对于传统的文件数据 库的遍历查找机制,本机制定位目标数据的速度明显提高。2.保证数据文件存储空间的利用率本机制把索引信息和数据信息分开存储。用于存储数据信息的数 据文件,仍然按传统方法紧凑存储,因此数据文件的内部空间可以充分利用;用于存储索引信息的索引文件,各索引存储的位置是用HASH 函数产生的,虽然不是紧凑存储,中间存在一定的空白记录区,但是 索引的长度相对较小,因此空白区的消耗相对不明显。索引文件在存 储利用率上付出一定的代价,换取了查询的高效率。 附图说明图l为本专利技术实施例中数据存储的流程图; 图2为本专利技术实施例中数据查询的流程图; 图3为本专利技术实施例中文件数据库多级索引示意图; 图4为本专利技术实施例中多级索引文件数据库实施例流程图。 具体实施例方式一种文件数据库多级索引技术,其过程如图3所示,包括数据存 储和数据查询两个步骤,其中,如图l所示,数据存储包括如下步骤 步骤开始于1Q1:存储过程开始。然后进入步骤102:查找数据文件空白位置存储数据,数据包括 键(key)和值(data)两部分,键是查询数据的关键字,将键和值组 成名值对结构,作为存储记录,将记录存入数据文件中的空白位置, 该位置标记为data —pos i t ion。再进入步骤103: HASH转换产生索引存储位置,以数据的键(key ) 为参数,调用HASH函数,转换为一个数值,作为索引存储位置,该位 置标记为index —pos i t ion。然后再进入步骤104:在索引文件中存储索引,索引包括两部分, 数据的键(key)以及步骤102步中获得的da ta —pos i t ion,打开索引 文件,以步骤103中产生的index-position为偏移量,将索引存储到 该位置;如果该位置已经被占用,则从该位置起向后查找第一个空白 位置进行存储。然后为步骤105:存储过程结束。如图2所示,数据查询包括如下步骤步骤开始于2Q1:查询过程开始。然后进入步骤202: HASH转换计算出索引的存储位置,以数据的 键(key)为参数,调用HASH函数,转换结果即为索引存储位置;然后进入步骤203:从索引文件取出索引,打开索引文件,从步 骤202中获得的存储位置开始,向后逐个匹配key,查找目标索引(多 数情况下,首个就是匹配的索引)。然后进入步骤204:从数据文件中取出数据,步骤203获得的索 引信息,包含查询数据在数据文件中的存储位置,故打开数据文件, 按上述位置直接取出数据。最后为步骤205:查询过程结束。为了更清晰的描述上述多级索引文件数据库的实现,如图4所示, 以下用 一个简单的人员信息数据库为例说明存储人员名字(key)和地 址(data)信息,可以方便的按名字查出他的地址。本例中假定人名不 重复。名字用8字节固定长度存储,地址用128字节固定长度存储,名 字和地址组成数据记录,存储到数据文件中,因而数据文件中存储的 记录长度是136字节(名字+地址)。相应的,索引文件中的记录由名字和偏移量组成,偏移量是4字 节整数型,因此索引记录长度12字节(名字+偏移量)。存储"张三"及他的地址"长安街44号"这条信息时,(1) 从数据文件中找到第一个空白记录位置,假定该空白位置相对 于数据文件开头的距离是3条记录的长度本文档来自技高网...

【技术保护点】
一种文件数据库多级索引技术,其特征在于:包括数据存储和数据查询两个步骤,其中, 数据存储包括如下步骤: 1-1)查找数据文件空白位置存储数据,数据包括键(key)和值(data)两部分,键是查询数据的关键字,将键和值组成名值对结 构,作为存储记录,将记录存入数据文件中的空白位置,该位置标记为data_position; 1-2)HASH转换产生索引存储位置,以数据的键(key)为参数,调用HASH函数,转换为一个数值,作为索引存储位置,该位置标记为index_ position; 1-3)在索引文件中存储索引,索引包括两部分:数据的键(key)以及1-1)步中获得的data_position,打开索引文件,以1-2)步产生的index_position为偏移量,将索引存储到该位置;如果该位置 已经被占用,则从该位置起向后查找第一个空白位置进行存储; 数据查询包括如下步骤: 2-1)HASH转换计算出索引的存储位置,以数据的键(key)为参数,调用HASH函数,转换结果即为索引存储位置; 2-2)从索引文件取出索 引,打开索引文件,从2-1)步获得的存储位置开始,向后逐个匹配key,查找目标索引(多数情况下,首个就是匹配的索引); 2-3)从数据文件中取出数据,2-2)步获得的索引信息,包含查询数据在数据文件中的存储位置,故打开数据文件,按上述 位置直接取出数据。...

【技术特征摘要】

【专利技术属性】
技术研发人员:王进刘毅枫石磊黄三伟刘宗福刘春
申请(专利权)人:山东中创软件商用中间件股份有限公司
类型:发明
国别省市:88[中国|济南]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1