嵌入式系统中分布式数据库的数据操作方法及板卡的制作方法

文档序号:6355505阅读:158来源:国知局
专利名称:嵌入式系统中分布式数据库的数据操作方法及板卡的制作方法
技术领域
本发明涉及数据库技术,特别涉及嵌入式设备中分布式数据库的技术。
背景技术
嵌入式设备中一般包括主控卡和业务线卡。其中主控卡完成控制功能,而业务线卡则通过特定的业务接口完成数据转发功能。为了提高可靠性,目前的嵌入式设备内一般配备了双主控卡,分为主用主控卡和备用主控卡;当主用主控卡发生故障时,进行主备倒换,备用主控卡切换成主用主控卡,负责所有控制业务的运行。主用主控卡、备用主控卡和业务线卡部署在嵌入式设备的不同槽位上,在系统运行过程中,系统的配置管理信息和路由信息等一般由主用主控卡根据变化情况实时下发到各业务线卡和备用主控卡的;所以嵌 入式设备中各个板卡的数据如何高效同步是一个比较核心的问题。本申请人在中国专利申请“201110022830. 0分布式网络设备中同步数据的存储方法及系统”中提出了一种采用分 布式数据库进行数据存储的方法,即主用主控卡、业务线卡和备用主控卡采用分布式数据库进行数据存储。目前,有一些常用的开源数据库产品如sqlite、mysql、postgresql等可实现数据存储,但这些开源数据库一般是以SQL语言作为基础来对数据库进行控制,而在实时的嵌入式系统中,执行效率和灵活性是开发者关注的重要因素之一,如果采用这些开源数据库并结合SQL语言来进行数据库控制,由于数据库在字符串命令的解析上会耗费很多不必要的时间,并且还要采用与相关字符串命令相对应的函数来进行控制,所以执行的效率会很低;另一方面,由于各个板卡上的应用模块会对数据库进行频繁的操作,从而导致对索引列频繁的组合,对组合后的列,应用模块也不方便存储,分布式数据库必定耗费大量的时间来对这些列组合进行封装、解封装,不仅效率低下,而且增加了数据库系统的复杂度,降低了其灵活性。

