一种嵌入式内存数据库的实现方法技术

技术编号:11468094 阅读:108 留言:0更新日期:2015-05-18 00:37
本发明专利技术提供一种嵌入式内存数据库的实现方法,在一嵌入式计算机系统中实现,其包括以下步骤:在闪存内建立备份区,用于对内存数据库数据进行备份;在内存芯片组配置内存数据库执行程序,包括配置管理、存储管理与调度、数据库管理;在内存芯片组建立作为工作区的第一内存区和作为暂存区的第二内存区;步骤4、中央处理器控制执行内存数据库的功能实现,即通过一主线程实现内存数据库的数据操作以及通过一子线程实现内存数据库的数据备份,其中主线程与子线程具有同等优先级,主线程在完成内存数据库后挂起以释放资源,直到下次操作请求将主线程唤醒。利用本方法实现的内存数据库不仅支持SQL语句,还具有掉电数据不丢失功能。

【技术实现步骤摘要】
一种嵌入式内存数据库的实现方法
本专利技术涉及信息系统控制与数据库领域,具体而言涉及一种嵌入式内存数据库的实现方法。
技术介绍
在现有的信息系统中,使用传统数据库常常因为硬盘I/O读写速率的影响而导致信息系统的性能遇到瓶颈。内存数据库因为读写都在内存中进行,因此可以突破硬盘I/O读写的限制而提升信息系统的性能,一般读写速度是普通硬盘数据库的10倍以上。对于实时性要求较高的嵌入式信息系统,一般需要内存数据库提高信息系统的实时性。该
目前的现状和缺陷在于:2)不支持SQL语句SQL语句在数据库操作中是一种简捷的操作语句。若内存数据库不支持SQL语句,不仅增加了数据库应用开发的难度,也不利于实现与普通数据库的统一访问。3)掉电而造成数据丢失内存数据库的数据因为保存在内存,掉电将导致内存数据库数据丢失,这样对数据的安全性和完整性会造成严重影响。而大部分嵌入式平台所处的使用环境是极其容易掉电的,若不解决这一问题,内存数据库将无法在嵌入式信息系统中使用。现有技术中支持SQL语句操作的内存数据库,如微软的SQLSERVER内存数据库不支持LINUX系统,甲骨文公司的ORACLETimesTen虽然支持LINUX系统却必须与ORACLE数据库联合使用,前Facebook工程师创办的分布式内存数据库MemSQL虽然是c++编写,完美支持Linux,但只能运行至云端,用户只能下载客户端,无法运行在嵌入式数据库环境。而开源的内存数据库往往都是K/V结构,并不支持SQL。因此,如何实现针对ARM的嵌入式环境下且支持SQL语句操作的内存数据库是一大急需解决的难题。而且,随着信息化的发展,嵌入式设备因为便携性以及功能的日益丰富,被各个领域使用。
技术实现思路
本专利技术目的在于提供一种嵌入式内存数据库的实现方法,利用本方法实现的内存数据库不仅支持SQL语句,还具有掉电数据不丢失功能。为达成上述目的,本专利技术所采用的技术方案如下:一种嵌入式内存数据库的实现方法,在一嵌入式计算机系统中实现,该嵌入式计算机系统包括中央处理器(CPU)、闪存(FLASH)、内存芯片组(SDRAM,其实是一个内存空间)和系统总线,该方法包括以下步骤:步骤1、(都是根据配置文件所预先设定的一系列参数)在闪存(FLASH)内建立备份区,用于对内存数据库数据进行备份;步骤2、在内存芯片组(SDRAM)配置内存数据库执行程序,包括配置管理、存储管理与调度、数据库管理,其中配置管理用于设置内存数据库占用内存资源最大空间以及备份频率(时间间隔),存储管理与调度用于执行内存数据库中内存空间分配(分配暂存区和工作区)、数据转移(数据转移归档等)、数据备份(从工作区经过暂存区(快速进行的,时间可以忽略不计),将数据存入备份区)和数据载入(数据库启动时,从备份区到工作区的数据载入过程);数据库管理用于实现新建/删除数据表和视图(view,将几个表合成展现成一个大视图)、数据库的数据增加、删除、查询、修改操作;步骤3、在内存芯片组(SDRAM)建立作为工作区的第一内存区和作为暂存区的第二内存区;步骤4、中央处理器(CPU)控制执行内存数据库的功能实现,即通过一主线程实现内存数据库的数据操作以及通过一子线程实现内存数据库的数据备份,其中主线程与子线程具有同等优先级。进一步的实施例中,所述主线程的运行过程中,中央处理器(CPU)通过所述数据库管理单元提供的数据接口实现对内存数据库的数据操作,其包括以下过程:1)中央处理器(CPU)判断是否(从其I/O接口)收到用户输入的数据操作请求(例如增加、删除、查询、修改),如果是,则进入下述步骤2),否则保持主线程挂起;2)中央处理器(CPU)调用所述执行程序,通过所述数据库管理单元提供的数据接口执行用户输入的数据操作请求;3)挂起主进程。进一步的实施例中,所述数据库管理单元提供的数据接口包括下述4类C-API接口:1)boolExecStatement(char*sz_SQL)功能:执行SQL语句;参数:sz_SQL,标准SQL执行语句字符串;2)boolGet_DATA(char*sz_SQL,char*Data)功能:执行查询语句并返回查询成功;参数:sz_SQL,标准SQL查询语句字符串;Data,返回的查询结果;4)voidStarMemDB()功能:启动内存数据库工作流程并分配内存数据库资源;参数:无;4)voidStopMemDB()功能:停止内存数据库并释放内存数据库资源;参数:无。进一步的实施例中,所述子线程的运行过程中,以下述之一方式进行数据备份:1)中央处理器(CPU)根据所设置的备份频率(例如每隔5min、20min、60min等),调用所述执行程序,将内存数据库中的数据从工作区经过暂存区后存入备份区;以及2)中央处理器(CPU)调用执行程序执行内存数据库的数据操作时,同时将工作区数据同步到暂存区,再将暂存区数据保存至备份区。进一步的实施例中,所述子线程的运行过程中,中央处理器(CPU)根据所设置的备份频率(例如每隔5min、20min、60min等),调用所述执行程序,将工作区数据同步到暂存区,然后再将暂存区数据转化为一数据镜像文件保存至备份区。进一步的实施例中,所述步骤2在内存芯片组(SDRAM)配置内存数据库执行程序时,所述数据库管理还配置用于实现内存数据库的数据页面和索引管理,并且采用链式页面存储结构存储内存页面数据,以及采用T树建立内存数据库索引链表。由以上本专利技术的技术方案可知,本专利技术提出的嵌入式内存数据库的实现方法,支持通过C-API执行SQL语句,包括增、删、改、查等功能;支持设备掉电时的数据保护,防止因设备掉电而丢失数据;支持通过配置文件对内存数据库的一些运行参数进行设置,支持通过USB设备进行数据的导入导出,以通过设备USB接口接入USB存储设备,导入数据至内存数据库,以及将内存数据库数据导出;并且具备日志查询功能。与现有技术相比,其显著的有益效果在于:1、利用本专利技术提出的嵌入式内存数据库的实现方法,可以显著提高嵌入式信息系统数据访问请求的响应时间,降低了嵌入式信息系统对CPU的性能要求;2、利用本方法实现的内存数据库,可以防止掉电造成数据丢失,从而提高嵌入式信息系统数据的稳定性和完整性;3、利用本方法实现的内存数据库,其操作接口支持SQL语句,使用该内存数据库操作,可以降低开发难度,提高开发效率。附图说明图1为嵌入式计算机系统的一个示例性架构示意图。图2为本专利技术一实施方式嵌入式内存数据库的实现方法的流程示意图。图3为内存数据库的数据调度示意图。图4为利用图2实施例的方法所实现内存数据库的流程图。具体实施方式为了更了解本专利技术的
技术实现思路
,特举具体实施例并配合所附图式说明如下。如图1所示为一个嵌入式计算机系统的示例性架构示意图,其中,该嵌入式计算机系统包括中央处理器(CPU)、闪存(FLASH闪存)、内存芯片组(SDRAM,其实为一个内存空间)和系统总线。中央处理器(CPU)采用ARM系列的嵌入式处理器,例如三星电子的ARM9系列嵌入式处理器S3C2410,该ARM9芯片S3C2410是32B微控制器,资源丰富,带独立的16KB的指令Cache和16kB数据Cache,LCD控制器、RAM控制器,本文档来自技高网
...

