数据关系的处理方法、装置及移动通讯终端的制作方法

文档序号:6425494阅读:105来源:国知局
专利名称:数据关系的处理方法、装置及移动通讯终端的制作方法
技术领域
本发明涉及软件领域,具体而言,涉及一种数据关系的处理方法、装置及移动通讯终端。
背景技术
对于很多依赖每天通过不停收集海量数据,然后建立属性对应关系并提供实时高速查询的服务来说,大量的导入和查询操作,由于锁的问题,会使得数据的导入和查询的性能均十分低效。图1是根据相关技术的基于二维表的属性关系结构示意图。如图1所示的实施例以人为例来对事物属性进行建模,并基于该建模对人物属性进行快速查找。如图1所示的关系数据库中,建立一张二维表式的模型,以人的身份证号作为主键,其他关联字段有军人证、驾驶证、社保号、工行账户、建行账户等。在用户提供了社保号之后,如果想快速查找到他的军人证,需要先找出该用户的主键(即身份证号),然后开始遍历该二维表,由于该二维表模型采用主键与其它关联字段一一对应的关系,因此查找效率低。如果对所有字段建立索引,会导致二维表结构复杂,同时,在属性数据导入、更新的过程中,由于需要导入所有属性关系的数据,导致了查询效率和更新效率低的问题。如果对某两个字段用单独的表存储,关联的效率也比较低。目前针对相关现有技术的属性数据关系模型查询效率低,数据导入、更新效率低的问题,尚未提出有效的解决方案。

