嵌入式系统中档案操作与快速检索方法

文档序号:8339760阅读:682来源:国知局
嵌入式系统中档案操作与快速检索方法
【专利说明】嵌入式系统中档案操作与快速检索方法
[0001]
技术领域
[0002]本发明涉及一种嵌入式系统中的档案操作与检索方法。
【背景技术】
[0003]嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,功能、可靠性、成本、体积、功耗要求相对严格的专用计算机系统。嵌入式系统特点是:系统内核小,专用性强,系统精简,系统与应用软件同步升级,系统中的软件一般都固化在存储器芯片中。
[0004]目前,随着物联网的迅猛发展,嵌入式系统在物联网身份识别领域的应用愈来愈广泛。在嵌入式身份识别应用中,内存空间小,CPU主频低,没有数据库引擎等条件限制,造成大数据量的档案检索,成了程序员头疼的问题。档案检索通常方法是:将档案整体加载到内存,在内存中顺序查找关键字,找到后返回该行的档案。在CPU主频400MHz,内存128M的嵌入式系统和同等级的系统中,做10万条档案通常检索方法测试,最长检索时间是2秒。检索速度超过I秒用户是不能接受的,因此,多数厂家给出档案最大容量是5万条。

【发明内容】

[0005]本发明所要解决的技术问题是,提供一种嵌入式系统中档案操作与快速检索方法,在快速遍历算法基础上,完成档案加载,快速检索、增加、删除、过滤等操作;同时,尽量降低
内存消耗,提高系统运行效率。
[0006]本发明的技术方案如下:
一种嵌入式系统中档案操作与快速检索方法,其特征在于按照以下步骤进行加载与检索:
(1)、将档案文件的行信息按序加载到内存中,形成“行索引”,用于建立列索引和文件的对应关系,便于档案内容的快速定位;
(2)、将档案中的查询列按关键字排序后加载到内存中,形成“列索引”,为了减少内存占用,只加载查询列;
(3)、包括关键字检索、档案加载、增加档案、删除档案、设置过滤条件以及取某行档案数据在内的档案操作:首先在列索引中查找关键字,找到所在行号后,在文件中定位相应的行,然后操作档案数据。其中关键字检索采用二分查找算法检索关键字,增加档案和删除档案在检索的基础上做文件操作,条件过滤在检索的基础上读取数据。
[0007]关键字检索方法是:在列索引中采用二分法查找关键字,找到后取档案行号,在行索引中二分查找行号,找到后取行位置和长度,在文件中找到位置后,按照有效数据长度取出数据。
[0008]所述档案加载方法是:从档案文件中逐行读出档案数据,将行号、起始位置和长度依次存储在行索引内存块中;将行数据分割得出关键列值,将其与行号一起形成列索引信息,顺序存储在列索引内存块中;文件读取完毕后,将列索引信息按照关键字先后顺序排序,生成档案的列索引。
[0009]所述增加档案方法是:将要增加的档案信息写入档案文件,获得档案的行号、起始位置、长度和关键字,生成行索引,检索关键字找到列索引插入位置,将关键字和行号插入列索引内存块中。
[0010]删除档案的方法是:在列索引块中找到删除档案的关键字的行号,删除列索引块中的关键字索引信息,检索行索引位置,删除档案内容和行索引块中的行索引信息。
[0011]所述设置过滤条件的方法是:在档案的列索引块中查找满足条件的索引集合的首尾索引号,将这两个值保存到档案信息结构中,标识下次执行按行取档案数据的起始和终止索引号。
[0012]所述取某行档案数据的方法是:如果没有设置过滤条件,自第O行开始,从行索引块中查找相应的行索引信息,然后从文件中取出该行档案数据;如果设置了过滤条件,从起始索引号位置起,顺序查找某行的索引值,在行索引块中找到该行的行索引信息,然后从文件中取出该行档案数据。
[0013]二分查找,又称为折半查找,当数据量很大时适宜采用该方法。二分查找只适用于有序表,且限于顺序存储结构。假设有序表是递增排列的,首先确定区间的中间位置,待查值与中间位置的数值比较,如果相等,则查找成功并返回该位置。否则需重新确定查找区间,继续二分查找。重新确定查找区间的办法如下:如果中间位置的值大于待查值,则新区间为当前中间值的前半部分;如果中间位置的值小于待查值,则新区建为当前中间值的后半部分。这样,每次经过中间值与待查值的比较,就可以确定是否查找成功,不成功则查找区间减半,直至找到关键字或者当前区间为空为止。标准二分法适用于查找单个元素。
[0014]在标准二分法查找的基础上,扩展后可以实现数据块查找。如图2所示,某块数据中有多个数据与所要查找的数据相等,在排好序的基础上,利用标准二分法,查找成功后,继续遍历数据,直到查找到所需元素在数据块中最顶端的位置,然后将找到的最顶端位置作为新的搜索区域的起始位置,按照上述步骤,查找到所需元素在数据块中最底端的位置。这样便可实现数据块的定位。按照类似的方法,单独查找数据块最顶端位置和最底端位置,可以查
找任意满足某一区间(==、>、多、<、<)的数据块的定位。
[0015]本发明的积极效果在于:
顺序检索和快速检索的时间和空间复杂度对比。
[0016](I)、顺序检索方法时间复杂度和空间复杂度:
时间复杂度:Τ(η)=0(η);
空间复杂度:S(n) =O(η)。
[0017](2)、本发明快速检索方法时间复杂度和空间复杂度:
时间复杂度:T(n)=0(log2n);
空间复杂度:S(n) =O(η)。
[0018]显而易见,在档案数相同情况下,相对于顺序检索方法,本发明快速检索方法时间复杂度优势明显,极大提高了检索效率;同时,快速检索方法只加载索引内容,降低了内存损耗。
[0019]经过测试,在CPU主频400MHz,内存128M的嵌入式系统和同等级的系统中,做20 万条档案两种检索方法对比测试,快速检索比顺序检索效率提高150倍左右。
[0020]档案检索功能虽然简单,但在身份识别领域中是一个重要环节,它的工作效率直接影响整个系统的性能。本发明档案快速检索方案,在处理速度和内存使用上,充分考虑到了嵌入式系统的特点,在性能上模糊了嵌入式系统的局限性,成功解决了顺序检索方案速度慢,耗用内存大的问题。本发明档案快速检索的实现,对于身份识别领域应用开发具有深远的现实意义,给于嵌入式系统应用开发以深刻启迪。
【附图说明】
[0021]图1是本发明关键字检索示意图。
[0022]图2是本发明本发明所采用的二分法扩展示意图。
【具体实施方式】
[0023]下面结合附图和【具体实施方式】进一步说明本发明。
[0024]本发明方案制定考虑了以下几点。首先,档案检索不能每次在文件中查找,因为每次在文件中查找速度会很慢,要在内存中查找;其次,应用占用内存不能太大,要预留一些空间给其他程序使用;最后,大数据量的档案(10万条以上)检索时间在I秒之内完成。
[0025]本发明
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1