发明内容
本发明的目的就是克服目前开源数据库系统效率低下的缺点,提供一种嵌入式设备中嵌入式系统中分布式数据库的数据操作方法和一种板卡。本发明解决其技术问题,采用的技术方案是,提供一种嵌入式系统中分布式数据库的数据操作方法,其特征在于,包括以下步骤a.应用模块利用分布式数据库提供的接口,创建用于存储数据的数据库表;b.所述应用模块根据其操作需求创建多种操作列句柄,并根据索引需求设置一个或多个操作列句柄作为所述数据库表的索引列句柄,并设置其中一个索引列句柄作为所述数据库表的主索引列句柄;c.当需要对数据库表进行操作时,所述应用模块利用分布式数据库所提供的操作接口,向数据库表发送携带操作列句柄的操作请求;d.所述数据库表接收到应用模块操作请求中的操作列句柄后,判断该操作列句柄是否为索引列句柄,如是,则使用该索引列句柄对表项进行索引并操作,否则使用其主索引列句柄对表项进行索引并操作。具体的,所述所述操作列句柄,是应用模块对数据库表中需要操作的不同列的组合进行定位时,将组合列的地址进行转化后的数值化ID。具体的,所述所述步骤b中,操作列句柄的创建过程包括以下步骤bl.应用模块向分布式数据库发送列句柄创建请求,所述列句柄创建请求中携带了表名信息、拟操作的列信息以及是否作为索引列句柄信息;b2.分布式数据库接收到所述应用模块的列句柄创建请求后,为拟操作的列信息中的每一列创建对应的单列结构,该单列结构中记录有该列在数据库表全列结构中的偏移位置和该列在拟操作的列信息中的偏移位置;
b3.完成各单列结构的创建后,分布式数据库将这些单列结构组合成一个多列结构;b4.分布式数据库判断该创建的列句柄是否作为索引列句柄,若是则进入b5步骤,否则直接进入b6步骤;b5.分布式数据库为该索引列句柄的多列结构创建确定的索引方式对应的索引实现函数集和索引根结构;b6.分布式数据库将该多列结构的地址进行数值化ID的转换,得到该创建的操作列句柄。具体的,所述操作列句柄从功能上分为数据列句柄和匹配列句柄,所述应用模块对数据库表进行添加操作时使用数据列句柄,在进行删除操作时使用匹配列句柄,在进行更新和查询操作时使用数据列句柄和匹配列句柄。更进一步的,分布式数据库接收到应用模块的添加操作请求时,使用数据库表的主索引列句柄对表项进行索引并操作;在接收到应用模块的删除、更新或查询操作请求时,如果判断应用模块所携带的操作列句柄不是索引列句柄时,则使用数据库表的主索引列句柄对表项进行索引并操作,否则使用所述操作列句柄对表项进行索引并操作。具体的,所述索引方式是指采用Hash表或者是链表对数据库表进行索引。具体的,所述应用模块为主用主控卡的应用模块或者业务线卡上的应用模块。本发明的另一个目的是提供一种板卡,包括至少一个应用模块和一个分布式数据库,所述应用模块包括一个数据库表创建请求单元、一个操作列句柄创建请求单元和一个数据库表操作请求单元,所述数据库表创建请求单元,用于向分布式数据库发送创建用于存储数据的数据库表的请求;所述操作列句柄创建请求单元,用于向分布式数据库发送创建操作列句柄的请求,所述创建操作列句柄的请求中携带了所述列句柄创建请求中携带了表名信息、拟操作的列信息以及是否作为索引列句柄信息;所述数据库表操作请求单元,用于向分布式数据库发送携带操作列句柄的操作数据库表的请求;所述分布式数据库包括一个接口单元、一个列句柄创建单元和一个数据库表索引操作单元,所述接口单元,用于接收来自应用模块的数据库表创建请求、操作列句柄创建请求以及操作数据库表的请求;所述列句柄创建单元,用于根据应用模块的操作列句柄创建请求,创建相应的操作列句柄;所述数据库表索引操作单元,用于根据应用模块的携带操作列句柄的操作请求,对相应数据库表的表项进行索引并操作。
具体的,所述分布式数据库的列句柄创建单元包括一个单列结构创建子单元、多列结构创建子单元和一个地址转换子单元;所述单列结构子单元,用于根据应用模块操作列句柄创建请求中的拟操作列信息,为每一列创建对应的单列结构,该单列结构中记录有该列在数据库表全列结构中的偏移位置和该列在拟操作的列信息中的偏移位置;所述多列结构创建子单元,用于将单列结构子单元创建的至少一个单列结构组合成一个多列结构,并判断应用模块操作列句柄创建请求中的是否作为索引列句柄信息,如是,则根据确定的索引方式创建对应的索引实现函数集和索引根结构;所述地址转换子单元,用于将多列结构创建子单元所创建的多列结构的地址转换为一个数值化ID作为操作列句柄。更进一步的,所述分布式数据库的数据库表索引操作单元,还用于接收到应用模 块的添加操作请求时,使用数据库表的主索引列句柄对表项进行索引并操作;在接收到应用模块的删除、更新或查询操作请求时,如果判断应用模块所携带的操作列句柄不是索引列句柄时,则使用数据库表的主索引列句柄对表项进行索引并操作,否则使用所述操作列句柄对表项进行索引并操作。本发明的有益效果是,应用模块只需创建并存储代表组合列的数值化ID即列句柄,就可以对数据库表进行操作,而分布式数据库提供给应用模块的相应操作接口函数,如添加、删除、更新、查询等函数,也只需根据这个列句柄就能很快定位表的索引方式,然后再在该索引方式中依据所需条件进行操作,整个过程虽然在原理上和SQL语言差不多,但在实现的方式上却进行了创新,使之更加符合嵌入式设备的特点,市场应用广,具有一定的实用价值。