发明内容
本发明的主要目的在于提供一种数据关系的处理方法、装置及移动通讯终端,以解决相关现有技术的属性数据关系模型查询效率低,数据导入、更新效率低的问题,能够提高属性数据导入和更新的效率。为了实现上述目的,根据本发明的一个方面,提供了一种数据关系的处理方法,该数据关系的处理方法包括设置第一属性数据为主键;调用属性关系数据库,根据主键在属性关系数据库中搜索第二属性数据,以获取第一属性数据与第二属性数据之间的路径; 判断路径是否是最短路径;当路径为非最短路径时,建立第一属性数据与第二属性数据之间的直接属性关系,并将直接属性关系保存至属性关系数据库中,其中,直接属性关系为第一属性数据与第二属性数据之间为最短路径时对应的属性关系。进一步地,在设置第一属性数据为主键之前,方法还包括构建属性关系数据库, 属性关系数据库包括一组或多组属性关系,属性关系为任意两个属性数据之间的对应关系。进一步地,调用属性关系数据库,根据主键在属性关系数据库中搜索第二属性数据,以获取第一属性数据与第二属性数据之间的路径的步骤包括调用属性关系数据库,并根据属性关系数据库建立有向图;以主键为出发点,通过宽度搜索算法在有向图中查询第
4二属性数据,并获取第二属性数据的值;获取并记录第一属性数据与第二属性数据之间的一条或多条路径。进一步地,在建立第一属性数据与第二属性数据之间的直接属性关系,并将直接属性关系保存至属性关系数据库之后,方法还包括获取第一属性数据与第二属性数据之间的路径经过的第三属性数据;建立第一属性数据与第三属性数据之间的直接属性关系, 同时建立第二属性数据与第三属性数据之间的直接属性关系。进一步地,属性关系为双向关系,将直接属性关系保存至属性关系数据库中包括 将双向关系以数据表的格式保存至属性关系数据库中。为了实现上述目的,根据本发明的另一方面,提供了一种数据关系的处理装置,该数据关系的处理装置包括设置模块,用于设置第一属性数据为主键;搜索模块,用于调用属性关系数据库,根据主键在属性关系数据库中搜索第二属性数据,以获取第一属性数据与第二属性数据之间的路径;判断模块,用于判断路径是否是最短路径;修复模块,用于当路径为非最短路径时,建立第一属性数据与第二属性数据之间的直接属性关系,并将直接属性关系保存至属性关系数据库中,其中,直接属性关系为第一属性数据与第二属性数据之间为最短路径时对应的属性关系。进一步地,装置还包括构建模块,用于构建属性关系数据库,属性关系数据库包括一组或多组属性关系,属性关系为任意两个属性数据之间的对应关系。进一步地,搜索模块包括调用模块,用于调用属性关系数据库,并根据属性关系数据库建立有向图;查询模块,用于以主键为出发点,通过宽度搜索算法在有向图中查询第二属性数据,并获取第二属性数据的值;保存模块,用于获取并记录第一属性数据与第二属性数据之间的一条或多条路径。进一步地,装置还包括获取模块,用于获取第一属性数据与第二属性数据之间的路径经过的第三属性数据;创建模块,用于建立第一属性数据与第三属性数据之间的直接属性关系,同时建立第二属性数据与第三属性数据之间的直接属性关系。为了实现上述目的,根据本发明的又一方面,提供了一种移动通讯终端,包括上述任意一种数据关系的处理装置。通过本发明,采用设置第一属性数据为主键;调用属性关系数据库,根据主键在属性关系数据库中搜索第二属性数据,以获取第一属性数据与第二属性数据之间的路径;判断路径是否是最短路径;当路径为非最短路径时,建立第一属性数据与第二属性数据之间的直接属性关系,并将直接属性关系保存至属性关系数据库中,其中,直接属性关系为第一属性数据与第二属性数据之间为最短路径时对应的属性关系,上述处理过程,通过查询两个属性数据之间的查询路径是否是最短路径来确定,如果两个属性数据之间的需要经过其他属性关系才可以查询到的话,则创建这两个属性数据之间的属性关系,即获取两个属性数据之间的最短路径,使得在下次查询的时候,可以通过该最短路径直接从一个属性数据查找到另外一个属性数据,并获取属性数据的值,而且将创建后的二者属性关系保存,即不断完善原来的属性关系数据库,使得属性数据关系趋于完善,从而解决了属性数据关系模型查询效率低,数据导入、更新效率低的问题,进而实现在提供高速查询属性数据的同时, 也提供高速的属性数据更新和导入的性能的效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据相关技术的基于二维表的属性关系结构示意图;图2是根据本发明实施例的数据关系的处理装置结构示意图;图3是根据本发明实施例的有向完全图的属性数据关系结构示意图;图4是根据本发明实施例的数据关系的处理方法的流程图;图5-6是根据本发明第一实施例的基于有向图的属性数据关系的结构示意图;图7-8是根据本发明第二实施例的基于有向图的属性数据关系的结构示意图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。图2是根据本发明实施例的数据关系的处理装置结构示意图。如图2所示,该装置包括设置模块10,用于设置第一属性数据为主键;搜索模块30,用于调用属性关系数据库,根据主键在属性关系数据库中搜索第二属性数据,以获取第一属性数据与第二属性数据之间的路径;判断模块50,用于判断路径是否是最短路径;修复模块70,用于当路径为非最短路径时,建立第一属性数据与第二属性数据之间的直接属性关系,并将直接属性关系保存至属性关系数据库中,其中,直接属性关系为第一属性数据与第二属性数据之间为最短路径时对应的属性关系。本发明上述实施例通过查询两个属性数据之间的对应关系,并判断两个属性数据之间的查询路径是否是最短路径,如果两个属性数据之间的需要经过其他属性关系才可以查询到的话,则创建这两个属性数据之间的属性关系,即获取两个属性数据之间的最短路径,在下次查询的时候,可以利用最短路径来实现通过其中一个属性数据就可以直接查找到另外一个属性数据,并获取属性数据的值,而且将创建后的二者属性关系保存,即不断完善原来的属性关系数据库,使得属性数据关系趋于完善,实现了高速查询属性数据的同时也提供高速的属性数据更新和导入的性能。本发明上述实施例中,该装置还可以包括构建模块90,用于构建属性关系数据库,属性关系数据库包括一组或多组属性关系,属性关系为任意两个属性数据之间的对应关系。该实施例中可以采用key-value作为某两个属性数据之间的关系存储来构建属性关系,多个该类属性关系构成属性关系数据库,具体的,以某个属性数据X作为出发点,指向另外一个属性数据的关系的数据,存储在对应的Key-Value存储中。本发明上述实施例的搜索模块30可以包括调用模块301,用于调用属性关系数据库,并根据属性关系数据库建立有向图;查询模块303,用于以主键为出发点,通过宽度搜索算法在有向图中查询第二属性数据,并获取第二属性数据的值;保存模块305,用于获取并记录第一属性数据与第二属性数据之间的一条或多条路径。该实施例中对所有属性数据之间的关系采用上述多个key-value存储方式存储,并根据各个属性数据之间的关系来建立有向图,当想通过某个属性数据X查询另外一个属性数据Y的时候,只需要以X作为出发点,使用BFS宽度搜索算,搜索出到Y的最短路径,找出Y的值。如果查找到的路径并非最短路径(即χ指向Y的关系路径),则使用关系修复算法修复X和Y属性之间的路径,使得下次查找的时候,可以直接通过X到Y的路径获取数据。具体的,如图3所示,当获得某两个数据的对应关系,以驾驶证和工行账户为例子分别以驾驶证为主键key、工行账户为value导入“驾驶证_>工行账户”关系对应的 key-value存储,再以工行账户为key、驾驶证为value导入“工行账户_>驾驶证”关系对应的key-value存储中,也可以通过上述方法导入“工行帐户<_>建行帐户”、“驾驶证<_> 设保号”以及“工行帐户<_>设保号”关系对应的key-value存储。当以驾驶证为主键查找建行帐户时,该实施例的有向图中可以获得三条路径,但都不是最短路径。优选的,该装置还可以包括获取模块110,用于获取第一属性数据与第二属性数据之间的路径经过的一个或多个第三属性数据;创建模块130,用于建立第一属性数据与第三属性数据之间的直接属性关系,同时建立第二属性数据与第三属性数据之间的直接属性关系。本发明上述实施例实现填补缺失的属性数据及属性数据之间的关系。上述实施例实现使用key-value存储与搜索算法结合去实现属性快速查询这一个技术方案,能够提供高效的实时查询功能的同时拥有高效的数据导入功能。图4是根据本发明实施例的数据关系的处理方法的流程图。如图4所示该方法包括如下步骤步骤S102,通过图2中的定义模块10来设置第一属性数据为主键。步骤S104,通过图2中的搜索模块30来实现调用属性关系数据库,根据主键在属性关系数据库中搜索第二属性数据,以获取第一属性数据与第二属性数据之间的路径。步骤S106,通过图2中的判断模块50来判断路径是否是最短路径。步骤S108,通过图2中的修复模块70来实现,当路径为非最短路径时,建立第一属性数据与第二属性数据之间的直接属性关系,并将直接属性关系保存至属性关系数据库中,其中,直接属性关系为第一属性数据与第二属性数据之间为最短路径时对应的属性关系。本发明上述实施例通过查询两个属性数据之间的对应关系,并判断两个属性数据之间的关系,即查询路径是否是最短路径,如果两个属性数据之间的需要经过其他属性关系才可以查询到的话,则创建这两个属性数据之间的直接属性关系,即获取两个属性数据之间的最短路径,在下次查询的时候,通过其中一个属性数据就可以直接查找到另外一个属性数据,并获取属性数据的值,而且将创建后的二者属性关系保存,即不断完善原来的属性关系数据库,使得属性数据关系趋于完善,实现了高速查询属性数据的同时也提供高速的属性数据更新和导入的性能。具体的,假如用户的查询无法通过最短路径查找到,只能通过非最短路径查找,在这种情况下,可以使用数据关系修复使得数据关系趋向于完整。具体的,上述步骤S106和步骤S108可以实现,当需要根据值为value的X属性查找Y属性的值时,如果X到Y的关系可以直接获取Y属性的数据,则直接返回该属性Y的数据,否则,可以以X作为起点,使用宽度搜索算法,寻找到Y属性的路径,如果有一条路径可达,则对于中间经过的任意两个的属性,相互建立key->ValUe的属性关系,以获得在有向图上增添X属性到Y属性的最短路径,从而返回Y属性的值。因此,本发明提出的使用 key-value存储去存储任意两个属性之间的关系。可以根据某一个提供的属性,使用BFS宽度搜索算法,快速查找出另外一个属性,然后可以填补一些缺失的属性关系,使得后续的属性数据查找效率更加高效。本发明上述实施例中,在上述判断步骤S106之后,还可以包括步骤S109,该步骤实现当路径是最短路径时,系统可以返回第二属性数据的值给用户,以实现用户通过最短路径查询得到所需的数据。本发明上述实施例中的在设置第一属性数据为主键之前,方法还可以包括如下步骤构建属性关系数据库,属性关系数据库包括一组或多组属性关系,属性关系为任意两个属性数据之间的对应关系。优选地,调用属性关系数据库,根据主键在属性关系数据库中搜索第二属性数据, 以获取第一属性数据与第二属性数据之间的路径的步骤S104可以包括如下步骤调用属性关系数据库,并根据属性关系数据库建立有向图;以主键为出发点,通过宽度搜索算法在有向图中查询第二属性数据,并获取第二属性数据的值;获取并记录第一属性数据与第二属性数据之间的一条或多条路径。具体的,本发明该实施例可以使用key-value存储去存储任意两个属性之间的关系以构成属性关系数据库,然后可以根据某一个提供的属性,使用BFS宽度搜索算法,快速查找出另外一个属性,用以填补一些缺失的属性。在查找的效率上更加高效。优选地,在建立第一属性数据与第二属性数据之间的直接属性关系,并将直接属性关系保存至属性关系数据库之后,方法还包括获取第一属性数据与第二属性数据之间的路径经过的第三属性数据;建立第一属性数据与第三属性数据之间的直接属性关系,同时建立第二属性数据与第三属性数据之间的直接属性关系。本发明上述各个实施例中的属性关系为有向图中的双向关系,并以数据表的格式将双向关系保存至属性关系数据库中。图5-6是根据本发明第一实施例的基于有向图的属性数据关系的结构示意图。如图5所示,该实施例中在属性数据导入的过程中,分别导入了 “驾驶证<_>社保号”,“社保号<_>工行账户”,“建行账户<_>工行账户”的属性关系,因此,该用户只具备了图5中的数据关系。该实施例中,如果用户想通过驾驶证查找建行账户的时候,由于用户缺少“驾驶证_>建行账户”的对应关系,所以无法马上找到建行账户的数据出来,需要通过“驾驶证一社保号一工行账户一建行账户,,这样一条非最短路径才能找到,在获得建行账户的数据的时候,由于有了 “驾驶证”、“社保号”、“工行账户,,和“建行账户,,这4个属性的数据及对应关系,于是可以把这4个属性数据按照以驾驶证为主键key、工行账户为value导入“驾驶证_>工行账户”关系对应的key-value存储,再以工行账户为key、驾驶证为value导入“工行账户_>驾驶证”关系对应的key-value存储中,实现分别把某两个属性的对应关系导入到Key-value存储中,使得其数据关系修复成如图6所示的有向图。如图6所示,用户下次来通过驾驶证查询建行账户的时候,会通过图6中的最短路径“驾驶证一建行账户”来得到建行帐户的数据值。具体的,上述实施例实现的代码片段如下
8//属性结构 struct AttrPoint {
std: :string attr; //属性名 std::string value; //值
};
该步骤实现定义相关属性的属性名和该属性数据对应的值。 typedef vector<std:string) TATTRLIST; Τ—ATTRLIST AttrList; //记录了所有属性
//调用key-value存储,通过start点的值key,获取end的值
extern std:string getValue (const std:string& start , const std::string& end , const std::string& key);
//调用key-value存储,对关系为start->end的存储,根据key的值设置value的值
extern void setValue (const std::string& start , const std::string& end , const std::stringfe key , std::stringfe value);
//修复关系数据
void build—relationship (std::map <std::string , std::string>& Record)
权利要求
1.一种数据关系的处理方法,其特征在于,包括 设置第一属性数据为主键;调用属性关系数据库,根据所述主键在所述属性关系数据库中搜索第二属性数据,以获取所述第一属性数据与所述第二属性数据之间的路径; 判断所述路径是否是最短路径;当所述路径为非最短路径时,建立所述第一属性数据与所述第二属性数据之间的直接属性关系,并将所述直接属性关系保存至所述属性关系数据库中,其中,所述直接属性关系为所述第一属性数据与所述第二属性数据之间为最短路径时对应的属性关系。
2.根据权利要求1所述的方法,其特征在于,在设置第一属性数据为主键之前,所述方法还包括构建所述属性关系数据库,所述属性关系数据库包括一组或多组属性关系,所述属性关系为任意两个属性数据之间的对应关系。
3.根据权利要求2所述的方法,其特征在于,调用属性关系数据库,根据所述主键在所述属性关系数据库中搜索第二属性数据,以获取所述第一属性数据与所述第二属性数据之间的路径的步骤包括调用所述属性关系数据库,并根据所述属性关系数据库建立有向图; 以所述主键为出发点,通过宽度搜索算法在所述有向图中查询所述第二属性数据,并获取所述第二属性数据的值;获取并记录所述第一属性数据与所述第二属性数据之间的一条或多条路径。
4.根据权利要求3所述的方法,其特征在于,在建立所述第一属性数据与所述第二属性数据之间的直接属性关系,并将所述直接属性关系保存至所述属性关系数据库之后,所述方法还包括获取所述第一属性数据与所述第二属性数据之间的路径经过的第三属性数据; 建立所述第一属性数据与所述第三属性数据之间的直接属性关系,同时建立所述第二属性数据与所述第三属性数据之间的直接属性关系。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述属性关系为双向关系,将所述直接属性关系保存至所述属性关系数据库中包括将所述双向关系以数据表的格式保存至所述属性关系数据库中。
6.一种数据关系的处理装置,其特征在于,包括 设置模块,用于设置第一属性数据为主键;搜索模块,用于调用属性关系数据库,根据所述主键在所述属性关系数据库中搜索第二属性数据,以获取所述第一属性数据与所述第二属性数据之间的路径; 判断模块,用于判断所述路径是否是最短路径;修复模块,用于当所述路径为非最短路径时,建立所述第一属性数据与所述第二属性数据之间的直接属性关系,并将所述直接属性关系保存至所述属性关系数据库中,其中,所述直接属性关系为所述第一属性数据与所述第二属性数据之间为最短路径时对应的属性关系。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括构建模块,用于构建所述属性关系数据库,所述属性关系数据库包括一组或多组属性关系,所述属性关系为任意两个属性数据之间的对应关系。
8.根据权利要求7所述的装置,其特征在于,所述搜索模块包括调用模块,用于调用所述属性关系数据库,并根据所述属性关系数据库建立有向图; 查询模块,用于以所述主键为出发点,通过宽度搜索算法在所述有向图中查询所述第二属性数据,并获取所述第二属性数据的值;保存模块,用于获取并记录所述第一属性数据与所述第二属性数据之间的一条或多条路径。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括获取模块,用于获取所述第一属性数据与所述第二属性数据之间的路径经过的第三属性数据;创建模块,用于建立所述第一属性数据与所述第三属性数据之间的直接属性关系,同时建立所述第二属性数据与所述第三属性数据之间的直接属性关系。
10.一种移动通讯终端,其特征在于,包括权利要求6-9中任意项所述的数据关系的处理装置。
全文摘要
本发明公开了一种数据关系的处理方法、装置及移动通讯终端。其中,该方法包括设置第一属性数据为主键;调用属性关系数据库,根据主键在属性关系数据库中搜索第二属性数据,以获取第一属性数据与第二属性数据之间的路径;判断路径是否是最短路径;当路径为非最短路径时,建立第一属性数据与第二属性数据之间的直接属性关系,并将直接属性关系保存至属性关系数据库中,其中,直接属性关系为第一属性数据与第二属性数据之间为最短路径时对应的属性关系。通过本发明,能够实现在提供高速查询属性数据的同时也提供高速的属性数据更新和导入的性能。
文档编号G06F17/30GK102214214SQ201110147900
公开日2011年10月12日 申请日期2011年6月2日 优先权日2011年6月2日
发明者梁捷, 谢玄亮 申请人:广州市动景计算机科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1