一种嵌入式系统下的sqlite数据库应用方法

文档序号:8361509阅读:475来源:国知局
一种嵌入式系统下的sqlite数据库应用方法
【专利说明】—种嵌入式系统下的SQLITE数据库应用方法
[0001]
技术领域
[0002]本发明涉及计算机技术,特别涉及一种嵌入式系统下的SQLITE数据库应用方法。
[0003]
【背景技术】
[0004]作为开源的轻型数据库,SQLITE已经广泛用于ANDROI系统中,然而SQLITE数据库本身不带加密,数据库文件是可以用文本编辑器打开查看的。因此SQLITE数据库的安全性得不到有效保障,容易受到恶意攻击。虽然现有技术中也存在对SQLITE数据库进行加密的方法,然而现有的对SQLITE数据库的加密方法往往不能同时满足速度和安全的需要。另夕卜,随着存储器硬件技术的进步,存储器硬件成本大大,然而现有技术并未充分使用存储资源。
[0005]

【发明内容】

[0006]针对现有技术的上述缺陷,本发明提出了一种嵌入式系统下的SQLITE数据库应用方法,用以最大限度的利用存储资源的优势,在SQLITE数据库的应用中保持访问速度和系统安全性之间的平衡。所述嵌入式系统下的SQLITE数据库应用方法包括:步骤1、构建SQLITE数据库,包括:步骤1.1、在内部存储器中创建一公有数据库文件和一私有数据库文件,其中公有数据存储在共有数据库文件中,私有数据存储在私有数据库文件中;步骤
1.2、采用AES对称加密方式对公有数据库文件进行整体加密;步骤1.3、采用RAS非对称加密方式对私有数据库文件进行整体加密;步骤2、访问SQLITE数据库,包括:步骤2.1、当需要查询公有数据时,执行以下步骤:步骤2.1.1、获取对称密钥;步骤2.1.2、根据所述对称密钥解密所述公有数据库文件;步骤2.1.3、如果解密成功,则将所述公有数据库文件作为待访问数据库文件缓存至内存中;步骤2.2、当需要查询私有数据时,执行以下步骤:步骤
2.2.1、获取解密用的非对称密钥;步骤2.2.2、根据所述非对称密钥解密所述私有数据库文件;步骤2.2.3、如果解密成功,则将所述私有数据库文件作为待访问数据库文件缓存至内存中;步骤2.3、数据库利用SQL语句查询内存中的所述待访问数据库文件的副本以获得查询结果。步骤3、缓存所述查询结果,包括:步骤3.1、如果内存中没有存储HashMap映射表,则在内存中创建HashMap映射表;步骤3.2、如果外部存储器中没有存储HashMap映射表,则在外部存储器中创建HashMap映射表;步骤3.3、将查询结果分别映射至内存和外部存储器中的HashMap映射表中,所述HashMap映射表中以键和值的成对方式存储查询结果中一一对应的索引项和数据项,所述HashMap映射表同时存储与每一个数据项对应的属性,所述属性包括文件ID、表ID、主键、数据项类型;步骤3.4、将所述待访问数据库文件从内存中清除。
[0007]优选地,所述的嵌入式系统下的SQLITE数据库应用方法还包括:步骤4、当再次访问SQLITE数据库时,执行以下步骤:步骤4.1、在内存中缓存的HashMap映射表中快速查找所需访问的数据;步骤4.2、如果查找不成功,则返回步骤2。
[0008]优选地,所述的嵌入式系统下的SQLITE数据库应用方法还包括:步骤5、如果收到更新数据库的请求,则执行以下步骤:步骤5.1、根据所需更新的数据的索引项在内存中缓存的HashMap映射表中快速查找所需更新的数据;步骤5.2、根据所需更新的数据的索引项在外部存储器中缓存的HashMap映射表中快速查找所需更新的数据;步骤5.3、如果在步骤5.1和步骤5.2中查找到的数据项相同,则执行更新语句;步骤5.4、如果在步骤5.1和步骤5.2中查找到的数据项不相同,则返回数据项不同步的错误提示。
[0009]优选地,所述的嵌入式系统下的SQLITE数据库应用方法还包括:步骤6、当对称密钥或非对称密钥的时间戳失效时,执行以下步骤:步骤6.1、清除内存中缓存的HashMap映射表;步骤6.2、清除外部存储器中缓存的HashMap映射表。
[0010]本发明相比现有技术,具有以下优点:
通过设定公有数据库文件和私有数据库文件,同时对公有数据库文件和私有数据库文件分别采用AES对称加密方式和RAS非对称加密方式进行加密,并进行有效配合,实现速度和安全的系统均衡。
[0011]通过以HashMap映射方式同时将查询结果映射到内存和外部存储器中,并进行同步映射,避免恶意篡改造成的负面作用。
[0012]通过同时将查询结果映射至HashMap映射表和TreeMap映射表,并根据查询类型分别访问HashMap映射表和TreeMap映射表,提高系统整体性能。
[0013]
【附图说明】
[0014]图1是根据本发明实施例的嵌入式系统下的SQLITE数据库应用方法的流程图。
[0015]图2是活动状态下的计算进程的流程图。
[0016]图3是数据集的计算及记录的流程图。
【具体实施方式】
[0017]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0018]图1示出了根据本发明实施例的嵌入式系统下的SQLITE数据库应用方法的流程图。如图1所示,本发明的嵌入式系统下的SQLITE数据库应用方法至少包括:步骤1、构建SQLITE数据库。步骤2、访问SQLITE数据库。步骤3、缓存所述查询结果。其中,所述SQLITE数据库包括两个数据库文件,分别为公有数据库文件和私有数据库文件,分别将公有数据和私有数据分别保存在公有数据库和私有数据库,这样的设置方式虽然牺牲了些许存储资源,然而由此带来了安全性大幅增张的益处。其中,如果所要访问的数据属于首次访问的数据,则将所述数据进行缓存,特别是同时缓存到内存和外部存储器中,通过该项设置,不仅提高了 SQLITE数据库的访问速度,而且双重缓存的设置使得系统可以自动识别一些数据的丢失、错误甚至是否被恶意篡改。
[0019]在本发明实施例中,所述步骤I具体包括:步骤1.1、在内部存储器中创建一公有数据库文件和一私有数据库文件,其中公有数据存储在共有数据库文件中,私有数据存储在私有数据库文件中;步骤1.2、采用AES对称加密方式对公有数据库文件进行整体加密;步骤1.3、采用RAS非对称加密方式对私有数据库文件进行整体加密。一方面,由于AES加密方式,实现速度快,可以提高整个加密系统的效率,但是加解密使用同一个秘钥,安全性不足。而RAS加密方式,安全性更高,然而实现速度慢。另一方面,公有数据往往要求访问速度快但是对安全性要求不高,私有数据首要的是安全性要求。因此,本发明通过针对公有数据库文件和私有数据库文件设置不同的加密方式,使得对SQLITE数据库的访问在速度与安全性方面得到平衡。
[0020]在本发明实施例中,所述步骤2具体包括:步骤2.1、当需要查询公有数据时,执行以下步骤:步骤2.1.1、获取对称密钥;步骤2.1.2、根据所述对称密钥解密所述公有数据库文件;步骤2.1.3、如果解密成功,则将所述公有数据库文件作为待访问数据库文件缓存至内存中。步骤2.2、当需要查询私有数据时,执行以下步骤:步骤2.2.1、获取解密用的非对称密钥;步骤2.2.2、根据所述非对称密钥解密所述私有数据库文件;步骤2.2.3、如果解密成功,则将所述私有数据库文件作为待访问数据库文件缓存至内存中。步骤2.3、数据库利用SQL语句查询内存中的所述待访问数据库文件的副本以获得查询结果。也就是说针对需要访问的数据类型,分别访问不同的数据库文件,并且根据不同的数据库文件的加密方式采用不同的解密密钥。并且将待访问数据库文件缓存至内存,并在内存中实现数据的查询使得查询速度大大提高。
[0021]在本发明实施例中,所述步骤3具体包括:步骤3.1、如果内存中没有存储HashMap映射表,则在内存中创建HashMap映射表,也就是说,如果属于首次访问SQLITE数据库,则需要在内存中创建HashMap映射表,本发明采用HashMap映射表以缓存数据的方式进一步提高了 SQLITE数据库的访问速度。步骤3.2、如果外部存储器中没有存储HashMap映射表,则在外部存储器中创建HashMap映射表,也就是说充分利用系统存储资
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1