版本链接数据的动态查询系统和方法技术方案

技术编号:7287198 阅读:155 留言:0更新日期:2012-04-21 20:55
本发明专利技术提供了一种版本链接数据的动态查询系统,包括:模型创建单元,建立链接模型;实例生成单元,利用链接模型生成链接实例;查询语句生成单元,在对链接实例中的目标对象进行查询时,根据目标对象的版本信息和/或版次信息,以及预设的版本信息与版次信息的对应关系,生成对应的SQL查询语句;执行单元,执行SQL查询语句,以获取目标对象。相应地,本发明专利技术还提出了一种版本链接数据的动态查询方法。通过本发明专利技术的技术方案,可以在链接两端的对象数据发生版本机制上的变化时,不会对已有的链接关系造成影响,解决了链接查询时的复杂程度,且具有广泛的适用性。

【技术实现步骤摘要】

本专利技术涉及数据查询
,具体而言,涉及一种。
技术介绍
本专利技术是针对包含版本特性的数据模型,处理类型间数据实例关系相当复杂,首先我们来看带有版本特性的类型,目前国际通用的版本机制是二级版本机制,即无版本情况;一级版本情况;二级版本情况;版本实例通常由三种基础单元组成主单元;版本单元;版次单元;版本实例和基础单元之间的关系如下无版本只有主单元,没有版本单元和版次单元;一级版本有主单元和版本单元;二级版本有主单元、版本单元、版次单元;通过系统抽象为类型,包含下列类型无版本类型;一级版本类型;二级版本类型;根据上述的描述,举例如下在现实生活中,事物之间是存在或多或少的联系,而且事物间的联系是有方向性的,例如北京和上海两站的某趟列车,通常从北京出发,到达上海是一个车次A,从上海到北京的车次为B。对于A车次来说,北京是始发站,上海是终点站;对于B车次来说,上海是始发站,北京是终点站;通过上述的例子,我们很容易抽象出如下类型和特征属性链接类型(Iinktype),特征属性from端(相当于“源对象”)和特征属性to端 (相当于“目标对象”)。通过链接类型来处理不同的版本类型,将出现如表1所示的情况From 端To端情况一无版本类型无版本类型无版本类型一级版本类型无版本类型二级版本类型情况二一级版本类型无版本类型一级版本类型一级版本类型一级版本类型二级版本类型情况三二级版本类型无版本类型二级版本类型一级版本类型二级版本类型二级版本类型表 1链接类型也是一种数据类型,它和数据库中的表是一一对应的,链接类型属性对应到数据库表中的字段,特别是from和to两个特性字段。当我们定义好了链接类型,链接类型对应的数据库表也就生成了,随着时间的推移,数据库表中记录了很多的链接实例,但问题也会随之出现。版本类型和链接类型之间存在如下问题1、版本类型的变化对链接类型的影响;2、如何满足获取链接实例的不同变化;3、如何解决获取链接实例的性能问题;4、如何存储链接实例的数据;5、如何修改链接实例的数据;6、如何删除链接实例的数据;7、如何获取链接实例的数据。首先,我们来看版本类型的变化对链接类型的影响的问题,当我们在经过一段时间运行系统后,想将链接上的某种版本类型改为另一种版本类型,例如将from端的类型A 从无版本升级为一级版本,我们发现原有的链接数据表中记录的是无版本主键(Pk),新增记录会变为一级版本的主键,我们很难区分升级前后的from端主键信息。其次,获取链接实例的情况较多,可分如下情况当to端为一级版本类型的数据实例时,使用者想查询如下结果to端的所有版本;to端的最新版本;to端的已知版本;当to端为二级版本类型的数据实例时,使用者想查询如下结果to端的最新版本和最新版次;to端的已知版本和最新版次;to端的已知版本和已知版次;当from端和to端指向同一版本类型,使用者想查询如下结果递归的获取所有的类型实例;逐层的获取类型实例;最后,链接类型对应的数据表的from端和to端指向具体类型的数据实例,如果链接类型from端和to端都指向同一版本类型,那么链接的获取将是递归的,而递归获取数据存在性能问题。因此,本专利技术提供了一种,可以在链接两端的对象数据发生版本机制上的变化时,不会对已有的链接关系造成影响,解决了链接查询时的复杂程度,且具有广泛的适用性。
技术实现思路
本专利技术正是基于上述问题,提出了一种,可以在链接两端的对象数据发生版本机制上的变化时,不会对已有的链接关系造成影响,解决了链接查询时的复杂程度,且具有广泛的适用性。有鉴于此,本专利技术提出了一种版本链接数据的动态查询系统,包括模型创建单元,建立链接模型,所述链接模型中包括源对象模型和目标对象模型,且所述源对象模型和所述目标对象模型均包括主体标识、版本标识和版次标识;实例生成单元,利用所述模型创建单元建立的所述链接模型生成链接实例;查询语句生成单元,在对链接实例中的目标对象进行查询时,根据所述目标对象的版本信息和/或版次信息,以及预设的版本信息与版次信息的对应关系,生成对应的SQL查询语句;执行单元,执行所述查询语句生成单元生成的所述SQL查询语句,以获取所述目标对象。在该技术方案中,通过建立一个数据对象进行链接的模型,将进行关联的源数据端和目标数据端分别建立一个模型,比如对于目标数据端,建立的模型中包括主体标识、 版本标识和版次标识,而对于一个数据对象,从其数据版本方面考虑,当其为二级版本数据时,包括主体、版本信息和版次信息,则可以分别导入之间建立的目标数据端中,而若该数据对象为一级版本数据时,由于不存在版次信息,则对应的版次标识为“空”即可,而若该数据对象为无版本数据时,由于不存在版本信息和版次信息,则对应的版本标识和版次标识均为“空”即可。因此,当一个无版本数据升级为一级或二级版本数据,或一级版本数据升级为二级版本数据等情况下,就不用重新建立新的数据链接,而是直接在原有的链接实例上进行信息的替换即可,降低了数据更新对链接的影响。在上述技术方案中,优选地,所述实例生成单元具体包括数据获取子单元,获取源数据对象的数据主体、数据版本和数据版次,以及获取目标数据对象的数据主体、数据版本和数据版次;数据导入子单元,将所述数据获取子单元获取的数据分别依次导入所述源对象模型或所述目标对象模型中的主体标识、版本标识和版次标识。在该技术方案中,将源数据对象和目标数据对象分别进行数据导入、形成链接实例。在上述技术方案中,优选地,还包括编辑单元,对所述源数据对象或所述目标数据对象的版本特性进行编辑。在上述技术方案中,优选地,所述实例生成单元还用于将编辑后的源数据对象或目标数据对象中的数据生成新的链接实例。在该技术方案中,在经过数据的版本机制的更新后,可以将更新后的数据对象与所链接的数据对象重新生成新的链接实例。在上述技术方案中,优选地,还包括数据替换单元,利用编辑后的源数据对象或目标数据对象中的数据替换所述链接实例中对应的数据。在该技术方案中,对于进行了版本机制的更新后的数据对象,可以利用更新后的数据对象的主体、版本信息、版次信息等分别替换原来在主体标识、版本标识、版次标识等中的数据信息,从而不必重新生成新的数据链接。根据本专利技术的又一方面,还提出了一种版本链接数据的动态查询方法,包括步骤 202,建立链接模型,所述链接模型中包括源对象模型和目标对象模型,且所述源对象模型和所述目标对象模型均包括主体标识、版本标识和版次标识;步骤204,利用所述链接模型生成链接实例;步骤206,在对链接实例中的目标对象进行查询时,根据所述目标对象的版本信息和/或版次信息,以及预设的版本信息与版次信息的对应关系,生成对应的SQL查询语句;步骤208,执行所述SQL查询语句,以获取所述目标对象。在该技术方案中,通过建立一个数据对象进行链接的模型,将进行关联的源数据端和目标数据端分别建立一个模型,比如对于目标数据端,建立的模型中包括主体标识、 版本标识和版次标识,而对于一个数据对象,从其数据版本方面考虑,当其为二级版本数据时,包括主体、版本信息和版次信息,则可以分别导入之间建立的目标数据端中,而若该数据对象为一级版本数据时,由于不存在版次信息,则对应的版次标识为“空”即可,而若该数据对象为无版本数本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王玉林
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:

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

1
相关领域技术