CN101770479B - 一种关联关系的查询方法及装置 - Google Patents

一种关联关系的查询方法及装置 Download PDF

Info

Publication number
CN101770479B
CN101770479B CN2008102466481A CN200810246648A CN101770479B CN 101770479 B CN101770479 B CN 101770479B CN 2008102466481 A CN2008102466481 A CN 2008102466481A CN 200810246648 A CN200810246648 A CN 200810246648A CN 101770479 B CN101770479 B CN 101770479B
Authority
CN
China
Prior art keywords
incidence relation
scheme
calculation task
sign
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008102466481A
Other languages
English (en)
Other versions
CN101770479A (zh
Inventor
冯刚
张文
陈晓峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bright Oceans Inter Telecom Co Ltd
Original Assignee
Bright Oceans Inter Telecom Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bright Oceans Inter Telecom Co Ltd filed Critical Bright Oceans Inter Telecom Co Ltd
Priority to CN2008102466481A priority Critical patent/CN101770479B/zh
Publication of CN101770479A publication Critical patent/CN101770479A/zh
Application granted granted Critical
Publication of CN101770479B publication Critical patent/CN101770479B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种关联关系查询方法及装置。本发明提供的关联关系查询方法包括以下步骤:接收携带对象标识和方案标识的关联关系查询请求;从预置的关联关系表中获取与所述方案标识关联的关联关系表;在所述获取到的关联关系表中查询所述对象标识对应的关联关系。本发明提供的关联关系查询技术方法,是从方案关联的一张关联关系表中直接查询对象的关联关系,克服了现有技术多表联合查询关联关系产生的查询速度缓慢,效率低的问题,实现了快速、高效的关联关系查询。

Description

一种关联关系的查询方法及装置
技术领域
本发明涉及数据查询技术领域,尤其涉及一种关联关系查询方法及装置。
背景技术
网络管理系统是通信网的重要支撑系统,是保证通信网高效、可靠、经济和健康、安全运行的重要支撑手段。
通信网是由各种物理资源和逻辑资源组成的有机体,为了有效地进行网络管理,网络资源的管理是一项重要的功能,资源管理系统作为网络管理系统一个重要的子系统已成为提高通信网运营效率、快速开通业务、实现全网集约化管理的重要管理手段。
资源管理系统要管理的资源多种多样,千差万别。从狭义上讲,资源可以分为以下三类:设备,设备间的关联关系(亦可简称为关系)以及基于设备和关系实现的业务。现有技术中用对象模型给所述的资源进行建模,描述对象和相关对象之间的关系。参见专利CN1570910中的相应定义,所述类是对象的抽象,所述方案用于描述类之间存在的关联关系。按照面向对象的思想,将要管理的数据进行抽象,形成类,用属性和方法来描述对象的状态和可执行的操作,并用方案来定义不同的对象管理域内对象之间可以存在的关系。一个类通常用一张数据库表描述,因此,方案亦可被理解为用于描述数据库表之间可能存在的关联关系。一个方案可用于描述一种关联关系。
现有技术为资源管理系统提供了一种实现各种资源之间关联关系查询的方法,核心思想是:根据携带的对象标识和方案标识,请求查询方案中与该对象相关的关联关系,即在方案涉及的多张数据库表中联合查询所述对象的关联关系。
为更清楚地说明现有技术提供的关联关系查询技术方案,以下举例详细说明。
比如,对于显示器、信号传输线和主机这三种不同的类,表A用于记录显示器信息,包括显示器标识a1、显示器的VGA输入端口标识a2,表B用于记录信号传输线信息,包括信号传输线标识b1、信号传输线的第一VGA接头标识b2、信号传输线的第二VGA接头标识b3,表C用于记录主机信息,包括主机标识c1、主机的VGA输出端口标识c2。方案1描述的显示器(表A),信号传输线(表B)和主机(表C)之间的关联关系为:A.a2=B.b2and B.b3=C.c2,即显示器(表A)的VGA输入端口(字段a2)与信号传输线(表B)的第一VGA接头(字段b2)关联,信号传输线(表B)的第二VGA接头(字段b3)与主机(表C)的VGA输出端口(字段c2)关联。当用户想知道显示器1与哪台主机相连时,则发送携带显示器1和方案1(A.a2=B.b2and B.b3=C.c2)的关联关系查询请求至关联关系查询模块,关联关系查询模块则根据方案1的A.a2=B.b2and B.b3=C.c2,在表A中查找显示器1对应的表项,并从所述表项的字段a2中获取显示器1的VGA输入端口标识,然后,根据所述VGA输入端口标识,在表B的b2字段中查找连接显示器1的信号传输线表项,再从所述信号传输线表项的b3字段中获取所连主机的VGA输出接口标识,最后,根据所述连接主机的VGA输出接口标识,在表C中查找到所连接主机的标识,即与显示器1相连的主机标识。
在对现有技术的研究和实践过程中,发明人发现采用现有的关联关系查询技术方案,存在如下问题:
由于现有的关联关系查询方法是在方案涉及的多张数据库表中联合查询对象相关的关联关系,一旦方案涉及的数据库表数量较多或数据库表中的数据记录量较大,采用现有的关联关系查询方法就会在查询关联关系时,由于要联合查询大量的表或者要在数据库表中联合查询大量的数据记录,会产生查询速度缓慢、查询效率低的问题。
发明内容
本发明实施例要解决的技术问题是解决联合多表查询带来的查询低效问题,本发明的目的是提供一种关联关系的快速查询方法及装置,能够实现准确、快速、高效的关联关系查询。
为解决上述技术问题,本发明提供的实施例是通过以下技术方案实现的:
一种关联关系的查询方法,包括步骤:
接收携带对象标识和方案标识的关联关系查询请求;
从预置的关联关系表中查询与所述方案标识关联的关联关系表,如果查到则获取所述方案标识关联的关联关系表;
在所述获取到的关联关系表中查询所述对象标识对应的关联关系;
所述预置关联关系表用于保存定义的模型对象之间依存的关联关系,并保持与定义的模型对象标识之间的一致性;
所述预置关联关系表的预置方法是:用关联关系表模板给所述方案建立对应的预置关联关系表,所述的关联关系表模板是由绑定类和被绑定类构成,或者由绑定类、一至多个中间类和被绑定类构成;按照关联关系表模板,将方案涉及的对象标识,从定义模型的数据表同步映射到所述方案的预置关联关系表中。
进一步地,所述预置关联关系表的预置方法,进一步包括:
根据定义的数据模型及其为模型对象之间依存的关联关系所定义的方案,按需要设置关联关系预置标记信息,用关联关系表模板给所述有关联关系预置标记的方案建立对应的预置关联关系表;
对于有关联关系预置标记的方案,按照关联关系表模板,将方案涉及的对象标识,从定义模型的数据表同步映射到所述方案的预置关联关系表中。
进一步地,所述将方案涉及的对象标识,从定义模型的数据表同步映射到所述方案的关联关系表的方法,进一步还包括:
获取所述定义方案的对象或对象属性发生变动的信息,包括变动对象的标识、变动对象属性的标识、变动对象所属的方案标识以及对象变动类型,所述对象变动类型包括对象增加、对象删除或对象属性的修改;
根据获得的对象变动信息,检查变动对象所属的方案是否有关联关系预置标记有效,如果有效,根据所述变动对象标识,通过读取定义模型的数据表对变动的对象计算其最新的关联关系,在计算完成后按照关联关系表模板将计算结果映射到所述方案的关联关系表,并给所述方案设置最新计算完成标记。
进一步地,所述通过读取定义模型的数据表对变动的对象进行最新关联关系的计算,在计算完成后按照关联关系表模板将计算结果映射到所述方案的关联关系表,进一步包括,
组装所述变动对象的关联关系计算任务,并将携带对象变动信息的关联关系计算任务放入任务队列;
从任务队列中顺序取出关联关系计算任务;
根据组装在关联关系计算任务中的对象变动类型,将所述关联关系计算任务委托给相应的关联关系计算线程进行关联关系计算,在计算完成后按照关联关系表模板将计算结果更新到所述方案的关联关系表。
优选的,所述任务队列包括:增加队列、删除队列和修改队列,则所述将携带对象变动信息的关联关系计算任务放入任务队列具体包括:
若组装在关联关系计算任务中的对象变动类型是增加对象,则将所述携带变动对象标识及所属的方案标识的关联关系计算任务放入增加队列;
若组装在关联关系计算任务中的对象变动类型是删除对象,则将所述携带变动对象标识及所属的方案标识的关联关系计算任务放入删除队列;
若组装在关联关系计算任务中的对象变动类型是修改对象属性,则将所述携带变动对象标识、对象属性标识及所属的方案标识的关联关系计算任务拆分为两个任务,一个任务将携带变动对象标识及所述的方案标识的关联关系计算任务放入删除队列,另一个任务将携带变动对象标识及所述的方案标识的关联关系计算任务放入修改队列。
进一步地,所述从任务队列中顺序取出关联关系计算任务,并委托给相应关联关系计算线程具体包括:
从增加队列中顺序取出关联关系计算任务,并将所述关联关系计算任务委托给用于计算增加关联关系的关联关系计算线程,直到增加队列中没有关联关系计算任务;
从删除队列中顺序取出关联关系计算任务,并将所述关联关系计算任务委托给用于计算删除关联关系的关联关系计算线程,直到删除队列中没有关联关系计算任务;
从修改队列中顺序取出关联关系计算任务,将所述关联关系计算任务委托给用于计算增加关联关系的关联关系计算线程,直到修改队列中没有关联关系计算任务。
优选的,所述用于计算增加关联关系的关联关系计算线程进行关联关系计算具体包括:
关联关系计算线程根据组装在关联关系计算任务中的方案标识,读取方案涉及的定义模型数据库表,并根据组装在关联关系计算任务中的对象标识,在所述方案涉及的数据库表中查询对象的关联关系,并将查询到的关联关系添加到所述方案标识关联的关联关系表中。
同时,所述用于计算删除关联关系的关联关系计算线程进行关联关系计算具体包括:
关联关系计算线程根据组装在关联关系计算任务中的方案标识,在预置的关联关系表中获取与所述方案标识关联的关联关系表,并从所述获取到的关联关系表中删除组装在所述关联关系计算任务中的对象标识对应的关联关系。
所述的关联关系查询方法,进一步包括,检查所述方案是否完成了最新关联关系计算,如果已完成最新关联关系计算,则从关联关系数据表中查询所述方案中与所述对象标识相关联的关联关系。
所述的关联关系查询方法,还可以包括,从预置的关联关系表中查询与所述方案标识关联的关联关系表的方法,进一步包括:
根据方案标识,检查所述方案是否有关联关系预置标记有效,如果有效,表明能够查到与所述方案标识关联的关联关系表,否则,不能查到与所述方案标识关联的关联关系表。
从所述方案标识关联的关联关系表中查询所述对象标识对应的关联关系的方法,进一步包括:
根据方案标识,检查所述方案是否有关联关系预置标记有效,如果有效,继续检查所述方案是否完成了最新关联关系计算,如果已完成最新关联关系计算,则从关联关系数据表中查询所述方案中与所述对象标识相关联的关联关系。
一种关联关系的查询装置,包括模型定义单元,模型数据存储单元,对象操作单元和关联关系查询单元,其中,
模型定义单元,用于定义数据模型,包括类和方案的定义;
模型数据存储单元,用于存储定义模型的数据,包括类、对象和方案的数据;
对象操作单元,用于实现模型数据对象的增加、删除和修改;
关联关系查询单元,根据方案标识和对象标识,查询模型数据存储单元中所述方案和所述对象的数据以及与所述对象有关联关系的数据,找到所述方案标识中与所述对象标识相关联的关联关系;
其特征在于,还进一步包括,
关联关系表预置单元,给定义模型的定义方案建立预置关联关系表;所述预置关联关系表的预置方法是:用关联关系表模板给所述方案建立对应的预置关联关系表,所述的关联关系表模板是由绑定类和被绑定类构成,或者由绑定类、一至多个中间类和被绑定类构成;按照关联关系表模板,将方案涉及的对象标识,从定义模型的数据表同步映射到所述方案的预置关联关系表中;
关联关系数据存储单元,用于保存关联关系数据表;
所述的关联关系查询单元,根据接收携带对象标识和方案标识的关联关系查询请求,从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系;还可以直接从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
还可以进一步包括,
关联关系预置标记管理单元,根据需要给定义模型的定义方案设置关联关系预置标记信息,据此为设置关联关系标记信息的方案添加或删除关联关系预置标记;
所述的关联关系表预置单元,对添加关联关系预置标记的方案,用关联关系表模板建立所述方案对应的预置关联关系表;
所述的关联关系查询单元,根据接收携带对象标识和方案标识的关联关系查询请求,检查所述方案是否有关联关系预置标记有效,如果有效,则从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系;还可以直接从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
还可以进一步包括,
对象变动信息处理单元,获取模型数据存储单元数据表中的对象或对象属性发生变动的信息,包括变动对象的标识、变动对象属性的标识、变动对象所属的方案标识以及对象变动类型,所述对象变动类型包括对象增加、对象删除或对象修改;
关联关系计算单元,根据对象变动信息处理单元获得的对象变动信息,检查变动对象所属的方案是否有关联关系预置标记有效,如果有效,根据所述变动对象标识,读取当前模型数据存储单元中的数据表,对变动的对象计算其最新的关联关系,在计算完成后根据计算结果更新关联关系记录存储单元中变动对象所属方案的关联关系表,并给所述方案设置最新计算完成标记。
所述的关联关系查询单元,根据接收携带对象标识和方案标识的关联关系查询请求,检查所述方案是否有关联关系预置标记有效,如果有效,继续检查所述方案是否设置有最新计算完成标记有效,如果有效,则从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系;还可以直接从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
所述的关联关系查询单元,还可以是这样的,检查所述方案是否设置有最新计算完成标记有效,如果有效,根据接收携带对象标识和方案标识的关联关系查询请求,检查所述方案是否有关联关系预置标记有效,如果有效,则从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系;还可以直接从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
所述的关联关系计算单元进一步包括,
关系计算任务组装单元,用于在收到对象变动信息处理单元的对象变动通知时,组装所述变动对象的关联关系计算任务,调用关系计算任务添加单元;
关系计算任务添加单元,用于将携带对象变动信息的关联关系计算任务放入任务队列;
关系计算任务委托单元,用于从任务队列中顺序取出关联关系计算任务,根据组装在关联关系计算任务中的对象变动类型,将所述关联关系计算任务委托给相应的关联关系计算线程。
进一步地,所述任务队列包括:增加队列,删除队列和修改队列,则所述关系计算任务添加单元具体包括:
增加关系计算任务添加单元,用于当组装在关联关系计算任务中的对象变动类型是增加对象时,则将携带变动对象标识及所属的方案标识的关联关系计算任务放入增加队列;
删除关系计算任务添加单元,用于当组装在关联关系计算任务中的对象变动类型是删除对象时,将携带变动对象标识及所属的方案标识的关联关系计算任务放入删除队列;
修改关系计算任务添加单元,用于当组装在关联关系计算任务中的对象变动类型是修改对象属性时,将所述关联关系计算任务拆分为两个任务,一个任务将携带变动对象标识及所述的方案标识的关联关系计算任务放入删除队列,另一个任务将携带变动对象标识及所述的方案标识的关联关系计算任务放入修改队列。
进一步地,所述关系计算任务委托单元具体包括:增加关系计算任务委托单元,删除关系计算任务单元,修改关系计算任务委托单元;
所述增加关系计算任务委托单元,用于从所述增加队列中顺序取出关联关系计算任务,并将所述任务委托给用于计算增加关联关系的关联关系计算线程,直到所述增加队列中没有关联关系计算任务,则触发所述删除关系计算任务委托单元;
所述删除关系计算任务委托单元,用于从所述删除队列中顺序取出关联关系计算任务,并将所述任务委托给用于计算删除关联关系的关联关系计算线程,直到删除队列中没有关联关系计算任务,则触发所述修改关系计算任务委托单元;
所述修改关系计算任务委托单元,用于从所述修改队列中顺序取出关联关系计算任务,并将所述任务委托给用于计算增加关联关系的关联关系计算线程,直到修改队列中没有关联关系计算任务,再触发所述增加关系计算任务委托单元。
上述技术方案具有如下有益效果:
本发明提出的关联关系查询技术方案,将对象模型中方案所涉及的多张数据库表中存在的对象关联关系预先同步映射到关联关系预置表中,从而在接收到关联关系查询请求时,可以直接查询关联关系预置表,从而准确而快速地得到关联关系查询结果,克服了现有技术在收到关联关系查询请求时,即时从多表或多记录联合查询关联关系而产生的查询速度缓慢,效率低的问题,实现了准确、快速、高效的关联关系查询技术方案。同时,本发明还设计了根据需要建立关联关系预置表的技术方案,由此进一步提高了查询效率,减少关联关系预置表的占用空间。进一步地,提出了保持关联关系预置表与
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1所示为本发明第一实施例提供的关联关系查询方法流程图;
图2所示为本发明第二实施例提供的关联关系查询方法流程图;
图3所示为本发明第四实施例提供的生成及更新关联关系表的方法流程图;
图4所示为本发明第六实施例提供的生成及更新关联关系表的方法流程图;
图5所示为本发明第八实施例提供的关联关系查询装置组成示意图。
图6所示为本发明第九实施例提供的关联关系查询装置组成示意图。
图7所示为本发明第十实施例提供的关联关系查询装置组成示意图。
图8所示为本发明第十一实施例提供的关联关系查询单元的详细结构示意图示意图。
具体实施方式
为了使本领域技术人员能够清楚理解本发明的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的详细说明,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,为本发明第一实施例提供的关联关系查询方法流程图,该方法包括如下步骤:
步骤101:接收携带对象标识和方案标识的关联关系查询请求;
步骤102:从预置的关联关系表中查询与所述方案标识关联的关联关系表,如果有则获取所述方案标识关联的关联关系表。
所述预置关联关系表用于保存定义的模型对象之间依存的关联关系,并保持与定义的模型对象标识之间的一致性。
在本发明实施例中,可以采用手工和自动两种方式建立及更新关联关系表,并且,一个方案对应一个关联关系表,关联关系表中保存了最新的关联关系数据记录,即一个对象与其他相关对象的关联关系的数据记录。
为便于获取所述方案标识的关联关系表,在预先建立关联关系表的过程中,可以采用如下方法建立关联关系表标识:
第一、将方案标识直接设置为关联关系表标识;
第二、将方案标识按照预置的规则映射为关联关系表标识。
依此,可以为每一个方案建立一个关联关系表。
如果在预置关联关系表的过程中采用第一种方法,则从预置的多个关联关系表中获取所述方案标识的关联关系表具体为:从预置的多个关联关系表中获取表标识与所述方案标识相同的关联关系表;
如果在预置关联关系表的过程中采用第二种方法,则从预置的多个关联关系表中获取所述方案标识的关联关系表具体为:从预置的多个关联关系表中获取表标识符合预置映射规则的关联关系表。
步骤103:在所述获取到的关联关系表中查询所述对象标识对应的关联关系。
如果从关联关系表中没有查询到所述对象标识对应的关联关系,则应用现有技术方法,从定义模型的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
也就是说,对于某个对象的关联关系查询请求来说,如果关联关系在接收查询请求之前已提前预置完成,那么从预置的关联关系表中查询关联关系是有效的。
以上为本发明第一实施例提供的关联关系查询方法。本发明第一实施例提供的方法是从方案对应的一张关联关系表中直接查询对象的关联关系,克服了现有技术中对与对象关联的多表进行联合查询关联关系所表现出的查询速度缓慢,效率低的问题,实现了快速、高效的关联关系查询。
进一步地,如果每个对象的关联关系都是从关联关系表中查询,则需要为每个方案都生成一张关联关系表,而大量的关联关系表会占用较多的存储空间,而且也会降低查询效率。在实际应用中,往往仅关注一部分对象的关联关系,因此提供一部分关注对象的关联关系表就可以满足应用需要。
请参见图2,为本发明第二实施例提供的关联关系查询方法流程图,该方法包括:
步骤201:接收携带对象标识和方案标识的关联关系查询请求。
步骤202:判断请求查询的方案标识的关联关系预置标志是否被标记为有效,如果被标记有效,表明可以查询到与所述方案标识关联的关联关系表。如果被标记无效,转到步骤205。
在本发明实施例中,所述预置关联关系表用于保存定义的模型对象之间依存的关联关系,并保持与定义的模型对象标识之间的一致性。所述预置关联关系表的方法如下:
根据定义的数据模型及其为模型对象之间依存的关联关系所定义的方案,按应用需要为方案设置关联关系预置标记信息,用关联关系表模板给所述有关联关系预置标记的方案建立对应的关联关系表;所述的关联关系表模板是由绑定类和被绑定类构成,或者由绑定类、一至多个中间类和被绑定类构成。
在本发明实施例中,首先根据应用需要,为需要预置关联关系的方案,设置关联关系预置标记信息,比如,将关联关系预置标志置为1,表示关联关系预置标志被标记为有效,表明需要预置关联关系;将关联关系预置标志置为0,表示关联关系预置标志被标记为无效,表明不需要预置关联关系。然后识别关联关系预置标记有效的方案,自动建立方案的关联关系表,并且,一个方案对应一个关联关系表,每一个关联关系表可以由绑定类和被绑定类构成,或者由绑定类、一至多个中间类和被绑定类构成。例如表1所示的关联关系表模板结构描述的关联关系为:绑定类与被绑定类关联。表2所示的关联关系表模板结构描述的关联关系为:绑定类通过中间类与被绑定类关联。
表1
  绑定类   被绑定类
表2
  绑定类   中间类   被绑定类
这样,对于所有已经做了关联关系预置标记的方案,会自动建立如表1所示的包含绑定类与被绑定类的关联关系表,或者如表2所示的包含绑定类、中间类与被绑定类的关联关系表。
那么,从预置的关联关系表中查询与所述方案标识关联的关联关系表,就可以通过查询关联关系预置标志是否被标记为有效,如果被标记有效,表明可以查询到与所述方案标识关联的关联关系表,如果被标记无效,表明不能查询到与所述方案标识关联的关联关系表。
步骤203:从预置的关联关系表中获取与所述方案标识关联的关联关系表。
根据定义的数据模型及其为模型对象之间依存的关联关系所定义的方案只描述类之间的关联关系,并没有描述对象之间的关联关系。比如,方案只描述主机通过信号传输线与显示器相连,但方案并没有描述是哪一台主机通过哪一条信号传输线与哪一台显示器相连。因此,根据方案描述的类之间的关联关系和关联关系表模板生成的关联关系表是一张没有对象关联关系数据记录的空表。
步骤202中说明了用于给有关联关系预置标记的方案建立空白的关联关系表。
进一步地,预置关联关系表用于保存定义的模型对象之间依存的关联关系,并保持与定义的模型对象标识之间的一致性。预置关联关系表中的数据保持与定义的模型对象标识之间的一致性的方法是:
对于有关联关系预置标记的方案,按照关联关系表模板,将方案涉及的对象标识,从定义模型的数据表同步映射到所述方案的预置关联关系表中。
例如,某定义模型的方案A中有3个类,相互之间有关联关系,对象1、对象2和对象3分别是这3个类的对象,对象标识分别为a、b、c,如果给方案A设置了关联关系预置标记,则按照关联关系表模板定义的绑定类、中间类和被绑定类模式,将方案涉及的对象标识,从定义模型的数据表同步映射到所述方案的预置关联关系表A’中,自动生成表3所示的数据记录。
表3
  绑定类   中间类   被绑定类
  a(对象1的对象标识)   b(对象2的对象标识)   c(对象3的对象标识)
那么,可以查询到方案A设置了关联关系预置标记,并查询到方案A对应的关联关系表A’。
步骤204:从步骤203获取到的关联关系表中查询所述对象标识对应的关联关系。转步骤206。
例如,定义模型1的方案B,包括类1,类2、类3和类4,类1、类2、类3有关联关系,类1、类4有关联关系,类2、类3、类4有关联关系,对象1是类1的一个对象,对象2是类2的一个对象,对象3是类3的一个对象,对象4是类4的一个对象,假设对象标识与所述对象名相同,如对象1的标识就是对象1。那么如果给方案B设置了关联关系预置标记,则为方案B建立预置关联关系表B’,生成如表4的表结构和数据记录:
表4
  绑定类   中间类   被绑定类
  对象1   对象2   对象3
  对象1   对象4
  对象2   对象3   对象4
如果要从关联关系表B’中查找对象1对应的关联关系,从表4可知,可以查到对象1与对象2和对象3有关联关系,而且,对象1与对象4也有关联关系。
步骤205:查询关联关系预置标志,如果被标记无效,表明不能查询到与所述方案标识关联的关联关系表,则即时从定义模型的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
步骤206:返回查询结果。
以上本发明第二实施例提供了另一种关联关系查询方法,该方法应用标记来标识是否预置了关联关系表,实现将部分方案生成关联关系表的情况,实现了进一步提高查询速度,减少占用的存储空间。如果标记没有预置关联关系表,则即时从定义模型的数据表中查询所述方案标识中与所述对象标识相关联的关联关系,从而使得查询过程更为智能。
在实际应用中,对象的关联关系反映为随着对象的增删改操作而动态变化的,由此,关联关系表如果能够动态更新,则将进一步提高关联关系表的查询效率。
请参见本发明第三实施例,该方法包括:
步骤301:接收携带对象标识和方案标识的关联关系查询请求;
步骤302:判断请求查询的方案标识的关联关系预置标志是否被标记为有效,如果被标记有效,表明可以查询到与所述方案标识关联的关联关系表。如果被标记无效,转到步骤305。
预置关联关系表的方法参见实施例二的步骤202所述。
根据定义的数据模型及其为模型对象之间依存的关联关系所定义的方案,按应用需要为方案设置关联关系预置标记信息,用关联关系表模板给所述有关联关系预置标记的方案建立对应的关联关系表;所述的关联关系表模板是由绑定类和被绑定类构成,或者由绑定类、一至多个中间类和被绑定类构成。
步骤303:从预置的关联关系表中获取与所述方案标识关联的关联关系表。
预置关联关系表中的数据记录的方法可以进一步优化为:
根据定义的数据模型及其为模型对象之间依存的关联关系所定义的方案,获取所述定义方案的数据对象或数据对象属性发生变动的信息,包括变动数据对象的标识及其所属的方案标识以及对象变动类型,所述对象变动类型包括对象增加、对象删除或对象修改;
根据获得的对象变动信息,检查变动对象所属的方案是否有关联关系预置标记有效,如果有效,根据所述变动对象标识,通过读取定义模型的数据表对变动的对象计算其最新的关联关系,在计算完成后按照关联关系表模板将计算结果映射到所述方案的关联关系表,并给所述方案设置最新计算完成标记。
由于关联关系预置标记设置是可以更新的,随着定义模型的对象操作的动态性,不论是对象添加、删除还是修改,那么对于做了新的关联关系预置标记的方案,计算其有关对象的最新关联关系变化,更新的计算结果就被自动地反映到关联关系表中了。
步骤304:从步骤303获取到的关联关系表中查询所述对象标识对应的关联关系。转步骤306。
根据以上所述,从获取到的关联关系表中获取到的所述方案标识关联的关联关系表数据,将会准确地反映出关联关系表中的数据动态更新情况。
步骤305:查询关联关系预置标志,如果被标记无效,表明不能查询到与所述方案标识关联的关联关系表,则即时从定义模型的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
步骤306:返回查询结果。
进一步地,关于对变动的对象计算其最新的关联关系的计算方法的优化实现,预置或更新关联关系表中的数据记录的方法可以进一步优化为:
根据定义的数据模型及其为模型对象之间依存的关联关系所定义的方案,获取所述定义方案的数据对象或数据对象属性发生变动的信息,包括变动数据对象的标识及其所属的方案标识以及对象变动类型,所述对象变动类型包括对象增加、对象删除或对象修改。
根据获得的对象变动信息,检查变动对象所属的方案是否有关联关系预置标记,如果有,读取所述变动对象的数据记录,对变动的对象计算其最新的关联关系。
当变动对象的类型是对象增加时,计算所述增加对象的关联关系,计算完成后,按照关联关系表模板将新增关联关系添加到关联关系记录存储单元中,并给所述方案设置最新计算完成标记。
当变动对象的类型是对象删除时,计算所述删除对象的关联关系,计算完成后,按照关联关系表模板删除关联关系记录存储单元中的相关内容,并给所述方案设置最新计算完成标记。
当变动对象的类型是对象修改时,计算所述修改对象的关联关系,计算完成后,按照关联关系表模板修改关联关系记录存储单元中的相关内容,并给所述方案设置最新计算完成标记。
进一步地,在接收到关联关系查询请求时,可能会存在请求查询的关联关系正在进行计算,计算结果还没有更新到关联关系表的情况,此时,如果直接从关联关系表中查询关联关系,则会产生查询结果不准确的问题。
为进一步提高关联关系查询准确度,可以在前文已述实施例三、四中增加判断请求查询的关联关系是否完成计算的步骤,具体的方法如下:
从所述方案标识关联的关联关系表中查询所述对象标识对应的关联关系的方法,进一步包括,
根据方案标识,检查所述方案是否有关联关系预置标记有效,如果有效,继续检查所述方案是否完成了最新的关联关系计算,如果已完成最新的关联关系计算,则从预置的关联关系数据表中查询所述方案中与所述对象标识相关联的关联关系。
例如,对于本发明第二或第三实施例提供的方法,在步骤201或步骤301接收到携带对象标识和方案标识的关联关系查询请求后,在步骤202或步骤302可以先检查所述方案是否有关联关系预置标记有效,如果有效,则判断请求查询的所述方案的关联关系计算是否已完成,如果完成了关联关系计算,则可利用更新后的关联关系数据表表内容查询所述方案中与所述对象标识相关联的关联关系,如果关联关系没有完成最新计算,那么执行步骤205或步骤305将即时从定义模型的数据表中查询所述方案标识中与所述对象标识相关联的关联关系,例如多表联合查询关联关系的方法。
在实际应用中可以采用设置关联关系计算完成标记判断请求查询方案的关联关系是否完成最新计算,如下方法详细说明了具体的实现方式:
使用关系计算计数器来标记关联关系计算完成的情况,将一个方案的关系计算计数器的初始值设为零,每次对该方案中对象准备开始进行关联关系计算时将计数器加一,每次对该方案中对象完成关联关系计算时将计数器减一,当对该方案中对象的所有关联关系计算完成时关系计算计数器归零。判断所述方案标识对应的关联关系计算计数器是否为零,如果为零,则说明请求查询所述方案的关联关系完成最新计算,如果不是零,则说明请求查询所述方案的关联关系没有完成最新计算。
为更清楚的说明本发明实施例提供的关联关系查询方法,以下举例说明。
表5是记录显示器,主机和信号传输线之间关联关系的关联关系表,并且,表标识与对应的方案标识同为“129”。当用户想查询显示器1是通过哪条信号传输线连接哪一台主机时,则发送携带显示器1标识和方案标识(129)的关联关系查询请求至系统侧,系统侧在收到上述关联关系查询请求后,先在预置的关联关系表中查找表标识为“129”的关联关系表如表5,然后,在表5中查找显示器1标识对应的表项,至此,用户可得知显示器1通过信号传输线2与主机3相连。
表5
  绑定类   中间类   被绑定类
  显示器1   信号传输线2   主机3
  显示器2   信号传输线5   主机6
前文已述本发明实施例提供的关联关系表可以采用手工和自动两种方式生成及更新,以下结合附图对本发明第四实施例提供的自动生成及更新关联关系表的方法进行详细介绍。
请参见图3,为本发明第四实施例提供的生成及更新关联关系表的方法,该方法包括如下步骤:
步骤401:接收携带对象标识和方案标识的关联关系查询请求;
步骤402:判断请求查询的方案标识的关联关系预置标志是否被标记为有效,如果被标记有效,表明可以查询到与所述方案标识关联的关联关系表。如果被标记无效,转步骤406。
步骤403:判断请求查询的方案标识的关联关系计算是否完成,如果没有完成,转步骤406。
步骤404:从预置的关联关系表中获取与所述方案标识关联的关联关系表。
步骤405:从步骤404获取到的关联关系表中查询所述对象标识对应的关联关系。如果查到所述对象标识对应的关联关系,转407。
步骤406:即时从定义模型的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
步骤407:返回查询结果。
需要说明的是,本发明主要提出的关联关系查询方法基于预置的关联关系表机制,而且能够实现预置关联关系表的动态更新,为了更清楚地说明本发明的实现机理,下面用本发明第五实施例进一步说明预置关联关系表及其动态更新的方法。所述的预置关联关系表及其动态更新的方法可以独立于关联关系查询方法。
步骤501:根据定义的数据模型及其为模型对象之间依存的关联关系所定义的方案,按应用需要设置关联关系预置标记信息。
步骤502:用关联关系表模板给所述有关联关系预置标记的方案建立对应的关联关系表。所述的关联关系表模板是由绑定类和被绑定类构成,或者由绑定类、一至多个中间类和被绑定类构成。
步骤503:取一个有关联关系预置标记的方案,获取所述定义方案的对象或对象属性发生变动的信息,包括变动对象的标识、变动对象属性的标识、变动对象所属的方案标识以及对象变动类型,所述对象变动类型包括对象增加、对象删除或对象修改;
步骤504:当变动对象的类型是对象增加时,通过读取定义模型的数据表计算所述增加对象的关联关系,计算完成后,按照关联关系表模板将新增关联关系添加到关联关系记录存储单元中,并给所述方案设置最新计算完成标记,转步骤503;
当变动对象的类型是对象删除时,通过读取定义模型的数据表计算所述删除对象的关联关系,计算完成后,按照关联关系表模板删除关联关系记录存储单元中的相关内容,并给所述方案设置最新计算完成标记,转步骤603;
当变动对象的类型是对象修改时,通过读取定义模型的数据表计算所述修改对象及修改对象属性的关联关系,计算完成后,按照关联关系表模板修改关联关系记录存储单元中的相关内容,并给所述方案设置最新计算完成标记,转步骤503;
步骤503至步骤504用于完成变动对象的关联关系动态更新,还可以实现为:根据所述定义方案的对象或对象属性发生变动的信息,判断变动对象或变动对象的属性是否属于关联关系预置标记有效的方案所涉及的类或属性。如果是,根据所述变动对象标识或/和变动对象属性的标识,通过读取定义模型的数据表对变动的对象计算其最新的关联关系,在计算完成后按照关联关系表模板将计算结果映射到所述方案的关联关系表,并给所述方案设置最新计算完成标记;对于增加和删除对象,根据所述变动对象标识计算其最新的关联关系,对于修改对象,则根据所述变动对象标识及变动对象属性的标识,计算其最新的关联关系。
以上结合附图对本发明实施例提供的关联关系查询方法进行了详细介绍。以下结合附图4对本发明第六实施例提供的自动生成及更新关联关系表的方法再进行详细介绍。
步骤601:在方案确定后,判断该方案是否被标记关联关系预置有效,如果是,则进入步骤602,如果否,则判断下一个方案;
在实际应用中,如果所有方案都需要生成关联关系表,则步骤601为非必要步骤。
如果该方案被标记关联关系预置有效,则根据方案描述的类之间的关联关系及预置的关联关系表模板,生成该方案的预置关联关系表。
用户建立的方案只描述类之间的关联关系,并没有描述对象之间的关联关系。比如,方案只描述主机通过信号传输线与显示器相连,但方案并没有描述是哪一台主机通过哪一条信号传输线与哪一台显示器相连。因此,根据方案描述的类之间的关联关系和关联关系表模板生成的关联关系表是一张没有对象关联关系记录的空表。若进行了对象操作,比如,增加了对象,删除了对象,修改了对象属性,则需要对空白的关联关系表,或者,对已有记录的关联关系表进行计算,并将计算结果更新到关联关系表中。
步骤602:判断被操作的对象是否属于关联关系预置标记有效的方案所涉及的类,如果是,则进入步骤603,如果否,则判断下一个对象;
值得注意的是,如果所有对象的关联关系都属于关联关系预置标记有效的方案,则步骤602为非必要步骤;
步骤603:判断对象操作类型,如果对象操作类型是修改对象,则进入步骤604,如果对象操作类型是增加对象或者删除对象,则进入步骤605;
步骤604:判断被修改的对象属性是否属于涉及关联关系的属性,如果是,则进入步骤605,如果否,则判断下一个被修改属性的对象;
假设,方案描述的类之间的关联关系是:A.a=B.b1and B.b2=C.c,a,b1,b2和c字段记录的属性是涉及关联关系的属性。因此,可以采用如下方式判断被修改的对象属性是否属于涉及关联关系的属性:
判断被修改的对象属性是否为方案中描述的属性,如果是,则说明被修改的对象属性是涉及关联关系的属性,如果否,则说明被修改的对象属性不是涉及关联关系的属性。
进一步,在实际应用中,如果被修改的对象属性通常都是涉及关联关系的属性,则可不执行步骤603和604而直接执行步骤605,并不影响本发明实施例的实现。
步骤605:组装对象的关联关系计算任务,将该关联关系计算任务放入任务队列,并将该对象所属方案的关联关系计数器加1;
其中,组装在关联关系计算任务中的信息可以包括:对象标识,对象属性的标识,对象所属类标识,对象所属方案标识以及对象操作类型。但是,组装在关联关系计算任务中的信息可以按照关联关系计算需要进行选择,而不必在每个关联关系计算任务中组装全部上述信息。比如,增加一个标识为123的对象,对象所属方案标识为456,则组装一个对象标识为123,方案标识为456以及对象操作类型为增加的关联关系计算任务。再比如,修改一个对象标识为123,对象属性标识为456,对象所属方案标识为789,则组装一个对象标识为123,对象属性标识为456,对象所属方案标识为789以及对象操作类型为修改的关联关系计算任务。
步骤607:从任务队列中顺序取出关联关系计算任务;
步骤608:根据组装在所述关联关系计算任务中的对象操作类型,将所述关联关系计算任务委托给相应的关联关系计算线程;
步骤609:关联关系计算线程根据组装在关联关系计算任务中的信息,计算关联关系并更新相应的关联关系表,并将该对象所属的方案的关联关系计数器减1。
上述实施例中采用关联关系计数器作为关联关系计算完成的标记,当关联关系计数器的值归零时,表明关联关系计算完成,否则表明关联关系计算未完成。
在实际应用中,如果对象变动类型是增加对象,则将所述关联关系计算任务委托给用于计算增加关联关系的关联关系计算线程,若关联关系计算任务组装了对象标识和方案标识,则所述关联关系计算线程先根据组装在关联关系计算任务中的方案标识获取方案涉及的原始数据库表,然后,根据对象标识,在方案涉及的原始数据库表中查询对象的关联关系,最后,将查询到的关联关系添加到方案标识关联的关联关系表中。
如果对象变动类型是删除对象,则将所述关联关系计算任务委托给用于删除关联关系的关联关系计算线程,所述关联关系计算线程根据组装在关联关系计算任务中的方案标识,在预置的关联关系表中获取方案标识关联的关联关系表,然后,从所述关联关系表中删除组装在关联关系计算任务中的对象标识对应的关联关系。
如果对象变动类型是修改对象属性,则将所述关联关系计算任务委托给用于计算被修改关联关系的关联关系计算线程,所述关联关系计算线程先根据组装在关联关系计算任务中的方案标识,在预置的关联关系表中查找表标识与方案标识相同或与方案标识关联的关联关系表,并从所述关联关系表中删除组装在关联关系计算任务中的对象标识对应的关联关系,最后,所述关联关系计算线程根据组装在关联关系计算任务中的方案标识获取方案涉及的数据库表,然后,根据对象标识,在方案涉及的数据库表中查询对象的关联关系,并将查询到的关联关系添加到方案标识关联的关联关系表中。
以上为本发明第六实施例提供的生成及更新关联关系表的方法。在实际应用中,将对象变动类型不同的关联关系计算任务放入了同一个任务队列,可能会产生关联关系计算异常的问题,为避免该问题,提高关联关系计算的准确度,本发明第七实施例提供了一种更新关联关系表的方法,该方法与本发明第六实施例提供的更新关联关系表方法的区别在于,第七实施例中将一个任务队列分成了增加队列,删除队列和修改队列三个队列,并且:
在组装对象的关联关系计算任务后,或者,在从任务队列中顺序取出关联关系计算任务后,先根据组装在关联关系计算任务中的对象变动类型,将关联关系计算任务放入不同的队列,具体为:
如果对象变动类型是增加对象,则将所述关联关系计算任务放入增加队列;如果对象变动类型是删除对象,则将所述关联关系计算任务放入删除队列;如果对象变动类型是修改对象属性,由于修改对象属性后,需要先将该对象原有的关联关系从关联关系表中删除,然后,再将重新计算出的关联关系添加到关联关系表中,因此,将该对象的关联关系计算任务拆分为两个任务,一个任务将携带删除对象标识及所述的方案标识的关联关系计算任务放入删除队列,另一个任务将携带增加对象标识及所述的方案标识的关联关系计算任务放入修改队列。
当增加队列、删除队列或修改队列中有关联关系计算任务后,则顺序从上述三个队列中取出关联关系计算任务,并根据组装在关联关系计算任务中的对象变动类型,将关联关系计算任务委托给相应的关联关系计算线程。值得注意的是,将关联关系计算任务放入增加队列、删除队列或修改队列的过程可以和从增加队列、删除队列、修改队列中取出关联关系计算任务进行关联关系计算的过程同步进行。
在实际应用中,从增加队列、删除队列或修改队列取出关联关系计算任务进行关联关系计算的顺序会影响关联关系计算的准确度,本发明经过反复实验,提供了一种较优的从增加队列,删除队列及修改队列取出关联关系计算任务并进行关联关系计算的顺序,具体如下:
先从增加队列中顺序取出关联关系计算任务,进行关联关系计算,直到增加队列中没有关联关系计算任务,然后,从删除队列中顺序取出关联关系计算任务,进行关联关系计算,直到删除队列中没有关联关系计算任务,再从修改队列中顺序取出关联关系计算任务,进行关联关系计算,直到修改队列中没有关联关系计算任务,其中,从修改队列中取出的关联关系计算任务是委托给前文已述的用于计算增加关联关系的关联关系计算线程,然后,再返回增加队列重复上述流程。
另外,在关联关系计算过程中,可能会发生系统崩溃,或其他导致关联关系计算中断的情况,为保证所有关联关系计算任务都能完成,在将关联关系计算任务放入队列的同时,还可以进一步将关联关系计算任务记入数据库,后续,如果关联关系计算任务被完成,则在数据库中标记该任务被完成,或者,将该关联关系计算任务从数据库中删除,如果发生了导致关联关系计算中断的情况,则在系统重启后,进一步将数据库中记录的未被完成的关联关系计算任务放入队列,从而保证了所有关联关系计算任务都能被完成。
在实际应用中,存在着大量的保持有固定关联关系的数据,能够在一段时间内保持相对稳定的关联关系,例如省市之间的关联关系,那么,反复从多表联合查询相同的关联关系就浪费了不必要的查询时间,因此,本发明基于现有技术的关联关系查询装置,提出了一种改进的关联关系查询装置。
请参见图5,现有技术的关联关系查询装置,包括:
模型定义单元801,用于定义数据模型,包括类和方案的定义;
模型数据存储单元802,用于存储定义模型的数据,包括类、对象和方案的数据;
对象操作单元803,用于实现模型数据对象的增加、删除和修改;
关联关系查询单元8041,根据方案标识和对象标识,查询模型数据存储单元中所述方案和所述对象的数据以及与所述对象有关联关系的数据,找到所述方案标识中与所述对象标识相关联的关联关系。
本发明实施例八在现有装置基础上还进一步包括,
关联关系表预置单元805,给定义模型的定义方案建立预置关联关系表;
关联关系数据存储单元806,用于保存关联关系数据表。
所述改进的关联关系查询单元8042,根据接收携带对象标识和方案标识的关联关系查询请求,从关联关系数据存储单元的预置关联关系表中查询所述方案标识关联的关联关系表,并在所述获取到的关联关系表中查询与所述对象标识相关联的关联关系;还可以直接从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
所述装置能够实现从方案标识对应的一张关联关系表中直接查询对象的关联关系,克服了现有技术中对与对象关联的多表进行联合查询关联关系所表现出的查询速度缓慢,效率低的问题,实现了快速、高效的关联关系查询。
进一步地,如果每个对象的关联关系都是从关联关系表中查询,则需要为每个方案都生成一张关联关系表,而大量的关联关系表会占用较多的存储空间,而且也会降低查询效率。在实际应用中,往往仅关注一部分对象的关联关系,因此提供一部分关注对象的关联关系表就可以满足应用需要。
因此,本发明又提出进一步的优化装置,请参见本发明实施例九,结构示意图见图6,所述装置还进一步包括,
关联关系预置标记管理单元807,根据需要给定义模型的定义方案设置关联关系预置标记信息,据此为设置关联关系标记信息的方案添加或删除关联关系预置标记。
在实际应用中,可以给关注的方案添加关联关系预置标记。
所述的关联关系表预置单元805,对添加关联关系预置标记的方案,用关联关系表模板建立所述方案对应的预置关联关系表,所述的关联关系表模板是由绑定类和被绑定类构成,或者由绑定类、一至多个中间类和被绑定类构成。
所述的关联关系查询单元8043,根据接收携带对象标识和方案标识的关联关系查询请求,检查所述方案是否有关联关系预置标记有效,如果有效,则从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系,否则,即时从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
为了提高关联关系查询结果的准确度,在对对象进行增删改操作的同时,能够实现预置关联关系表与模型数据表的数据一致性更新,请参见图7,作为本发明第十实施例,上述关联关系查询装置还可以进一步包括:
对象变动信息处理单元808,获取模型数据存储单元数据表中的对象或对象属性发生变动的信息,包括变动对象的标识、变动对象属性的标识、变动对象所属的方案标识以及对象变动类型,所述对象变动类型包括对象增加、对象删除或对象修改;
关联关系计算单元809,根据对象变动信息处理单元获得的对象变动信息,检查变动对象所属的方案是否有关联关系预置标记有效,如果有效,根据所述变动对象标识,读取当前模型数据存储单元中的数据表,对变动的对象计算其最新的关联关系,在计算完成后根据计算结果更新关联关系记录存储单元中变动对象所属方案的关联关系表,并给所述方案设置最新计算完成标记。
所述的关联关系查询单元8044,根据接收携带对象标识和方案标识的关联关系查询请求,检查所述方案是否有关联关系预置标记有效,如果有效,继续检查所述方案是否设置有最新计算完成标记有效,如果有效,则从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系,否则,即时从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
另外,所述的关联关系查询单元也可以是这样的实施方案:检查所述方案是否设置有最新计算完成标记有效,如果有效,根据接收携带对象标识和方案标识的关联关系查询请求,检查所述方案是否有关联关系预置标记有效,如果有效,则从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系,否则,即时从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
请参见图8,作为本发明的第十一实施例,所述关联关系查询装置中的关联关系查询单元的详细结构示意图,包括,
查询请求接收单元,用于接收携带对象标识和方案标识的关联关系查询请求;
关联关系表获取单元,用于从预置的关联关系表中获取与所述方案标识关联的关联关系表;
关联关系查询单元,用于在所述获取到的关联关系表中查询所述对象标识对应的关联关系。
为了提高关联关系查询结果的准确度,上述关联关系计算装置还可以进一步包括:
关联关系计算结果判断单元,用于判断请求查询的关联关系是否完成计算,如果关联关系完成计算,则触发所述关联关系表获取单元。
为了节省存储空间,上述关联关系计算装置还可以进一步包括:
关联关系预置判断单元,用于判断请求查询的方案标识的关联关系预置标记是否有效,如果有效,则触发所述关联关系表获取单元,或者,触发所述关联关系计算结果判断单元。
以上为本发明实施例提供的关联关系查询装置。由于对象随时可能进行增删改操作,此时,需要对对象的关联关系进行重新计算,从而将新的计算结果映射更新到关联关系表,为了在关联关系查询装置中实现关联关系表的动态更新功能,上述关联关系查询装置的关联关系计算单元可以进一步分解为如下单元:
关系计算任务组装单元,用于在增加对象、删除对象或者修改对象属性后,组装所述对象的关联关系计算任务;
关系计算任务添加单元,用于将所述关联关系计算任务放入任务队列;
关系计算任务委托单元,用于从任务队列中顺序取出关联关系计算任务,根据组装在关联关系计算任务中的对象变动类型,将所述关联关系计算任务委托给相应的关联关系计算线程。
进一步,由于将所有关联关系计算任务放入同一个任务队列,可能会导致产生关联关系计算异常的情况,为避免上述情况,可以将所述任务队列分为:增加队列、删除队列和修改队列,此时,所述关系计算任务添加单元具体包括:
增加关系计算任务添加单元,用于当组装在关联关系计算任务中的对象变动类型是增加对象时,将所述关联关系计算任务放入增加队列;
删除关系计算任务添加单元,用于当组装在关联关系计算任务中的对象变动类型是删除对象时,将所述关联关系计算任务放入删除队列;
修改关系计算任务添加单元,用于当组装在关联关系计算任务中的对象变动类型是修改对象属性时,将所述关联关系计算任务拆分为两个任务,一个任务放入删除队列,另一个任务放入增加队列。
并且,所述关系计算任务委托单元具体包括:增加关系计算任务委托单元,删除关系计算任务单元,修改关系计算任务委托单元;
所述增加关系计算任务委托单元,用于从所述增加队列中顺序取出关联关系计算任务,并将所述任务委托给用于计算增加关联关系的关联关系计算线程,直到所述增加队列中没有关联关系计算任务,则触发所述删除关系计算任务委托单元;
所述删除关系计算任务委托单元,用于从所述删除队列中顺序取出关联关系计算任务,并将所述任务委托给用于计算删除关联关系的关联关系计算线程,直到删除队列中没有关联关系计算任务,则触发所述修改关系计算任务委托单元;
所述修改关系计算任务委托单元,用于从所述修改队列中顺序取出关联关系计算任务,并将所述任务委托给用于计算增加关联关系的关联关系计算线程,直到修改队列中没有关联关系计算任务,再触发所述增加关系计算任务委托单元。
以上对本发明所提供的一种关联关系查询方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (18)

1.一种关联关系的查询方法,包括步骤:
接收携带对象标识和方案标识的关联关系查询请求;
从预置的关联关系表中查询与所述方案标识关联的关联关系表,如果查到则获取所述方案标识关联的关联关系表;
在所述获取到的关联关系表中查询所述对象标识对应的关联关系;
所述预置关联关系表用于保存定义的模型对象之间依存的关联关系,并保持与定义的模型对象标识之间的一致性;
所述预置关联关系表的预置方法是:用关联关系表模板给所述方案建立对应的预置关联关系表,所述的关联关系表模板是由绑定类和被绑定类构成,或者由绑定类、一至多个中间类和被绑定类构成;按照关联关系表模板,将方案涉及的对象标识,从定义模型的数据表同步映射到所述方案的预置关联关系表中。
2.如权利要求1所述的关联关系查询方法,其特征在于,所述预置关联关系表的预置方法,进一步包括:
根据定义的数据模型及其为模型对象之间依存的关联关系所定义的方案,按需要设置关联关系预置标记信息,用关联关系表模板给所述有关联关系预置标记的方案建立对应的预置关联关系表;
对于有关联关系预置标记的方案,按照关联关系表模板,将方案涉及的对象标识,从定义模型的数据表同步映射到所述方案的预置关联关系表中。
3.如权利要求2所述的关联关系查询方法,其特征在于,所述将方案涉及的对象标识,从定义模型的数据表同步映射到所述方案的关联关系表的方法,进一步还包括:
获取所述定义方案的对象或对象属性发生变动的信息,包括变动对象的标识、变动对象属性的标识、变动对象所属的方案标识以及对象变动类型,所述对象变动类型包括对象增加、对象删除或对象属性的修改;
根据获得的对象变动信息,检查变动对象所属的方案是否有关联关系预置标记有效,如果有效,根据所述变动对象标识,通过读取定义模型的数据表对变动的对象计算其最新的关联关系,在计算完成后按照关联关系表模板 将计算结果映射到所述方案的关联关系表,并给所述方案设置最新计算完成标记。
4.如权利要求3所述的关联关系查询方法,其特征在于,所述通过读取定义模型的数据表对变动的对象进行最新关联关系的计算,在计算完成后按照关联关系表模板将计算结果映射到所述方案的关联关系表,进一步包括,
组装所述变动对象的关联关系计算任务,并将携带对象变动信息的关联关系计算任务放入任务队列;
从任务队列中顺序取出关联关系计算任务;
根据组装在关联关系计算任务中的对象变动类型,将所述关联关系计算任务委托给相应的关联关系计算线程进行关联关系计算,在计算完成后按照关联关系表模板将计算结果更新到所述方案的关联关系表。
5.如权利要求4所述的方法,其特征在于,所述任务队列包括:增加队列、删除队列和修改队列,则所述将携带对象变动信息的关联关系计算任务放入任务队列具体包括:
若组装在关联关系计算任务中的对象变动类型是增加对象,则将携带变动对象标识及所属的方案标识的关联关系计算任务放入增加队列;
若组装在关联关系计算任务中的对象变动类型是删除对象,则将携带变动对象标识及所属的方案标识的关联关系计算任务放入删除队列;
若组装在关联关系计算任务中的对象变动类型是修改对象属性,则将所述携带变动对象标识、对象属性标识及所属的方案标识的关联关系计算任务拆分为两个任务,一个任务将携带变动对象标识及所述的方案标识的关联关系计算任务放入删除队列,另一个任务将携带变动对象标识及所述的方案标识的关联关系计算任务放入修改队列。
6.如权利要求5所述的方法,其特征在于,所述从任务队列中顺序取出关联关系计算任务,并委托给相应关联关系计算线程具体包括:
从增加队列中顺序取出关联关系计算任务,并将所述关联关系计算任务委托给用于计算增加关联关系的关联关系计算线程,直到增加队列中没有关联关系计算任务; 
从删除队列中顺序取出关联关系计算任务,并将所述关联关系计算任务委托给用于计算删除关联关系的关联关系计算线程,直到删除队列中没有关联关系计算任务;
从修改队列中顺序取出关联关系计算任务,将所述关联关系计算任务委托给用于计算增加关联关系的关联关系计算线程,直到修改队列中没有关联关系计算任务。
7.如权利要求6所述的方法,其特征在于,所述用于计算增加关联关系的关联关系计算线程进行关联关系计算具体包括:
关联关系计算线程根据组装在关联关系计算任务中的方案标识,读取方案涉及的定义模型数据库表,并根据组装在关联关系计算任务中的对象标识,在所述方案涉及的数据库表中查询对象的关联关系,并将查询到的关联关系添加到所述方案标识关联的关联关系表中。
8.如权利要求6所述的方法,其特征在于,所述用于计算删除关联关系的关联关系计算线程进行关联关系计算具体包括:
关联关系计算线程根据组装在关联关系计算任务中的方案标识,在预置的关联关系表中获取与所述方案标识关联的关联关系表,并从所述获取到的关联关系表中删除组装在所述关联关系计算任务中的对象标识对应的关联关系。
9.如权利要求1至4中任意一项所述的关联关系查询方法,其特征在于,检查所述方案是否完成了最新关联关系计算,如果已完成最新关联关系计算,则从关联关系数据表中查询所述方案中与所述对象标识相关联的关联关系。
10.如权利要求2至4中任意一项所述的关联关系查询方法,其特征在于,从预置的关联关系表中查询与所述方案标识关联的关联关系表的方法,进一步包括:
根据方案标识,检查所述方案是否有关联关系预置标记有效,如果有效,表明能够查到与所述方案标识关联的关联关系表,否则,不能查到与所述方案标识关联的关联关系表。
11.如权利要求3至4中任意一项所述的关联关系查询方法,其特征在于, 从所述方案标识关联的关联关系表中查询所述对象标识对应的关联关系的方法,进一步包括:
根据方案标识,检查所述方案是否有关联关系预置标记有效,如果有效,继续检查所述方案是否完成了最新关联关系计算,如果已完成最新关联关系计算,则从关联关系数据表中查询所述方案中与所述对象标识相关联的关联关系。
12.一种关联关系的查询装置,包括模型定义单元,模型数据存储单元,对象操作单元和关联关系查询单元,其中,
模型定义单元,用于定义数据模型,包括类和方案的定义;
模型数据存储单元,用于存储定义模型的数据,包括类、对象和方案的数据;
对象操作单元,用于实现模型数据对象的增加、删除和修改;
关联关系查询单元,根据方案标识和对象标识,查询模型数据存储单元中所述方案和所述对象的数据以及与所述对象有关联关系的数据,找到所述方案标识中与所述对象标识相关联的关联关系;
其特征在于,还进一步包括,
关联关系表预置单元,给定义模型的定义方案建立预置关联关系表;所述预置关联关系表的预置方法是:用关联关系表模板给所述方案建立对应的预置关联关系表,所述的关联关系表模板是由绑定类和被绑定类构成,或者由绑定类、一至多个中间类和被绑定类构成;按照关联关系表模板,将方案涉及的对象标识,从定义模型的数据表同步映射到所述方案的预置关联关系表中;
关联关系数据存储单元,用于保存关联关系数据表;
所述的关联关系查询单元,根据接收携带对象标识和方案标识的关联关系查询请求,从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系;还可以直接从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
13.如权利要求12所述的关联关系查询装置,其特征在于,还进一步包括, 
关联关系预置标记管理单元,根据需要给定义模型的定义方案设置关联关系预置标记信息,据此为设置关联关系标记信息的方案添加或删除关联关系预置标记;
所述的关联关系表预置单元,对添加关联关系预置标记的方案,用关联关系表模板建立所述方案对应的预置关联关系表;
所述的关联关系查询单元,根据接收携带对象标识和方案标识的关联关系查询请求,检查所述方案是否有关联关系预置标记有效,如果有效,则从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系;还可以直接从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
14.如权利要求13所述的关联关系查询装置,其特征在于,还进一步包括,
对象变动信息处理单元,获取模型数据存储单元数据表中的对象或对象属性发生变动的信息,包括变动对象的标识、变动对象属性的标识、变动对象所属的方案标识以及对象变动类型,所述对象变动类型包括对象增加、对象删除或对象修改;
关联关系计算单元,根据对象变动信息处理单元获得的对象变动信息,检查变动对象所属的方案是否有关联关系预置标记有效,如果有效,根据所述变动对象标识,读取当前模型数据存储单元中的数据表,对变动的对象计算其最新的关联关系,在计算完成后根据计算结果更新关联关系记录存储单元中变动对象所属方案的关联关系表,并给所述方案设置最新计算完成标记。
所述的关联关系查询单元,根据接收携带对象标识和方案标识的关联关系查询请求,检查所述方案是否有关联关系预置标记有效,如果有效,继续检查所述方案是否设置有最新计算完成标记有效,如果有效,则从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系;还可以直接从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
15.如权利要求14所述的关联关系查询装置,其特征在于,
所述的关联关系查询单元,检查所述方案是否设置有最新计算完成标记 有效,如果有效,根据接收携带对象标识和方案标识的关联关系查询请求,检查所述方案是否有关联关系预置标记有效,如果有效,则从关联关系数据存储单元的关联关系表中查询所述方案中与所述对象标识相关联的关联关系;还可以直接从模型数据存储单元的数据表中查询所述方案标识中与所述对象标识相关联的关联关系。
16.如权利要求14或15所述的关联关系查询装置,其特征在于,所述的关联关系计算单元进一步包括,
关系计算任务组装单元,用于在收到对象变动信息处理单元的对象变动通知时,组装所述变动对象的关联关系计算任务,调用关系计算任务添加单元;
关系计算任务添加单元,用于将携带对象变动信息的关联关系计算任务放入任务队列;
关系计算任务委托单元,用于从任务队列中顺序取出关联关系计算任务,根据组装在关联关系计算任务中的对象变动类型,将所述关联关系计算任务委托给相应的关联关系计算线程。
17.如权利要求16所述的装置,其特征在于,所述任务队列包括:增加队列,删除队列和修改队列,则所述关系计算任务添加单元具体包括:
增加关系计算任务添加单元,用于当组装在关联关系计算任务中的对象变动类型是增加对象时,则将携带变动对象标识及所属的方案标识的关联关系计算任务放入增加队列;
删除关系计算任务添加单元,用于当组装在关联关系计算任务中的对象变动类型是删除对象时,将携带变动对象标识及所属的方案标识的关联关系计算任务放入删除队列;
修改关系计算任务添加单元,用于当组装在关联关系计算任务中的对象变动类型是修改对象属性时,将所述关联关系计算任务拆分为两个任务,一个任务将携带变动对象标识及所述的方案标识的关联关系计算任务放入删除队列,另一个任务将携带变动对象标识及所述的方案标识的关联关系计算任务放入修改队列。 
18.如权利要求17所述的装置,其特征在于,所述关系计算任务委托单元具体包括:增加关系计算任务委托单元,删除关系计算任务单元,修改关系计算任务委托单元;
所述增加关系计算任务委托单元,用于从所述增加队列中顺序取出关联关系计算任务,并将所述任务委托给用于计算增加关联关系的关联关系计算线程,直到所述增加队列中没有关联关系计算任务,则触发所述删除关系计算任务委托单元;
所述删除关系计算任务委托单元,用于从所述删除队列中顺序取出关联关系计算任务,并将所述任务委托给用于计算删除关联关系的关联关系计算线程,直到删除队列中没有关联关系计算任务,则触发所述修改关系计算任务委托单元;
所述修改关系计算任务委托单元,用于从所述修改队列中顺序取出关联关系计算任务,并将所述任务委托给用于计算增加关联关系的关联关系计算线程,直到修改队列中没有关联关系计算任务,再触发所述增加关系计算任务委托单元。 
CN2008102466481A 2008-12-31 2008-12-31 一种关联关系的查询方法及装置 Active CN101770479B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102466481A CN101770479B (zh) 2008-12-31 2008-12-31 一种关联关系的查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102466481A CN101770479B (zh) 2008-12-31 2008-12-31 一种关联关系的查询方法及装置

Publications (2)

Publication Number Publication Date
CN101770479A CN101770479A (zh) 2010-07-07
CN101770479B true CN101770479B (zh) 2012-06-13

Family

ID=42503344

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102466481A Active CN101770479B (zh) 2008-12-31 2008-12-31 一种关联关系的查询方法及装置

Country Status (1)

Country Link
CN (1) CN101770479B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193982B (zh) * 2011-03-25 2012-12-19 北京世纪互联宽带数据中心有限公司 图形数据库联机事务中查询数据的控制方法
CN102208062A (zh) * 2011-06-03 2011-10-05 用友软件股份有限公司 数据对象替代装置和数据对象替代方法
CN102262675B (zh) * 2011-08-12 2013-01-16 北京握奇数据系统有限公司 数据库查询方法及智能卡
CN103699645A (zh) * 2013-12-26 2014-04-02 中国人民银行征信中心 企业关联关系识别系统及其识别方法
CN105589864A (zh) * 2014-10-22 2016-05-18 中兴通讯股份有限公司 数据查询方法及装置
CN104731969A (zh) * 2015-04-10 2015-06-24 北京大学深圳研究生院 分布式环境下海量数据连接聚集查询方法、装置和系统
CN105099752A (zh) * 2015-05-22 2015-11-25 杭州华三通信技术有限公司 一种关联告警数据的推荐方法和装置
CN106649375B (zh) * 2015-10-31 2020-08-04 阿里巴巴集团控股有限公司 一种关系数据处理方法及设备
CN105447122B (zh) * 2015-11-16 2018-09-21 中国人民解放军理工大学 一种基于多表关联可自主创建档案系统的实现方法
CN106933918A (zh) * 2015-12-31 2017-07-07 北京国双科技有限公司 数据表的查询方法和装置
CN107145492B (zh) * 2016-03-01 2022-03-25 中兴通讯股份有限公司 资源钻取方法及装置
CN105787112A (zh) * 2016-03-24 2016-07-20 浪潮通信信息系统有限公司 一种数据呈现方法和装置
CN107967275B (zh) * 2016-10-19 2020-08-11 北京国双科技有限公司 关系型数据库中的数据处理方法及装置
CN107391101B (zh) * 2017-04-21 2021-03-23 创新先进技术有限公司 一种信息处理方法及装置
CN107135284B (zh) * 2017-05-05 2020-08-28 携程旅游信息技术(上海)有限公司 企业系统内终端设备的查询方法及系统
CN107145574A (zh) * 2017-05-05 2017-09-08 恒生电子股份有限公司 数据库数据处理方法、装置及存储介质和电子设备
CN107341238B (zh) * 2017-07-04 2020-12-22 北京京东尚科信息技术有限公司 数据处理方法及系统
CN108197182A (zh) * 2017-12-25 2018-06-22 百味云科技股份有限公司 一种数据图谱分析系统以及方法
CN109361728B (zh) * 2018-08-30 2021-01-29 中国科学院上海微系统与信息技术研究所 一种基于多源传感数据关联度的分级事件报告系统及方法
CN109389303B (zh) * 2018-09-28 2021-06-18 企查查科技有限公司 企业关系的查询方法、装置、计算机设备及存储介质
CN111752956B (zh) * 2019-03-26 2023-12-08 华为技术有限公司 实体的关联变更方法及装置、电子设备
CN110069539B (zh) * 2019-05-05 2021-08-31 上海缤游网络科技有限公司 一种数据关联方法及系统
CN110619002A (zh) * 2019-09-12 2019-12-27 北京百度网讯科技有限公司 数据处理方法、装置及存储介质
CN110765610B (zh) * 2019-10-21 2023-11-24 中广核工程有限公司 Pdm集成方法、装置、计算机设备及存储介质
CN111581187B (zh) * 2020-05-14 2023-06-30 海南电网有限责任公司信息通信分公司 智慧园区的数据管理方法、装置、计算机设备和存储介质
CN111680038B (zh) * 2020-05-18 2021-08-31 江西师范大学 适用于变更的安全多维数据对象集的查询方法及存储介质
CN112817994B (zh) * 2021-02-02 2024-01-30 中国工商银行股份有限公司 关联关系资产管理装置、系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1482430A2 (en) * 2003-05-27 2004-12-01 Cognos Incorporated System and method of transforming queries based upon e/r schema into multi-dimensional expression queries
CN100361121C (zh) * 2003-07-11 2008-01-09 北京直真节点技术开发有限公司 一种通用对象建模方法及通用对象管理系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1482430A2 (en) * 2003-05-27 2004-12-01 Cognos Incorporated System and method of transforming queries based upon e/r schema into multi-dimensional expression queries
CN100361121C (zh) * 2003-07-11 2008-01-09 北京直真节点技术开发有限公司 一种通用对象建模方法及通用对象管理系统

Also Published As

Publication number Publication date
CN101770479A (zh) 2010-07-07

Similar Documents

Publication Publication Date Title
CN101770479B (zh) 一种关联关系的查询方法及装置
CN108874971B (zh) 一种应用于海量标签化实体数据存储的工具和方法
CN102426582B (zh) 数据操作管理装置和数据操作管理方法
CN104090889B (zh) 数据处理方法及系统
CN105740411B (zh) 一种基于SOA和WebService的数据迁移方法
CN102254029B (zh) 一种基于视图的数据访问系统及其方法
CN108829746B (zh) 一种基于内存数据库的主数据管理系统及装置
CN103605662A (zh) 一种分布式计算框架参数优化方法、装置及系统
CN102254021A (zh) 基于虚拟机管理系统的数据库构建方法
CN104699742A (zh) 使能扩展大型数据集的极端可视化
CN104536904A (zh) 一种数据管理的方法、设备与系统
CN104881490A (zh) 一种web表单数据存取方法和系统
CN101739452A (zh) 一种数据交换接口及其实现方法
CN104317964A (zh) 一种基于iBatis的对象关系映射方法及系统
EP1217547A2 (en) Object integrated management system
CN102375827A (zh) 一种对版本化的电网模型数据库进行快速加载的方法
US20230147594A1 (en) Method for integratedly updating map data, device and storage medium
CN102158533A (zh) 基于QoS的分布式web服务选择方法
CN102999610A (zh) 数据访问系统和数据访问方法
CN103107919A (zh) 一种网络资源建模方法和系统
CN104636265A (zh) 一种cimxml文档的高效内存模型组织的访问方法
CN114185941A (zh) 报表数据查询的方法、装置、电子设备和存储介质
CN105930354A (zh) 存储模型转换方法和装置
CN111008198B (zh) 业务数据获取方法、装置、存储介质、电子设备
CN109446260B (zh) 一种海量数据点实时数据的分布式管理方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: YIYANG XINTONG CO., LTD.

Free format text: FORMER OWNER: BEIJING BRIGHT OCEANS INTER-TELECOM TECHNOLOGY CO., LTD.

Effective date: 20120331

Free format text: FORMER OWNER: YIYANG XINTONG CO., LTD.

Effective date: 20120331

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100093 HAIDIAN, BEIJING TO: 150090 HARBIN, HEILONGJIANG PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20120331

Address after: 150090 Heilongjiang, Nangang District, Songshan Road, high tech Development Zone, building No. 1, building No.

Applicant after: Yiyang Xintong Co., Ltd.

Address before: 100093, Beijing, Haidian District, apricot Road, No. 99, block B

Applicant before: Beijing BOCO Inter-Telecom Technology Co., Ltd.

Co-applicant before: Yiyang Xintong Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant