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

上传人:e1 文档编号:1639470 上传时间:2018-06-30 格式:PDF 页数:9 大小:654.04KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410780886.6

申请日:

2014.12.17

公开号:

CN104679816A

公开日:

2015.06.03

当前法律状态:

实审

有效性:

审中

法律详情:

授权|||著录事项变更IPC(主分类):G06F 17/30变更事项:发明人变更前:修铭徽变更后:冒高峰|||专利申请权的转移IPC(主分类):G06F 17/30登记生效日:20180110变更事项:申请人变更前权利人:鞠秋萍变更后权利人:上海彩亿信息技术有限公司变更事项:地址变更前权利人:225400 江苏省泰兴市泰兴镇交通小区4号楼401室变更后权利人:200233 上海市徐汇区桂平路391号2号楼501室|||专利申请权的转移IPC(主分类):G06F 17/30变更事项:申请人变更前权利人:北京可思云海科技有限公司变更后权利人:鞠秋萍变更事项:地址变更前权利人:100020 北京市朝阳区吉庆里14号佳汇国际中心A座1506变更后权利人:225400 江苏省泰兴市泰兴镇交通小区4号楼401室登记生效日:20150917|||实质审查的生效IPC(主分类):G06F 17/30申请日:20141217|||公开

IPC分类号:

G06F17/30; G06F21/62(2013.01)I

主分类号:

G06F17/30

申请人:

北京可思云海科技有限公司

发明人:

修铭徽

地址:

100020北京市朝阳区吉庆里14号佳汇国际中心A座1506

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本申请提出了一种嵌入式系统下的SQLITE数据库应用方法,包括:步骤1、构建SQLITE数据库。步骤2、访问SQLITE数据库。步骤3、缓存所述查询结果。实现了速度和安全的系统均衡;避免了恶意篡改造成的负面作用;并提高了系统整体性。

权利要求书

权利要求书
1.  一种嵌入式系统下的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、将所述待访问数据库文件从内存中清除。

2.  根据权利要求1所述的嵌入式系统下的SQLITE数据库应用方法,其特征在于,还包括:
       步骤4、当再次访问SQLITE数据库时,执行以下步骤:
步骤4.1、在内存中缓存的HashMap映射表中快速查找所需访问的数据;
步骤4.2、如果查找不成功,则返回步骤2。

3.  根据权利要求1所述的嵌入式系统下的SQLITE数据库应用方法,其特征在于,还包括:
       步骤5、如果收到更新数据库的请求,则执行以下步骤:
步骤5.1、根据所需更新的数据的索引项在内存中缓存的HashMap映射表中快速查找所需更新的数据;
步骤5.2、根据所需更新的数据的索引项在外部存储器中缓存的HashMap映射表中快速查找所需更新的数据;
步骤5.3、如果在步骤5.1和步骤5.2中查找到的数据项相同,则执行更新语句;
步骤5.4、如果在步骤5.1和步骤5.2中查找到的数据项不相同,则返回数据项不同步的错误提示。

4.  根据权利要求1所述的嵌入式系统下的SQLITE数据库应用方法,其特征在于,还包括:
       步骤6、当对称密钥或非对称密钥的时间戳失效时,执行以下步骤:
              步骤6.1、清除内存中缓存的HashMap映射表;
              步骤6.2、清除外部存储器中缓存的HashMap映射表。

说明书

说明书一种嵌入式系统下的SQLITE数据库应用方法

技术领域
本发明涉及计算机技术,特别涉及一种嵌入式系统下的SQLITE数据库应用方法。

背景技术
作为开源的轻型数据库,SQLITE已经广泛用于ANDROI系统中,然而SQLITE数据库本身不带加密,数据库文件是可以用文本编辑器打开查看的。因此SQLITE数据库的安全性得不到有效保障,容易受到恶意攻击。虽然现有技术中也存在对SQLITE数据库进行加密的方法,然而现有的对SQLITE数据库的加密方法往往不能同时满足速度和安全的需要。另外,随着存储器硬件技术的进步,存储器硬件成本大大,然而现有技术并未充分使用存储资源。

