一种数据管理和数据搜索方法技术

技术编号:3803868 阅读:220 留言:0更新日期:2012-04-11 18:40
本发明专利技术为一种数据管理和数据搜索方法,数据管理包括步骤:根据数据总量N确定管理层数m;为每一数据分配唯一的数据id;若*为整数则确定每个父ID目录下子目录或数据个数为*,第k层父ID个数为(*)↑[k];若*为非整数则确定每个父ID目录下子目录或者数据个数为[*+0.5],第k层父ID个数为[*+0.5]的k次方,0<k<m;根据数据id逐一生成m-1层父ID,每层父ID各自组成递增或递减数列;数据搜索包括步骤:采用父ID生成规则根据数据id生成m-1个父ID;搜索m-1个父ID;在第m-1父ID目录下搜索数据id。本发明专利技术实现了全自动的分层数据管理和只有数据对象名称情况下的高效数据搜索。

【技术实现步骤摘要】

本专利技术涉及计算机数据处理
,具体涉及一种数据管理和数据搜索 方法。
技术介绍
海量数据管理及其相应的搜索方法, 一直是数据管理的难题之一。高效率 的数据搜索方法可以提高数据管理系统的运行效率,节省用户的宝贵时间,有 巨大的实际应用价值。现有技术对数据的管理和搜索存在两种方式, 一种是比较简单的数据管理, 就是把所有的数据都放在一起,如图1所示。这样,需要搜索文件时,就要花 费大量的时间,数据搜索效率低。另外一种方法是为了有效地管理大量的文件,操作系统采用子目录夹式的 目录管理方法,如图2所示某个具体的数据必须存放于一个目录中,而该目 录也存放于另一个目录中,层层递进,直至最上层的目录为止。如对Windows 系统中而言,D盘的某个图片文件的路径为"D:\pictures\park
ree.jpg"。这样, 在目的文件之上有两层文件夹,分别为pictures和park,如果加上盘符"D:\", 则是三层。这样的文件管理方法,井井有条,当用户可以记住文件的绝对路径 时,可以很快搜索到相应的文件。但是,当用户只知道文件名,而不知道其对 应的绝对路径时,要搜索到相应的文件可要花费不少时间。该数据的管理需要 用户参与(给文件夹命名);要求搜索对象的信息越多越好(最好是绝对路径),否则搜索数据需要花费比较长的时间。以上两种数据管理方法,在只有数据对象名称时,若要进行数据搜索,都 需要花费比较长的时间,因而搜索效率低。此外,虽然文件夹式的数据管理, 在有详细的搜索对象信息(例如绝对路径)时,搜索效率比较高;但是详细的 搜索对象信息,尤其是数据所存放的绝对路径, 一般不容易获取,而且信息量 大,这无疑增加了系统的消耗
技术实现思路
针对现有技术中所存在的上述技术问题,本专利技术的目的在于提供一种基于 子目录式的数据管理和数据搜索方法,实现了全自动的分层数据管理和只有数 据对象名称情况下的高效数据搜索。为了解决现有技术中所存在的技术问题,本专利技术提供如下技术方案 一种 数据管理和数据搜索方法,数据管理包括步骤IIO,根据数据总量N确定管理层数m;步骤120,为每一数据分配一个唯一的数据id;步骤130,若^为整数,则确定每个父ID目录下的子目录或数据个数为#,第k (0<k<m)层的父ID个数为0^);若^为非整数,则确定每个 父ID目录下的子目录或者数据个数为,第k (0<k<m)层的父ID 个数为的k次方;步骤140,根据数据id逐一生成m-l层父ID,每层^或个父 ID各自组成递增或递减数列;采用目标数据所对应的数据id作为搜索信息,数据搜索包括步骤150,采用步骤140中所述的父ID生成规则,根据目标数据所对应的 数据id,生成目标数据所对应的m-l个父ID;步骤160,在第1至第m-l层父ID内搜索m-l个父ID;步骤170,在目标数据的第m-l父ID目录下,搜索数据id。所述m满足腦^^(加")x附^。在本专利技术一个优选的实施例中,步骤140所述的每层^或个 父ID各自组成公差为1、第一项为1、最后一项为该层父ID个数的等差递增数 列;或为公差为l、第一项为该层父ID个数、最后一项为1的等差递减数列。在本专利技术另一个优选的实施例中,步骤140所生成的m-l层父ID中,当^为整数时,第m-r层父ID为公差为一^、第一项为一《^的等差递增数列;或为公差为产^、最后一项为一^的等差递减数列,其中(KKm。 与现有技术相比,本专利技术具有如下优点及有益效果1、本专利技术的数据搜索在搜索信息少的前提下,完全达到了搜索信息完全的 子目录式数据管理方法下的数据搜索效率,比简单的数据管理方法下的数据搜 索效率高。52、 本专利技术只需要用户确定数据管理的层数,降低了用户的参与度,提高了 用户的操作方便性。对父ID目录和该目录下的数据进行排序管理,那么整个数 据搜索效率可以得到进一步的提高,实现的良好扩展性。本专利技术给用户提供了 一种更加方便、简单、高效而又扩展性好的数据管理和数据搜索方法。3、 在最不理想的情况下,即数据无序排列的前提下,整个数据搜索过程的时间复杂度仅为mO(^)或mO(),与现有搜索技术的时间复杂度相 比,降低了好多。附图说明图1是现有技术中比较简单的数据管理方法的示意图2是现有技术中采用子目录夹式的目录管理方法的示意图3是本专利技术实施例1生成第m-l层父ID的示意图4是本专利技术实施例2生成第m-l层父ID的示意图5是本专利技术的数据管理流程图6是本专利技术的数据搜索流程图。具体实施例方式下面结合实施例及附图对本专利技术作进一步详细的描述,但本专利技术的实施方 式不限于此。 实施例1本专利技术为,该方法主要包括数据管理和数据 搜索两大部分。其中所述的数据管理,包括如下步骤步骤IIO,根据管理的数据总量N确定数据管理所需要的层数m。由于m越大数据管理越复杂,在确定层数m时,要求^与""^相差不是太大,具体是要求^与^^处于同一数量级;当层数m满足^x^^ —+时,数据搜索的效率最高。也就是说,最优层数m满足^与^^处于同一数量级;次优层数m满足腦^^(附+ D,^。步骤120,为每一数据分配一个唯一的数据id,作为该数据的标识。其中数 据id是根据每一数据的名称所生成的,且任何时间根据同一数据所生成的数据 id必须相同。满足上述条件的生成算法有很多,最简单的算法就是直接采用数据名称来 作为其标识,即直接采用数据名称作为数据id。虽然数据名称可以作为数据id, 但数据标识是数据的一个抽象概念,与数据名称是有所区别的。常用的信息摘要算法(Message-digest Algorithm 5,简称MD5)也是满足上述条件的生成算法 中的一种。由于MD5算法的通用性,本实施例采用常用的MD5算法生成128 位的数据id,所生成的128位的数据id可以管理的数据总数N为2的128次方, 这是一个非常巨大的数字,可以满足绝大多数情况下的数据管理。步骤130,根据数据的总数N和管理层数m,确定每个父ID目录下的子目录或数据个数。若^为整数,则确定每个父ID目录下的子目录或者数据个数为^,第k (0<k<m)层的父ID个数为(^^)。若^为非整数,则令每个父ID目录下的子目录或者数据个数为+0.5)的取整数,艮卩;第k层的父ID个数为的k次方。因为0.5]为最优层数m与次优层数m-l所对应每个父ID目录下的子目录 或者数据个数的最小整数。这样实现了对数据搜索效率影响小的情况下,确定 了某个父ID目录下的子目录或者数据的个数。另外,如果各层的子目录数量或者数据总数N不被整除时,令多余出来的子目录或数据对应一个父ID目录即可。例如N- 100000,层数取m^7时,因为7X ^100000=36.26 "8 X ^羅000 = 33.74,因此对^100000 " 5.18取整后,每个父 ID目录下的子目录或者数据个数为6。则第m-l层有16667 (100000除以6等 于16666余4)个目录;第m-2层有2778 (16667除以6等于2777余5)个…… 依次类推,可以得到每层的子目录或者数据个数。步骤140,根据数据id逐一生成m-l层父ID。数据id位于第m层,m-l 层父ID分别称为第1层父ID、第2层父本文档来自技高网
...

【技术保护点】
一种数据管理和数据搜索方法,其特征在于,数据管理包括如下步骤: 步骤110,根据数据总量N确定管理层数m; 步骤120,为每一数据分配一个唯一的数据id; 步骤130,若*为整数,则确定每个父ID目录下的子目录或数据个数为 *,第k层的父ID个数为*若*为非整数,则确定每个父ID目录下的子目录或者数据个数为[*+0.5],第k层的父ID个数为[*+0.5]的k次方,其中0<k<m; 步骤140,根据数据id逐一生成m-1层父ID,每层*或[*+0.5]个 父ID各自组成递增或递减数列; 采用目标数据所对应的数据id作为搜索信息,数据搜索包括如下步骤: 步骤150,采用步骤140中所述的父ID生成规则,根据目标数据所对应的数据id,生成目标数据所对应的m-1个父ID; 步骤1 60,在第1至第m-1层父ID内搜索m-1个父ID; 步骤170,在目标数据的第m-1父ID目录下,搜索数据id。

【技术特征摘要】

【专利技术属性】
技术研发人员:蔡才冠
申请(专利权)人:广东威创视讯科技股份有限公司
类型:发明
国别省市:81[中国|广州]

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

1