【技术保护点】
一种嵌入式内存数据库的实现方法,在一嵌入式计算机系统中实现,该嵌入式计算机系统包括中央处理器、闪存、内存芯片组和系统总线,其特征在于,该方法包括以下步骤:步骤1、在闪存内建立备份区,用于对内存数据库数据进行备份;步骤2、在内存芯片组配置内存数据库执行程序,包括配置管理、存储管理与调度、数据库管理,其中配置管理用于设置内存数据库占用内存资源最大空间以及备份频率,存储管理与调度用于执行内存数据库中内存空间分配、数据转移、数据备份和数据载入;数据库管理用于实现新建/删除数据表和视图、以及数据库的数据增加、删除、查询、修改操作;步骤3、在内存芯片组建立作为工作区的第一内存区和作为暂存区的第二内存区;步骤4、中央处理器控制执行内存数据库的功能实现,即通过一主线程实现内存数据库的数据操作以及通过一子线程实现内存数据库的数据备份,其中主线程与子线程具有同等优先级。

【技术特征摘要】
1.一种嵌入式内存数据库的实现方法,在一嵌入式计算机系统中实现,该嵌入式计算机系统包括中央处理器、闪存、内存芯片组和系统总线,其特征在于,该方法包括以下步骤:步骤1、在闪存内建立备份区,用于对内存数据库数据进行备份;步骤2、在内存芯片组配置内存数据库执行程序,包括配置管理、存储管理与调度、数据库管理,其中配置管理用于设置内存数据库占用内存资源最大空间以及备份频率,存储管理与调度用于执行内存数据库中内存空间分配、数据转移、数据备份和数据载入;数据库管理用于实现新建/删除数据表和视图、以及数据库的数据增加、删除、查询、修改操作;步骤3、在内存芯片组建立作为工作区的第一内存区和作为暂存区的第二内存区;步骤4、中央处理器控制执行内存数据库的功能实现,即通过一主线程实现内存数据库的数据操作以及通过一子线程实现内存数据库的数据备份,其中主线程与子线程具有同等优先级;其中,所述主线程的运行过程中,中央处理器通过数据库管理单元提供的数据接口实现对内存数据库的数据操作,其包括以下过程:1)中央处理器判断是否收到用户输入的数据操作请求,如果是,则进入下述步骤2),否则保持主线程挂起;2)中央处理器调用所述执行程序,通过所述数据库管理单元提供的数据接口执行用户输入的数据操作请求;3)挂起主进程;所述数据库管理单元提供的数据接口包括...

【专利技术属性】
技术研发人员:杨庆磊谢海松欧阳磊刘沾沾靳凯文谢道站
申请(专利权)人:北方信息控制集团有限公司
类型:发明
国别省市:江苏;32

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

1