发明内容
针对现有技术的上述缺陷,本发明提出了一种嵌入式系统下的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、将所述待访问数据库文件从内存中清除。
优选地,所述的嵌入式系统下的SQLITE数据库应用方法还包括:步骤4、当再次访问SQLITE数据库时,执行以下步骤:步骤4.1、在内存中缓存的HashMap映射表中快速查找所需访问的数据;步骤4.2、如果查找不成功,则返回步骤2。
优选地,所述的嵌入式系统下的SQLITE数据库应用方法还包括:步骤5、如果收到更新数据库的请求,则执行以下步骤:步骤5.1、根据所需更新的数据的索引项在内存中缓存的HashMap映射表中快速查找所需更新的数据;步骤5.2、根据所需更新的数据的索引项在外部存储器中缓存的HashMap映射表中快速查找所需更新的数据;步骤5.3、如果在步骤5.1和步骤5.2中查找到的数据项相同,则执行更新语句;步骤5.4、如果在步骤5.1和步骤5.2中查找到的数据项不相同,则返回数据项不同步的错误提示。
优选地,所述的嵌入式系统下的SQLITE数据库应用方法还包括:步骤6、当对称密钥或非对称密钥的时间戳失效时,执行以下步骤:步骤6.1、清除内存中缓存的HashMap映射表;步骤6.2、清除外部存储器中缓存的HashMap映射表。
本发明相比现有技术,具有以下优点:
通过设定公有数据库文件和私有数据库文件,同时对公有数据库文件和私有数据库文件分别采用AES对称加密方式和RAS非对称加密方式进行加密,并进行有效配合,实现速度和安全的系统均衡。
通过以HashMap映射方式同时将查询结果映射到内存和外部存储器中,并进行同步映射,避免恶意篡改造成的负面作用。
通过同时将查询结果映射至HashMap映射表和TreeMap映射表,并根据查询类型分别访问HashMap映射表和TreeMap映射表,提高系统整体性能。