图I是本发明实施例的嵌入式设备中的分布式数据库的数据操作方法流程图。图2是本发明的实施例的嵌入式设备中的分布式数据库系统的结构示意图。图3是本发明实施例创建操作列句柄的流程图。图4是本发明实施例作为索引列句柄的操作列句柄的数据结构示意图。图5是本发明实施例索引列句柄采用链表对数据库表进行索引的结构示意图。图6是本发明实施例索引列句柄采用hash表对数据库表进行索引结构示意图。图7是本发明实施例的板卡的结构框图。图8是本发明实施例的分布式数据库的列句柄创建单元结构框图。
具体实施方式

下面结合实施例及附图,详细描述本发明的技术方案。本发明嵌入式设备中的分布式数据库的数据操作方法流程图参见图I。本发明的嵌入式系统中分布式数据库的数据操作方法中,首先嵌入式设备中的板卡(指主用主控卡或者业务线卡)上的应用模块利用分布式数据库提供的创建表接口函数创建数据库表,创建的数据库表的表结构中包含全列结构,所有创建好的数据库表可以组织成链表放在全局变量里。任一需要对数据库表进行操作的应用模块,一般是创建数据库表的应用模块,根据其操作需求创建多种操作列句柄,并根据索引需求设置一个或多个操作列句柄作为所述数据库表的索引列句柄,并设置其中一个索引列句柄作为所述数据库表的主索引列句柄;当需要对数据库表进行操作时,所述应用模块利用分布式数据库所提供的操作接口,向数据库表发送携带操作列句柄的操作请求;最后,所述数据库表接收到应用模块操作请求中的操作列句柄后,判断该操作列句柄是否为索引列句柄,如是,则使用该索引列句柄对表项进行索引并操作,否 则使用其主索引列句柄对表项进行索引并操作。实施例 本实施例的嵌入式设备的分布式数据库系统的结构示意图参见图2。主用主控卡的分布式数据库为应用模块提供的接口以接口 A进行描述,接口 A为应用模块提供了包括创建表、插入、删除、更新表项、查询、表控制等操作接口函数;业务线卡或者备用主控卡的分布式数据库提供的接口以接口 C进行描述,接口 C为应用模块提供了包括创建表、插入、删除、更新表项等操作接口函数。各板卡之间分布式数据库的同步引擎接口以接口 B进行描述。其中,接口 A和接口 C承担大部分的数据存储的功能,列句柄在该部分是应用比较频繁的。以下将详细的介绍列句柄在嵌入式设备分布式数据库中数据存储方面的运作机理。首先利用板卡的分布式数据库提供给应用模块的创建表接口中创建数据库表,数据库表结构中包含全列结构。本实施例创建操作列句柄的流程图参见图3,具体步骤如下步骤301、应用模块向分布式数据库发送列句柄创建请求,所述列句柄创建请求中携带了表名信息、拟操作的列信息以及是否作为索引列句柄信息;步骤302、分布式数据库接收到所述应用模块的列句柄创建请求后,为拟操作的列信息中的每一列创建对应的单列结构,该单列结构中记录有该列在数据库表全列结构中的偏移位置和该列在拟操作的列信息中的偏移位置;步骤303、完成各单列结构的创建后,分布式数据库将这些单列结构组合成一个多列结构;步骤304、分布式数据库判断该创建的列句柄是否作为索引列句柄,若是则进入b4步骤,否则直接进入b5步骤;步骤305、分布式数据库为该索引列句柄的多列结构创建确定的索引方式对应的索引实现函数集和索引根结构;步骤306、分布式数据库将该多列结构的地址进行数值化ID的转换,得到该创建的操作列句柄。本发明的操作列句柄,是应用模块对数据库表中需要操作的不同列的组合进行定位时,将组合列的地址进行转化后的数值化ID。操作引列句柄用于应用模块对数据库表进行相应的操作包括添加、删除、更新及查询等,其中操作列句柄从功能上分可以分为分为数据列句柄和匹配列句柄,一般来说,应用模块对数据库表进行添加操作时使用数据列句柄,在应用模块对需要对数据库表进行删除操作时使用匹配列句柄,在进行更新和查询操作时使用数据列句柄和匹配列句柄。分布式数据库接收到应用模块的添加操作请求时,因为添加操作一般不需要对表进行查询,所以此时的数据列句柄一般不是索引列句柄,所以分布式数据库使用数据库表的主索引列句柄对表项进行索引并操作;在分布式数据库接收到应用模块的删除、更新或查询操作请求时,如果判断应用模块所携带的操作列句柄(即匹配列句柄)不是索引列句柄时,则使用数据库表的主索引列句柄对表项进行索引并操作,否则使用所述操作列句柄对表项进行索引并操作。本发明实施例作为索引列句柄的操作列句柄的数据结构示意图参见图4。该操作列句柄的数据结构为一个多列数据结构以及和其关联的至少一个单列数据结构组成,多列数据结构中包括列描述(列名和列宽等)、列的数量、所有列的总长、确定的索引方式的索引函数集指针、索引根结构指针以及各单列指针息等;该操作列句柄涉及的每一列通过一个单列结构指针关联在多列结构中,单列结构中包括了该列在数据库表全列结构中的偏移位置、该列在拟操作的列组合信息中的偏移位置以及列名和列宽等信息。根据应用模块的创建列句柄请求中携带的信息,确定本次创建的列句柄为索引列句柄时,还有根据其确定的索引方式对数据库表进行组织,将其确定的索引方式(采用HASH表或者链表)对应的实现函数集和索引根结构存储在 多列结构中。图5为应用模块对数据库表采用链表索引方式的数据结构示意图,图6是应用模块对数据库表采用HASH表索引方式的数据结构示意图。本发明中的索引方式的数据结构设计包括索引根和索引节点的结构。从图中可以看出,该设计中的索引根结构能很好的控制所有表项的组织和信息,并且能很方便的将自身的地址数值化后存储在多列结构中的成员“索引根结构”中,使得用户能够根据索引列句柄来组织表项、获取表项和删除表项等,符合列句柄的应用需求。本发明还提供了一种实施本发明的分布式数据库的数据操作方法的板卡,参见图7,包括至少一个应用模块和一个分布式数据库。本板卡的应用模块包括一个数据库表创建请求单元、一个列句柄创建请求单元和一个数据库表操作请求单元;其中,数据库表创建请求单元用于向分布式数据库发送创建用于存储数据的数据库表的请求;列句柄创建请求单元用于向分布式数据库发送创建操作列句柄的请求,所述创建操作列句柄的请求中携带了所述列句柄创建请求中携带了表名信息、拟操作的列信息以及是否作为索引列句柄信息;数据库表操作请求单元,用于向分布式数据库发送携带操作列句柄的操作数据库表的请求。本板卡的分布式数据库包括一个接口单元、一个列句柄创建单元和一个数据库表索引操作单元;其中,接口单元用于接收来自应用模块的数据库表创建请求、操作列句柄创建请求以及操作数据库表的请求;列句柄创建单元用于根据应用模块的操作列句柄创建请求,创建相应的操作列句柄;数据库表索引操作单元用于根据应用模块的携带操作列句柄的操作请求,对相应数据库表的表项进行索引并操作。本发明实施例的分布式数据库的列句柄创建单元具体结构框图参见图8,包括一个单列结构创建子单元、多列结构创建子单元和一个地址转换子单元;单列结构子单元,用于根据应用模块操作列句柄创建请求中的拟操作列信息,为每一列创建对应的单列结构,该单列结构中记录有该列在数据库表全列结构中的偏移位置和该列在拟操作的列信息中的偏移位置;多列结构创建子单元,用于将单列结构子单元创建的至少一个单列结构组合成一个多列结构,并判断应用模块操作列句柄创建请求中的是否作为索引列句柄信息,如是,则根据确定的索引方式创建对应的索引实现函数集和索引根结构;地址转换子单元,用于将多列结构创建子单元所创建的多列结构的地址转换为一个数值化ID作为操作列句柄。要实现对分布式数据库数据表的操作,分布式数据库就必须要给应用模块提供相应的接口,包括添加、删除、更新、查询等数据操作的基本接口。添加操作和删除操作首先将索引根结构中的索引列句柄进行多列结构的转换,也就是数值化ID到地址的强制转换,将转换后的多列结构来确定表项的组织结构,进而实现添加和删除的动作;在更新操作中,则会利用匹配列句柄和数据列句柄来进行操作,应用模块会根据自己需要更新和匹配的列分别来组合成数据列句柄和匹配列句柄,并传入到分布式数据库提供的更新接口中,在操作时首先是将列句柄进行多列结构的转换,然后以索引多列结构和索引值来确定表项,再利用更新的多列结构来确定更新该表项中的哪几列;在查询操作中,则会利用索引列句柄和数据列句柄来进行操作,应用模块会根据需求来创建并存储相关索引列句柄,通过句柄转换后的多列结构和索引值来确定查询的表项,此时分布式数据提供的查询接口再根据应用模块所携带的数据列句柄转换后的多列结构来确定所查询到的数据,这很类 似SQL的查询语句,但列句柄方便携带并且易于转换,在查询效率和便捷程度上都优于SQL语句。
权利要求
1.嵌入式系统中分布式数据库的数据操作方法,其特征在于,包括以下步骤 a.应用模块利用分布式数据库提供的接口,创建用于存储数据的数据库表; b.所述应用模块根据其操作需求创建多种操作列句柄,并根据索引需求设置一个或多个操作列句柄作为所述数据库表的索引列句柄,并设置其中一个索引列句柄作为所述数据库表的主索引列句柄; c.当需要对数据库表进行操作时,所述应用模块利用分布式数据库所提供的操作接口,向数据库表发送携带操作列句柄的操作请求; d.所述数据库表接收到应用模块操作请求中的操作列句柄后,判断该操作列句柄是否为索引列句柄,如是,则使用该索引列句柄对表项进行索引并操作,否则使用其主索引列句柄对表项进行索引并操作。
2.根据权利要求I所述嵌入式系统中分布式数据库的数据操作方法,其特征在于,所述操作列句柄,是应用模块对数据库表中需要操作的不同列的组合进行定位时,将组合列的地址进行转化后的数值化ID。
3.根据权利要求I或2所述嵌入式系统中分布式数据库的数据操作方法,其特征在于,所述步骤b中,操作列句柄的创建过程包括以下步骤 b I.应用模块向分布式数据库发送列句柄创建请求,所述列句柄创建请求中携带了表名信息、拟操作的列信息以及是否作为索引列句柄信息; b2.分布式数据库接收到所述应用模块的列句柄创建请求后,为拟操作的列信息中的每一列创建对应的单列结构,该单列结构中记录有该列在数据库表全列结构中的偏移位置和该列在拟操作的列信息中的偏移位置; b3.完成各单列结构的创建后,分布式数据库将这些单列结构组合成一个多列结构; b4.分布式数据库判断该创建的列句柄是否作为索引列句柄,若是则进入b5步骤,否则直接进入b6步骤; b5.分布式数据库为该索引列句柄的多列结构创建确定的索引方式对应的索引实现函数集和索引根结构; b6.分布式数据库将该多列结构的地址进行数值化ID的转换,得到该创建的操作列句柄。
4.根据权利要求3所述嵌入式系统中分布式数据库的数据操作方法,其特征在于,所述操作列句柄从功能上分为数据列句柄和匹配列句柄,所述应用模块对数据库表进行添加操作时使用数据列句柄,在进行删除操作时使用匹配列句柄,在进行更新和查询操作时使用数据列句柄和匹配列句柄。
5.根据权利要求3或4所述嵌入式系统中分布式数据库的数据操作方法,其特征在于,分布式数据库接收到应用模块的添加操作请求时,使用数据库表的主索引列句柄对表项进行索引并操作;在接收到应用模块的删除、更新或查询操作请求时,如果判断应用模块所携带的操作列句柄不是索引列句柄时,则使用数据库表的主索引列句柄对表项进行索引并操作,否则使用所述操作列句柄对表项进行索引并操作。
6.根据权利要求3所述嵌入式系统中分布式数据库的数据操作方法,其特征在于,所述索引方式是指采用Hash表或者是链表对数据库表进行索引。
7.根据权利要求1-6任一项所述嵌入式系统中分布式数据库的数据操作方法,其特征在于,所述应用模块为主用主控卡的应用模块或者业务线卡上的应用模块。
8.—种板卡,包括至少一个应用模块和一个分布式数据库,其特征在于, 所述应用模块包括一个数据库表创建请求单元、一个列句柄创建请求单元和一个数据库表操作请求单元, 所述数据库表创建请求单元,用于向分布式数据库发送创建用于存储数据的数据库表的请求; 所述列句柄创建请求单元,用于向分布式数据库发送创建操作列句柄的请求,所述创建操作列句柄的请求中携带了所述列句柄创建请求中携带了表名信息、拟操作的列信息以及是否作为索引列句柄信息; 所述数据库表操作请求单元,用于向分布式数据库发送携带操作列句柄的操作数据库表的请求; 所述分布式数据库包括一个接口单元、一个列句柄创建单元和一个数据库表索引操作单元, 所述接口单元,用于接收来自应用模块的数据库表创建请求、操作列句柄创建请求以及操作数据库表的请求; 所述列句柄创建单元,用于根据应用模块的操作列句柄创建请求,创建相应的操作列句柄; 所述数据库表索引操作单元,用于根据应用模块的携带操作列句柄的操作请求,对相应数据库表的表项进行索引并操作。
9.如权利要求8所述的板卡,其特征在于,所述分布式数据库的列句柄创建单元包括一个单列结构创建子单元、多列结构创建子单元和一个地址转换子单元; 所述单列结构子单元,用于根据应用模块操作列句柄创建请求中的拟操作列信息,为每一列创建对应的单列结构,该单列结构中记录有该列在数据库表全列结构中的偏移位置和该列在拟操作的列信息中的偏移位置; 所述多列结构创建子单元,用于将单列结构子单元创建的至少一个单列结构组合成一个多列结构,并判断应用模块操作列句柄创建请求中的是否作为索引列句柄信息,如是,则根据确定的索引方式创建对应的索引实现函数集和索引根结构; 所述地址转换子单元,用于将多列结构创建子单元所创建的多列结构的地址转换为一个数值化ID作为操作列句柄。
10.如权利要求8或9所述的板卡,其特征在于,所述分布式数据库的数据库表索引操作单元,还用于接收到应用模块的添加操作请求时,使用数据库表的主索引列句柄对表项进行索引并操作;在接收到应用模块的删除、更新或查询操作请求时,如果判断应用模块所携带的操作列句柄不是索引列句柄时,则使用数据库表的主索引列句柄对表项进行索引并操作,否则使用所述操作列句柄对表项进行索引并操作。
全文摘要
本发明涉及数据库技术。本发明解决了现有开源数据库系统效率低下的问题,提供了一种嵌入式系统中分布式数据库的数据操作方法及板卡,其技术方案可概括为嵌入式系统中分布式数据库的数据操作方法采用多种操作列句柄的方式实现应用模块对分布式数据库的操作以及数据存储;一种板卡,由至少一个应用模块和一个分布式数据库组成,其中,应用模块包括一个数据库表创建请求单元、一个列句柄创建请求单元和一个数据库表操作请求单元,分布式数据库包括一个接口单元、一个列句柄创建单元和一个数据库表索引操作单元。本发明的有益效果是提升系统效率,适宜于分布式数据库。
文档编号G06F17/30GK102654878SQ201110052438
公开日2012年9月5日 申请日期2011年3月4日 优先权日2011年3月4日
发明者万维威, 梁晖 申请人:迈普通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1