一种嵌入式系统数据库的实现方法技术方案

技术编号:2827754 阅读:218 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及嵌入式系统数据库的实现方法,将数据库表格的记录存储地址存储到哈希表中,建立表格名称与记录存储地址的存储位置的关联,首先,读取包含基于表格的映射的表格描述文件;接着,在嵌入式系统的内存中建立多个哈希表;然后,将表格名称分类,每个分类对应一个哈希表,将该表格名称与对应的哈希表相关联;对表格名称进行哈希运算,获得该表格名称所对应的哈希表中的一个位置;最后,将该表格名称对应的记录存储地址存储在上述获得的位置中。本发明专利技术能够降低嵌入式系统数据库的复杂度,提高数据库的访问速度。

【技术实现步骤摘要】

本专利技术涉及嵌入式系统数据库的实现方法,具体涉及利用哈希表的方式实现嵌入式系统数据库中的数据存储。
技术介绍
在使用嵌入式操作系统的设备中,特别是通信设备,如3G基站、Wimax基站等,他们要开始正常工作,需要配置许多数据。在正常工作后,为了维护和优化整个网络,也需要动态的修改、增加、删除、查询许多配置数据,因此,在这些设备中使用一个数据库是必要的。但在使用嵌入式操作系统的设备中,由于其操作系统的不兼容性,以及CPU、内存和FLASH(闪存)的资源有限,一般是不可能直接使用商用的数据库,因此需要根据嵌入式系统自身特点,定制一个适合其本身的数据库。对于嵌入式系统的数据库,一般来说具有以下几个特点:1、数据量较小、用户数较少、性能要求不太高;2、高效的存储、具备一定的安全性;3、方便的可交换性和可伸缩性;4、实现的简单性、对资源的占用愈小愈好;目前业界的一般做法是采用XML(eXtensible Markup Language)方式来存储数据。XML的特点如下:·XML是一种类似于HTML的标记语言;·XML是用来描述数据的;·XML的标记不是在XML中预定义的,必须定义自己的标记;·XML使用文档类型定义(DTD)或者模式(Schema)来描述数据;·XML使用DTD或者Schema后就是自描述的语言;但是,采用XML方式来存储数据仍有许多不足之处,用XML存储数据实现复杂,占用资源较多,而且每次访问数据库,都需要对XML文件进行解析和转换,访问速度较低。-->
技术实现思路
本专利技术的目的在于提供一种嵌入式系统中数据库的实现方法,提高嵌入式系统的数据库访问效率。一种嵌入式系统数据库的实现方法,将数据库表格的记录存储地址存储到哈希表中,建立表格名称与记录存储地址的存储位置的关联,包括:(1)读取包含基于表格的映射的表格描述文件;(2)在嵌入式系统的内存中建立多个哈希表;(3)将表格名称分类,每个分类对应一个哈希表,将该表格名称与对应的哈希表相关联;(4)对表格名称进行哈希运算,获得该表格名称所对应的哈希表中的一个位置;(5)将该表格名称对应的记录存储地址存储在上述获得的位置中。其中,将表格名称分类的步骤为,按表格名称的首字母对表格名称分类。其中,对表格名称进行哈希运算的步骤为,将表格名称首字母以外所有字母的ASCII的和,对哈希表的长度取余数,该余数就是该表格名称在其对应的哈希表中的位置。还包括,进行字节序转换,实现在不同CPU之间的跨平台操作,同一个数据库文件无需处理就能在不同的CPU之间直接使用。其中,基于表格的映射包括:表格名称,表格描述,表格列数,列名称,列描述,数据类型,默认值。本专利技术在基于表格的映射方面采用的是标记语言,是用来描述数据的自描述的语言,但在数据存储方面则采用哈希表方式存储,相对于XML方式来说,本专利技术的优点主要在于:1、高效的存储、具备一定的安全性;2、实现的简单性、对资源的占用少;3、无需每次都要对文本进行解析和转换,数据访问速度快。本专利技术能够降低嵌入式系统数据库的复杂度,提高数据库的访问速度。附图说明图1为本专利技术数据库的存储结构;图2为X86系列CPU和PPC系列CPU的变量存储方式;图3为本专利技术数据库启动的流程;图4为本专利技术增加一条数据库记录的流程;-->图5为本专利技术查询一条数据库记录的流程。具体实施方式下面将参照本专利技术的一个实例及其附图来进一步说明:首先,利用基于表格的映射(Table-Based Mapping)来说明数据库表格的基本信息,该基于表格的映射通过一个结构来说明数据表格的基本信息。该结构描述了一个二维的数据库表格,在结构中定义了表格名称,表格描述,表格列数,列名称,列描述,数据类型,默认值,以下为该结构的一个例子:[table][wmanIfBsProvisionedSfIable]table_describe=″配置Bs预配置服务流工作参数″column_num=2[column1]column_name=wmanIfBsSfIdcolumn_description=″服务流Id″column_type=number_1column_default=1[column2]column_name=wmanIfBsSfDirectioncolumn_description=″服务流上下行方向″column_type=number_1column_default=1以上结构描述了一个二维数据库表格。该数据库表格的表格名称为wmanIfBsProvisionedSfTable;table_describe是表格描述,用于说明该数据库表格所存储的数据的相关信息,table_describe=″配置Bs预配置服务流工作参数″表示该数据库表格用于存储配置Bs预配置服务流工作参数;column_num是表格列数,是该数据库表格具有的列的个数,column_num=2表示该数据库表格共有2列;column_name是列名称;column_description是列描述,用于说明该列数据的相关信息;column_type是数据类型;column_default是默认值,用于可以设定默认值。第一列的列名称为“wmanIfBsSfId”,列描述为服务流Id,数据类型为1个字节的整数,默认值为1;第二列的列名称为“wmanIfBsSfDirection”,列描述为服务流Id,其数据类型为1个字节的整数,默认值为1。该结构存储于表格描述文件中,该表格描述文件为文本格式的文件,可以直接用文-->本编辑器进行编辑。在上述表格描述文件中,可以定义一组表格,在使用过程中可以方便的离线增加、修改、删除表格;同时,也可以通过接口函数方便的在线增加、修改、删除、查询表格。这样,充分实现了可交换性和可伸缩性。本专利技术的嵌入式系统数据库的实现方法中,先将数据库表格的表格名称按照字典序分类,然后将数据库表格的记录存储地址存储到哈希表中,记录存储地址是数据库表格在存储器中的地址,建立表格名称与记录存储地址的对应关系,这样,不用经过比较,通过数据库表格的表格名称就能直接得到数据库表格的记录存储地址,从而读取数据库表格,本专利技术中的数据库存储结构如图1所示,下面进行详细说明,表格名称的首字母按字典序分类,不区分大小写字母,相同首字母的数据库表格的记录存储地址存储在连续的地址空间内,一共有26个相同的哈希表,分别以数据库表格的首字母进行区分,例如,数据库表格wmanIfBsProvisionedSfTable存储在首字母为W的哈希表内。在每一个哈希表内,利用哈希函数来确定具有相同首字母的数据库表格的记录存储地址的存储位置,以哈希函数H(key)=key MOD m,为例进行说明,其中,H(key)为哈希函数,key为关键字,m为哈希表的表长。选取数据库表格的表格名称除首字母以外,其它所有字母的ASCII,区分大小写字母,将除首字母以外的所有字母的ASCII的和作为key,wmanIfBsProvisionedSfTable表格名称除首字母为manIfBsProvisionedSfTable,它的ASCII的和为2515;m为哈希表的表长,附图1中哈希表的表长为10,即,包括10个连续的地址空间;那么,数据库本文档来自技高网...