附图说明
图1是根据本发明实施例的嵌入式系统下的SQLITE数据库应用方法的流程图。
图2是活动状态下的计算进程的流程图。
图3是数据集的计算及记录的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
图1示出了根据本发明实施例的嵌入式系统下的SQLITE数据库应用方法的流程图。如图1所示,本发明的嵌入式系统下的SQLITE数据库应用方法至少包括:步骤1、构建SQLITE数据库。步骤2、访问SQLITE数据库。步骤3、缓存所述查询结果。其中,所述SQLITE数据库包括两个数据库文件,分别为公有数据库文件和私有数据库文件,分别将公有数据和私有数据分别保存在公有数据库和私有数据库,这样的设置方式虽然牺牲了些许存储资源,然而由此带来了安全性大幅增张的益处。其中,如果所要访问的数据属于首次访问的数据,则将所述数据进行缓存,特别是同时缓存到内存和外部存储器中,通过该项设置,不仅提高了SQLITE数据库的访问速度,而且双重缓存的设置使得系统可以自动识别一些数据的丢失、错误甚至是否被恶意篡改。
在本发明实施例中,所述步骤1具体包括:步骤1.1、在内部存储器中创建一公有数据库文件和一私有数据库文件,其中公有数据存储在共有数据库文件中,私有数据存储在私有数据库文件中;步骤1.2、采用AES对称加密方式对公有数据库文件进行整体加密;步骤1.3、采用RAS非对称加密方式对私有数据库文件进行整体加密。一方面,由于AES加密方式,实现速度快,可以提高整个加密系统的效率,但是加解密使用同一个秘钥,安全性不足。而RAS加密方式,安全性更高,然而实现速度慢。另一方面,公有数据往往要求访问速度快但是对安全性要求不高,私有数据首要的是安全性要求。因此,本发明通过针对公有数据库文件和私有数据库文件设置不同的加密方式,使得对SQLITE数据库的访问在速度与安全性方面得到平衡。
在本发明实施例中,所述步骤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语句查询内存中的所述待访问数据库文件的副本以获得查询结果。也就是说针对需要访问的数据类型,分别访问不同的数据库文件,并且根据不同的数据库文件的加密方式采用不同的解密密钥。并且将待访问数据库文件缓存至内存,并在内存中实现数据的查询使得查询速度大大提高。
在本发明实施例中,所述步骤3具体包括:步骤3.1、如果内存中没有存储HashMap映射表,则在内存中创建HashMap映射表,也就是说,如果属于首次访问SQLITE数据库,则需要在内存中创建HashMap映射表,本发明采用HashMap映射表以缓存数据的方式进一步提高了SQLITE数据库的访问速度。步骤3.2、如果外部存储器中没有存储HashMap映射表,则在外部存储器中创建HashMap映射表,也就是说充分利用系统存储资源,以实现缓存校验功能。步骤3.3、将查询结果分别映射至内存和外部存储器中的HashMap映射表中,所述HashMap映射表中以键和值的成对方式存储查询结果中一一对应的索引项和数据项,所述HashMap映射表同时存储与每一个数据项对应的属性,所述属性包括文件ID、表ID、主键、数据项类型。步骤3.4、将所述待访问数据库文件从内存中清除。其中,HashMap映射表是作为查询结果的容器,本发明中的HashMap映射表不同于现有技术中的HashMap映射表,为了使用性更强,本发明中的HashMap映射表不仅仅包括键/值对,而且包括每一个数据项对应的属性,本发明的该设置还可以替换成为值提供的对应的类型和一个基于链表的属性列。总之,通过增强的HashMap映射表使得使用性更强,例如可以通过HashMap映射表直接定位某一数据项所在数据库文件,甚至数据库表。
在本发明实施例中,还包括步骤4、当再次访问SQLITE数据库时,执行以下步骤:步骤4.1、在内存中缓存的HashMap映射表中快速查找所需访问的数据;步骤4.2、如果查找不成功,则返回步骤2。也就是说,在非首次访问SQLITE数据库的情况下,首先判断内存中缓存的HashMap映射表中是否存在所需查找的数据,本发明中,术语“数据”、“数据项”均指代同一内容,仅仅是在不同环境下的不同称谓。
在本发明实施例中,还包括步骤5、如果收到更新数据库的请求,则执行以下步骤:步骤5.1、根据所需更新的数据的索引项在内存中缓存的HashMap映射表中快速查找所需更新的数据;步骤5.2、根据所需更新的数据的索引项在外部存储器中缓存的HashMap映射表中快速查找所需更新的数据;步骤5.3、如果在步骤5.1和步骤5.2中查找到的数据项相同,则执行更新语句;步骤5.4、如果在步骤5.1和步骤5.2中查找到的数据项不相同,则返回数据项不同步的错误提示。应当说明的是,在正常访问SQLITE数据库的情况下,首先在内存中缓存的HashMap映射表中查找所需数据,如果找到并需要修改所需数据,则首先修改内存中HashMap映射表中相应的数据项,并同时修改内外部存储器中HashMap映射表中相应的数据项,也就是说,正常情况下,内存中HashMap映射表和外部存储器中HashMap映射表是保持同步更新的。当接收到更新数据库的请求时,则执行以上的步骤5.1-5.4。
在本发明实施例中,还包括步骤6、当对称密钥或非对称密钥的时间戳失效时,执行以下步骤:步骤6.1、清除内存中缓存的HashMap映射表;步骤6.2、清除外部存储器中缓存的HashMap映射表。该设置保证了系统的安全性,避免了不安全的缓存访问。
在本发明实施例中,步骤3.2和步骤3.3之间还包括以下步骤:如果内存中没有存储TreeMap映射表,则在内存中创建TreeMap映射表;在步骤3.3和步骤3.4之间还包括以下步骤:将查询结果映射至内存中的TreeMap映射表中,所述TreeMap映射表中以键和值的成对方式存储查询结果中一一对应的索引项和数据项。所述步骤4.1具体包括:如果访问SQLITE数据库的语句时查找语句,则在内存中缓存的HashMap映射表中快速查找所需访问的数据;如果访问SQLITE数据库的语句时遍历语句,则在内存中缓存的TreeMap映射表中按序遍历所需访问的数据。所述步骤6还包括:步骤6.3、清除内存中缓存的TreeMap映射表。其中内存中HashMap映射表和内存中TreeMap映射表是保持同步更新的。由于上述步骤的存在,虽然占用了些许存储空间,然而换来的是访问速度的极大提高,尤其是针对不同的访问类型分别访问HashMap映射表和TreeMap映射表使得系统的整体性能得以提高。其中,由于HashMap映射表在查找方面更具优势,因此查找访问的对象设定为HashMap映射表,由于TreeMap映射表的优势是排序功能,而遍历访问往往需要有序遍历,因此遍历访问的对象设定为TreeMap映射表。
应当理解本发明所设计的嵌入式系统包括ANDROID系统、IOS系统等等。本发明所设计的外部存储器包括SD卡存储器等等。
综上所述,本发明提出的嵌入式系统下的SQLITE数据库应用方法,实现了速度和安全的系统均衡;避免了恶意篡改造成的负面作用;并提高了系统整体性。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

一种嵌入式系统下的SQLITE数据库应用方法.pdf_第1页
第1页 / 共9页
一种嵌入式系统下的SQLITE数据库应用方法.pdf_第2页
第2页 / 共9页
一种嵌入式系统下的SQLITE数据库应用方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种嵌入式系统下的SQLITE数据库应用方法.pdf》由会员分享,可在线阅读,更多相关《一种嵌入式系统下的SQLITE数据库应用方法.pdf(9页珍藏版)》请在专利查询网上搜索。

本申请提出了一种嵌入式系统下的SQLITE数据库应用方法,包括:步骤1、构建SQLITE数据库。步骤2、访问SQLITE数据库。步骤3、缓存所述查询结果。实现了速度和安全的系统均衡;避免了恶意篡改造成的负面作用;并提高了系统整体性。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1