数据库管理、检索方法及嵌入式系统的制作方法

文档序号:6487878阅读:116来源:国知局
数据库管理、检索方法及嵌入式系统的制作方法
【专利摘要】本发明公开了一种数据库管理、检索方法及嵌入式系统,其中所述数据库管理方法包括以下步骤:在所述SQLite数据库中建立一关键字和索引参数表,在所述DBM数据库中建立一索引参数和存储数据结构表;在所述SQLite数据库查找是否存在所述输入关键字;从所述SQLite数据库读取与所述输入关键字对应的索引参数,并在所述DBM数据库查找所述索引参数所对应的存储数据结构;将所述索引参数和所述输入存储数据加入所述索引参数和存储数据结构表。本发明还公开了检索所述数据库管理方法建立的数据库的数据库检索方法,以及具有所述数据库的嵌入式系统。本发明有效地利用了嵌入式系统的存储空间还实现了高效检索的功能。
【专利说明】数据库管理、检索方法及嵌入式系统
【技术领域】
[0001]本发明涉及一种数据库管理、检索方法及嵌入式系统,特别是涉及一种用于嵌入式系统的数据库管理、检索方法及使用所述方法的嵌入式系统。
【背景技术】
[0002]嵌入式系统中的数据存储和管理主要包含两个部分,一个是将用户或者系统管理者下发的配置命令中的数据保存在本地的存储设备;另一部分则是将这些配置命令和数据传递到驱动等下层模块,完成对本地设备的参数配置。
[0003]随着嵌入式系统的广泛应用及用户对数据处理和管理需求的不断提高,各种智能设备与数据库技术的紧密结合得到重视。在设计这样数据库时不仅要考虑数据操作的效率,还需要考虑嵌入式设备本身存储容量小的特性
[0004]但是目前很多嵌入式系统中基本只采用一种数据库进行存储和管理,比如:SQLite数据库或DBM数据库。
[0005]其中SQLite数据库是一款轻型的数据库,是遵守ACID (原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它能够支持Windows/Linux/Unix (微软公司等制作的操作系统)等等主流的操作系统,
[0006]其中DBM数据库是Unix系统的数据库,使用哈希结构保存非结构化数据。但这个数据库不符合ANSI (美国国家标准协会)标准的SQL (结构化查询语言)技术规范,它只是一个存储检索数据的例程。DBM数据库适合存储静态的,索引化的数据结构,它在创建数据项时非常慢,但检索数据项时非常快。
[0007]在嵌入式系统中采用SQLite数据库时比较的常用的法是创建多个包含数据的表,在通过SQL语言来进行相关操作。该方法的缺点是只支持特定数据类型,无法存储用户自定义的数据类型;
[0008]在嵌入式系统中采用DBM数据库时通常采用的方法是将所有数据逐条的存储在数据库中,之后通过遍历整个数据库来进行后续的操作。缺点是查找效率低,相对比较浪费系统资源。

【发明内容】

[0009]本发明要解决的技术问题是为了克服现有技术中嵌入式系统的数据库操作效率低,兼容性差的缺陷,提供一种数据库管理、检索方法及嵌入式系统,通过在利用SQLite数据库和DBM数据库的优点,实现在嵌入式系统资源的利用率。
[0010]本发明是通过下述技术方案来解决上述技术问题的:
[0011]本发明提供了一种数据库管理方法,用于管理嵌入式系统的数据库,其特点是,所述嵌入式系统包括一 SQLite数据库和一 DBM数据库,所述数据库管理方法包括以下步骤:
[0012]S1、基于一关键字集合在所述SQLite数据库中建立一关键字和索引参数表,在所述DBM数据库中建立一索引参数和存储数据结构表;
[0013]其中在所述SQLite数据库中建立的关键字和索引参数表和在所述DBM数据库中建立索引参数和存储数据结构表均属于SOLite数据库和DBM数据库中已知的惯用存储和检索手段,所以此处不再详细赘述。
[0014]S2、读入一输入数据,并将所述输入数据拆分为一输入关键字和一输入存储数据;
[0015]本发明中在用户向嵌入式系统的数据库数据时,为了便于数据库的检索以及存储利用率的提高,需要提取便于检索的关键字,其中所述关键字的种类是基于用户的实际需要,例如列车行业的常用术语等,自由地定义和设置,所述关键字的提取方式可以基于关键字的种类自由地选择,本发明不限制所述输入数据中关键字的提取方式和关键字的种类。
[0016]S3、在所述SQLite数据库查找是否存在所述输入关键字,若存在进入步骤S4,否则进入步骤S6 ;
[0017]S4、从所述SQLite数据库读取与所述输入关键字对应的索引参数;
[0018]S5、在所述DBM数据库中查找所述索引参数所对应的存储数据结构是否存在,若存在,流程结束,否则将所述输入存储数据加入所述存储数据结构中,流程结束;
[0019]本发明中在关键字已经在SQLite数据库中存在的情况下,在DBM数据库中的存储数据结构加入新的输入数据。其中所述存储数据结构基于所述输入数据的种类进行任意的选择,例如数组、栈或表等结构,本发明中不限制所述存储数据结构的形式。
[0020]S6、将所述输入关键字加入所述关键字和索引参数表并相应地生成对应于所述输入关键字的索引参数;
[0021]S7、将对应于所述输入关键字的索引参数和所述输入存储数据加入所述索引参数和存储数据结构表。
[0022]本发明还在SQLite数据库中添加新的关键词,并相应地在DBM数据库中添加新的输入数据。从而进一步地扩展存储的数据。
[0023]本发明还提供了一种数据库检索方法,用于检索嵌入式系统的数据库,其特点是,使用通过如上所述的数据库管理方法得到的嵌入式系统的数据库,其中所述数据库检索方法包括以下步骤:
[0024]Sn、读入一输入关键字;
[0025]S12、在所述SQLite数据库中查找是否存在所述输入关键字,若存在,进入步骤S13,否则重复步骤S11 ;
[0026]S13、从所述SQLite数据库中读取与所述输入关键字对应的一索引参数;
[0027]S14、在所述DBM数据库中查找与所述索引参数对应的存储数据结构;
[0028]S15、返回所述存储数据结构。
[0029]本发明中利用SQLite数据库的快速检索能力和DBM数据库的存储数据多样性地特点,在嵌入式系统中实现了节省空间和自定义数据结构的存储的功能。
[0030]本发明又提供了一种嵌入式系统,其特点是包括一 SQLite数据库和一 DBM数据库,其中所述SQLite数据库和DBM数据库通过如上所述数据库管理方法建立。
[0031]在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
[0032]本发明的积极进步效果在于:[0033]由于现有的嵌入式设备中存储设备的容量相对比较小,在完成系统、处理器等运行任务的同时还要存储大量的数据,因而需要合理的利用这些存储空间;同时在复杂的系统数据架构下,有大量的结构复杂的数据需要存储。
[0034]所以本发明的数据库管理、检索方法及嵌入式系统,不仅考虑了存储空间的有限性,也考虑了系统操作的效率,在系统中同时采用SQLite数据库和DBM数据库。
[0035]而且利用SQLite数据库快速查找的特性,将需要快速定位的参数保存在SQLite数据库中,并且利用DBM可以保存自定义数据的特性,将需要传递给系统其它模块的自定义结构保存在DBM数据库中。
[0036]从而在管理和操作数据库时通过在数据库中加入特定的索引来完成SQLite数据库和DBM数据库中数据的操作。
[0037]所以有效地利用了嵌入式系统的存储空间还实现了高效检索的功能。
【专利附图】

【附图说明】
[0038]图1为本发明的较佳实施例的嵌入式系统的结构示意图。
[0039]图2为本发明的较佳实施例的数据库管理方法的流程图。
[0040]图3为本发明的较佳实施例的数据库检索方法的流程图。
【具体实施方式】
[0041]下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0042]如图1所示,本实施例的嵌入式系统包括一 SQLite数据库I和一 DBM数据库2。
[0043]其中本实施例中首先建立所述SQLite数据库I的模型:
[0044]对于用户端或者管理员来说,需要对嵌入式设备进行数据的发送和配置信息的管理,而这些数据会以一定形式放入数据库进行保存,在本实施例中我们仅以字符串组的形式进行讨论。这些字符串组包含了多个关键字和参数值,如何将这些具有多个关键字中的有效数据保存到相应的数据库中,就需要对数据库中的表进行查找。所述SQLite数据库I在这里保存的是字符串组中的关键字和对应的DBM数据库2的索引,并非具体的参数,并且对于由几个关键字组成的唯一的一条记录赋予一个ID (身份识别)号,该ID号唯一地标识一组字符串。
[0045]所述SQLite数据库I的模型的建立和查找功能主要包括以下几个部分:首先建立一张由字符串关键字组构成的表;然后将每条字符串组对应一个所述DBM数据库2的索引;此后当用户输入一串字符串组时,对所述SQLite数据库I以关键字的方式进行查询;然后返回这些关键字对应的索引。
[0046]然后建立所述DBM数据库2的模型:
[0047]在所述SQLite数据库I生成索引后,以这个索引生成一个所述DBM数据库2中的表,该表中保存了一个或多个参数,而且可能是编码过程中自定义的结构体,所述DBM数据库2可以很好的将这些数据保存至数据库便于操作。当得知某个配置所对应的索引后,就可以根据该索引号在所述DBM数据库2中找到对应的表,然后将数据取出进行修改和配置。
[0048]以上两个步骤完成后,当管理者或者用户在输入一系列配置命令后,首先根据字符串组中的关键字从所述SQLite数据库I中查找到索引,再以此索引在所述DBM数据库2中查询出具有特殊格式结构体或者数据,然后进行操作。
[0049]首先,本实施例中所述SQLite数据库I中的查找要比其他的数据库效率要高,因为SQLite数据库I是基于B-tree (B树,一种数据结构)的数据结构查找的,鉴于嵌入式开发中复杂的数据结构,如果不用该SQLite数据库I查找而直接从所述DBM数据库2中查找的话,所述DBM数据库2的内容会非常复杂,相对查找效率也会降低,因此在复杂的数据结构下本实施例中两次查找数据库的方案相对于依次查找的效率有所提高。
[0050]此外,本实施例中主要是通过降低字符串数组中重复的关键字来降低存储空间的,比如两个字符串:a.b.c.X和a.b.c.y,其中x和y是需要修改的参数变量,而前面的字符是关键字的标识,如果不用所述SQLite数据库I的话就需要存储两个数据,那么这些固定的关键字就造成了空间的浪费,引用SQLite数据库I之后,只需要存储一次a.b.C,再进一步确定是X还是Y,从而提闻了空间的利用率。
[0051]所以如图2所示,本实施例的嵌入式系统数据库管理的流程包括如下步骤:
[0052]步骤I,基于一关键字集合在所述SQLite数据库I中建立一关键字和索引参数表,在所述DBM数据库2中建立一索引参数和存储数据结构表。
[0053]步骤2,读入一输入数据,并将所述输入数据拆分为一输入关键字和一输入存储数据。
[0054]本发明中在用户向嵌入式系统的数据库数据时,为了便于数据库的检索以及存储利用率的提高,需要提取便于检索的关键字,其中所述关键字的种类是基于用户的实际需要,例如列车行业的常用术语等,自由地定义和设置,所述关键字的提取方式可以基于关键字的种类自由地选择。
[0055]步骤3,在所述SQLite数据库I查找是否存在所述输入关键字,若存在进入步骤4,否则进入步骤7。
[0056]步骤4,从所述SQLite数据,I读取与所述输入关键字对应的索引参数;
[0057]步骤5,在所述DBM数据库2查找所述索引参数所对应的存储数据结构是否存在,若否,进入步骤6,否则流程结束。.[0058]步骤6,将所述输入存储数据加入所述存储数据结构中,流程结束;
[0059]本发明中在关键字已经在SQLite数据库I中存在的情况下,在DBM数据库2中的存储数据结构加入新的输入数据。其中所述存储数据结构基于所述输入数据的种类进行任意的选择,例如数组、栈或表等结构。
[0060]步骤7,将所述输入关键字加入所述关键字和索引参数表并相应地生成对应于所述输入关键字的索引参数;
[0061]步骤8,将对应于所述输入关键字的索引参数和所述输入存储数据加入所述索引参数和存储数据结构表。
[0062]在本实施例的嵌入式系统的SQLite数据库I和DBM数据库2均已建立后,可以通过图3所示的数据库检索方法对SQLite数据库I和DBM数据库2进行关键字的检索,其中包括以下步骤:
[0063]步骤11,读入一输入关键字。
[0064]步骤12,在所述SQLite数据库I中查找是否存在所述输入关键字,若存在,进入步骤,13,否则重复步骤11。
[0065]步骤13,从所述SQLite数据库I中读取与所述输入关键字对应的一索引参数。
[0066]步骤14,在所述DBM数据库2中查找与所述索引参数对应的存储数据结构。
[0067]步骤15,返回所述存储数据结构。
[0068]通过以上的嵌入式系统的数据库管理个检索方法的【具体实施方式】的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM (只读存储器/随机存取存储器)、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请的实施例或者实施例的某些部分所述的方法。
[0069]虽然以上描述了本发明的【具体实施方式】,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
【权利要求】
1.一种数据库管理方法,用于管理嵌入式系统的数据库,其特征在于,所述嵌入式系统包括一 SQLite数据库和一 DBM数据库,所述数据库管理方法包括以下步骤: 51、基于一关键字集合在所述SQLite数据库中建立一关键字和索引参数表,在所述DBM数据库中建立一索引参数和存储数据结构表; 52、读入一输入数据,并将所述输入数据拆分为一输入关键字和一输入存储数据; 53、在所述SQLite数据库查找是否存在所述输入关键字,若存在进入步骤S4,否则进入步骤S6 ; 54、从所述SQLite数据库读取与所述输入关键字对应的索引参数; 55、在所述DBM数据库中查找所述索引参数所对应的存储数据结构是否存在,若存在,流程结束,否则将所述输入存储数据加入所述存储数据结构中,流程结束; 56、将所述输入关键字加入所述关键字和索引参数表并相应地生成对应于所述输入关键字的索引参数; 57、将对应于所述输入关键字的索引参数和所述输入存储数据加入所述索引参数和存储数据结构表。
2.一种数据库检索方法,用于检索嵌入式系统的数据库,其特征在于,使用通过如权利要求I所述的数据库管理方法建立的一 SQLite数据库和一 DBM数据库,其中所述数据库检索方法包括以下步骤: Sn、读入一输入关键字; 512、在所述SQLite数据库中查找是否存在所述输入关键字,若存在,进入步骤S13,否则重复步骤S11 ; 513、从所述SQLite数据库中读取与所述输入关键字对应的一索引参数; 514、在所述DBM数据库中查找与所述索引参数对应的存储数据结构; 515、返回所述存储数据结构。
3.一种嵌入式系统,其特征在于,所述嵌入式系统包括一 SQLite数据库和一 DBM数据库,其中所述SQLite数据库和DBM数据库通过如权利要求1所述数据库管理方法建立。
【文档编号】G06F17/30GK103593362SQ201210290704
【公开日】2014年2月19日 申请日期:2012年8月15日 优先权日:2012年8月15日
【发明者】张珠明 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1