【技术保护点】
一种嵌入式系统数据库的实现方法,将数据库表格的记录存储地址存储到哈希表中,建立表格名称与记录存储地址的存储位置的关联,其特征在于,包括:(1)读取包含基于表格的映射的表格描述文件;(2)在嵌入式系统的内存中建立多个哈希表;   (3)将表格名称分类,每个分类对应一个哈希表,将该表格名称与对应的哈希表相关联;(4)对表格名称进行哈希运算,获得该表格名称所对应的哈希表中的一个位置;(5)将该表格名称对应的记录存储地址存储在上述获得的位置中。

【技术特征摘要】
1.一种嵌入式系统数据库的实现方法,将数据库表格的记录存储地址存储到哈希表中,建立表格名称与记录存储地址的存储位置的关联,其特征在于,包括:(1)读取包含基于表格的映射的表格描述文件;(2)在嵌入式系统的内存中建立多个哈希表;(3)将表格名称分类,每个分类对应一个哈希表,将该表格名称与对应的哈希表相关联;(4)对表格名称进行哈希运算,获得该表格名称所对应的哈希表中的一个位置;(5)将该表格名称对应的记录存储地址存储在上述获得的位置中。2.如权利要求1所述的嵌入式系统数据的实现方法,其特征在于,将表格名称分类的步骤为,按表格名称的首...

【专利技术属性】
技术研发人员:卢俊峰
申请(专利权)人:北京北方烽火科技有限公司
类型:发明
国别省市:11[中国|北京]

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

1