用于信息系统建模和数据访问的实体-属性框架的系统的制作方法

文档序号:14444390阅读:200来源:国知局
本发明属于信息
技术领域
:,特别是提供了一种用于信息系统建模和数据访问的实体-属性框架的系统,在本系统中提出了通过一种实体信息和属性信息组合框架建立统一描述业务模型的信息结构和处理业务模型生命周期的方法。
背景技术
::信息系统是对信息进行采集、处理、存储、管理、检索和传输的系统,信息系统常见的建模方法有结构化方法、面向对象方法、原型法、基于流程网络建模方法、面向agent方法等。其中面向对象方法强调针对问题域中客观存在的事物设定分析模型中的对象,用封装在对象中的属性和行为分别描述事物的静态和动态的特征、行为;用类描述具有相同属性和行为的对象群;用对象的结构描述客观事物的分类和特征;用消息连接、实例连接表示事物之间的动态和静态联系。现在一种非常流行的面向对象方法为统一建模语言(unifiedmodelinglanguage)uml,uml由视图(views)、图(diagram)、模型元素(modelelement)等几个部分构成。视图描述被建模的各个方面,为系统建立多个模型,这些模型都反映同一个系统,且具有一致性。图包含多种类型的图形、如用例图,描述视图的内容;模型元素包括面向对象的类、对象、消息和关系等概念,是构成图的最基本概念。面向对象在信息系统的建设中起了巨大的作用,但是从面向对象的系统设计来说,对象类型很多,对象之间的关系也比较复杂,对象之间的接口也比较多,在利用面向对象开发大型信息系统的时候系统结构很复杂,开发者开发了面向对象的软件复用技术,开发了大量的组件库,提倡通用接口技术,降低了构建信息系统的门槛,但还是尚存缺憾,如何进一步对面向对象进行抽象,降低系统的复杂性是一个艰巨的任务。结构化查询语言(sql)是关系数据库系统的系统建模语言和工具。sql的体系结构主要是三级结构,表、行、列分别代表sql的三级。首先,一个sql数据库是表(table)的集合,它由一个或多个sql模式定义;一个sql由行集构成,一行是列的序列,每列与行对应一个数据项;一个表或者是一个基本表或者一个视图,一个基本表对应一个或者多个存储文件,代表一个专门的业务对象信息,而视图由一个或多个表定义的sql语句得到,代表数据信息的部分切面和部分行集信息;sql语句通过数据来描述业务系统,包含了元数据和存储定义、数据操作定义、不同的数据库系统大都提供符合统一规范的sql定义,用户可以通过统一的数据库访问对象通过sql操作数据库。sql92是一种数据库系统的ansi/iso标准,她是一种在sql89上增强的标准,包括支持更多的数据类型,更多字符集、更多排序规则,更多权限能力;支持更多标量操作,支持连接字符串和取字符串的字符的字符串操作,日期和时间操作,支持条件表达式的形成;更多的集合操作符,支持内连接、集合求并集、差集、交集等集合操作,支持对元数据的编辑(特别是drop和alter语句),支持在ada、c、mumps语言中嵌入sql语句(模块和嵌入式语法),更多的权限能力,更多的引用完整性的能力,包括引用的动作,检查约束中的子查询,单独的断言,以及用户控制约束的推迟,支持sql语言的动态执行,支持某些设施所需的远程数据库访问(尤其是连接的管理语句和合格的方案名称),支持临时表,支持各级事务的一致性,支持数据类型转换(各种数据类型使用cast表达式),支持滚动游标。反射技术则提供了封装程序集、模块中的类型和对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。json定义为javascriptobjectnotation,是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,结构简洁和清晰,在web领域应用较多。在分布式存储系统中,数据需要分散存储在多台设备上,数据分片(sharding)就是用来确定数据在多台存储设备上分布的技术。数据分片的原则有:分布均匀,即每台设备上的数据量要尽可能相近;负载均衡,即每台设备上的请求量要尽可能相近;扩缩容时产生的数据迁移尽可能少技术实现要素:本发明的目的在于提供用于信息系统建模和数据访问的实体-属性框架的系统,能够快速地对业务对象进行建模并反馈到数据的存储,提高了系统建模的效率,而且数据能够随着数据量的增加而平行扩展,用户不需要关心数据存储的结构和方法,只需要关注数据管理和查询接口即可,从而降低了系统的复杂性;在数据访问上,提供了一种扩展sql中列标记定义的方法,用户可以通过在查询列上添加标记定义筛选、排序、汇总数据,提高了系统的灵活性。本发明包括实体属性建模模块、存储管理模块、过程信息管理模块、物化视图管理模块、扩展查询引擎模块、用户ui模块,见图1。其中,实体属性建模模块负责系统的建模功能,主要功能是将业务模型映射到实体和属性信息的集合,它与过程信息管理模块和存储管理模块连接,为过程信息管理模块和存储管理模块提供模型元数据信息;存储管理模块负责与实体属性建模模块相连,通过模型信息的定义来实现实体和属性数据管理,再和扩展查询引擎模块和物化视图管理模块相连接,为它们提供查询或者生成视图所需要的模型数据;过程信息管理模块从实体属性建模模块获得模型配置信息,然后根据外部离散连续信号的触发,实现实体属性时变信息的管理,时变的数据再发送给存储管理模块进行归档;扩展查询引擎模块与存储管理模块和物化视图管理模块、用户ui模块连接,查询所需要的数据来自存储管理模块,物化视图模块则调用扩展查询引擎模块执行查询,将查询后的结果写入存储管理模块的物化实体存储表中,后续用户再调用扩展查询引擎模块查询该视图的时候将直接使用对应存储表的内容,降低查询负荷,提高性能;用户ui模块则和用户查询模块相连接,使用图表、表格的方式展示模型的数据。实体属性建模模块的主要功能是对业务模型进行分解,将实际业务对象分解为实体与属性、实体与实体信息的组合、继承关系模型,为后续的存储管理提供模型元数据信息,从而实体定义是一种层次化的组合结构,见图2。在后续的存储管理模块中,不同的实体的存储结构是不一样的。实体存储类型包括表格、普通视图、物化视图、用户程序视图类型,普通视图和物化视图非常相似,在视图定义中都包含用户需要查询的列信息和条件信息、分组信息和条件信息,视图的数据需要调用扩展查询模块完成,可以按行集类型动态返回实体数据信息,但不同的是,普通视图的执行是由系统触发的,而物化视图的数据更新是由系统自动触发的,系统会动态计算并保存查询结果并存储在物理硬盘上,用户在查询物化视图的时候就和查询普通表格一样,这样可以大大提高系统的性能;用户程序类型视图代表一个自定义的用户数据查询视图,表格的数据是通过外部程序计算得到的,程序提供访问数据的参数信息,在系统初始化的时候系统会通过反射的方式将外部程序挂载在视图访问点,在用户在调用sql访问数据的时候,用户会从sql中解析出程序视图名称和相关参数,通过反射方式调用程序内部相应的函数接口来完成。属性类型除了包括字符串类型、整形类型、日期类型、数组类型、json类型、可变长度类型、二进制类型等,还包括计算属性类型。计算属性中包含一个自定义公式定义,确定当前属性的取值依赖于哪些其他实体和属性信息,属性的值存储也分动态和静态两种类型,动态实体属性的计算是在执行查询的时候完成的,静态实体的属性计算则是在整个实体的数据变更的时候计算得到的,在查询的时候静态属性可以和普通属性一样被直接引用而不用附加额外的查询操作,可以大大提高查询效率。另外,有些实体的信息有自耦属性,实体的数据实例和父亲实例存在关联关系,我们用父亲节点id字段代表父亲字段,在查询的时候系统会通过数据的自耦关系递归运算,避免用户调用复杂的sql嵌套语句。有了实体和属性的定义,在系统初始化阶段,系统会分析系统中实体与实体之间、实体与属性之间、属性与属性之间的组合关系和继承关系,构造层次化的元数据结构信息树,每个实体的属性信息位于这个信息树的一个叶子节点上,我们定义从实体‐属性树根节点到叶子节点的绝对路径为属性路径。在实体属性建模模块中,提供了一种引擎,可以分析面向对象的模型结构,将面向对象的模型结构转换为实体‐属性结构,方法是:(1)预先建立问题域中一些常见的实体属性信息库备用,这个实体属性集合可以包含实体和属性和继承关系信息,为了优化查询,可以为这些实体属性信息预先建立存储数据结构;(2)递归遍历面向对象的程序结构,建立对象类结构树,在建立对象类结构树的时候,需要综合实体对象及其属性的类型、名称进行分析,提取出相似的类对象结构建立继承属性结构;(3)分析并计算对象结构树中的对象与已有实体信息库的实体、本对象体系中的其他对象的相似度,如果当前对象树中的对象相似度和已有对象域里的对象的相似度达到一定的阀值,认为当前对象节点为已有对象的一个实例的变种,在对象属性信息存储的时候,首先需要存储对象原型的相关信息,然后存储本实体相关的变化信息;如果当前对象树中对象和当前对象树中的其他对象的相似度的差值小于一定阀值,则认为两个对象属于继承关系,再检查父级对象和已有对象域中的对象的相似度,如果相似度未达到阀值,则需要在已有对象域中建立新的对象类型,当前对象、父亲对象为继承关系,父亲对象和已有对象域中的对象类型关联,为对象类型的实例化。在对象存储的时候还是首先存储对象类型的数据,再存储本实体特有的数据,读取的时候首先读取对象类型的数据,然后再读取本实体特有的属性信息数据覆盖对象类型上的同名属性对应的值,最后得到对象全部属性的真实值。过程信息管理模块管理实体‐属性信息模型中所有实体和属性信息随着时间变化的信息,实现对实体‐属性框架中的模型数据全生命周期的管理。在模块初始化阶段,首先会读取所有的实体和属性信息,获得实体属性的依赖关系树,然后系统就处于等待状态,不断等待外部的新的带时标数据输入。对于新的输入,系统首先对数据行进行解析,分析数据中包含哪些实体和属性,然后根据实体与属性、实体与实体的依赖和关联关系将数据分解为多个元组信息,每个元组代表作用在一个单一实体属性信息的输入,被依赖的实体/属性的数据在前面,依赖的实体/属性信息在后面,每条数据的更新都对应一个事件操作,我们用一个这样的信息集合(实体,属性路径,事件id,当前时间戳,当前值,最新时间戳,最新值)来表示系统实时变化状态,这些信息可以作为数据恢复的还原点,存储模块会存储属性的最新值;在数据需要撤销的时候,系统可以根据数据更新记录倒序处理所有的操作记录,对数据进行回溯,数据回溯到相应的还原点上;在访问实体和属性的过程信息的时候,需要结合数据时标变化和实体属性组合、继承关系来访问指定属性的数据的历史值、当前值和最新值。存储管理模块负责将数据存储到数据库系统或者其他存储系统中,在系统初始化阶段,我们根据实体及其属性的信息将将实体的逻辑结构映射到数据库关系表、视图结构、物化视图中,属性信息映射到数据表的字段上,在实体和属性的模式发生变化的时候,实体属性的变化可以自动同步到数据库的表结构定义上。另外在实体和属性上我们可以定义数据的分片模式,定义按照不同数据关键字的范围将数据的存储映射到不同的物理存储表格中,在不同的存储单元之间实现数据存储的数量和访问频率的负载均衡,提高数据的查询效率;另外对于一些特定的属性信息,我们可以选择数据按行存储或者按列存储的方式,在列上可以进行数据的压缩,提高数据的存储效率。物化视图存储模块负责根据物化视图的查询信息定义,执行动态查询,将查询的结果存储到物理表格中,在用户查询的时候可以直接返回物理表格的数据,提高查询效率。在系统中对于物化视图的更新采用增加扫描线程跟踪实体数据的更新事件,在实体数据发生变动的时候自动更新物化视图的数据,同时记录变更日志;在更新出现问题的时候,系统会根据日志进行重试保存或者执行数据撤销回滚操作。扩展查询引擎模块负责解析用户的查询输入信息,检索相关的物理表格,将返回的数据组织为实体‐属性数据信息元组的表示形式;在表格上实现数据分片的情况下,系统会根据表格上数据的查询条件检索关键码的范围,根据数据的分片信息从多个物理表格中读取数据后汇总后再和其他表格做连接查询操作。另外,在扩展查询引擎模块中,除了满足标准的查询请求以外,实现了扩展查询请求,扩展查询请求的是基本sql查询的基础上,通过在数据列上标记特殊筛选条件,在基本查询结果的基础上再筛选数据,达到一些特殊查询需求用户ui模块主要用于数据前端展示,表现形式为一些web页面和查询脚本,在web页面上会绘制数据表格或者图表来进行呈现,数据来自于查询脚本,查询脚本调用扩展查询引擎接口访问模型的配置数据和时变数据。一种常见的系统部署方式为三级部署结构,实体属性建模模块、过程信息管理模块、存储管理模块、物化视图管理模块、扩展查询引擎模块都部署在一台单独的应用服务器上,有一台专门数据存储系统与该应用服务器连接;有一台web服务器,部署了用于访问该系统数据的系统管理和数据查询组件,用户通过浏览器进行系统建模、数据管理和查询操作,浏览器和web服务器连接,web服务器和应用服务器连接,见图3。附图说明图1为实体-属性框架模块连接关系图。图2为实体-属性框架模型结构图。图3为实体-属性框架系统部署结构图。具体实施方式本发明包括实体属性建模模块、存储管理模块、过程信息管理模块、物化视图管理模块、扩展查询引擎模块、用户ui模块,见图1。其中,实体属性建模模块负责系统的建模功能,主要功能是将业务模型映射到实体和属性信息的集合,为存储管理模块提供基本的模型元数据信息,它与过程信息管理模块和存储管理模块连接,为过程信息管理模块和存储管理模块提供模型元数据信息;存储管理模块负责与实体属性建模模块相连,通过模型信息的定义来实现实体和属性数据基本信息的管理和生命周期管理,它再和扩展查询引擎模块和物化视图管理模块相连接,为它们提供查询或者生成视图所需要的模型数据;过程信息管理从实体属性建模模块获得模型配置信息,然后根据外部离散连续信号的触发,实现实体属性时变信息的管理,时变的数据再发送给存储管理模块进行归档;扩展查询引擎模块与存储管理模块和物化视图管理模块、用户ui模块连接,查询所需要的数据来自存储管理模块,物化视图模块则调用扩展查询引擎模块执行查询,将查询后的结果写入存储管理模块,后续用户再调用扩展查询引擎模块查询该视图的时候可以直接使用对应存储表的内容,降低查询负荷,提高性能;用户ui模块则和用户查询模块相连接,使用图表、表格的方式展示模型的数据。实体属性建模模块将实际业务对象分解为实体与属性、实体与实体信息的组合、继承关系模型。在本系统中,实体是由属性信息和其他实体信息组合而来的,分别称之为子实体和子属性;子实体的也可以由其他实体和属性组合而来;实体和实体之间的关系除了组合关系以外,还有继承关系,属性可以继承属性,实体可以继承实体,继承的实体对象包含所继承对象全部的实体和属性信息,如果两个实体有包含的实体信息和属性信息,则对应的实体的定义以继承对象为准,属性在继承属性的时候,需要检查两个属性的定义有哪些区别,新的属性的定义是以原有的属性为基础修改相应的属性字段得到。相应的,在实体或者属性信息发生变化的时候实体的存储配置必须得到同步更新,否则实体的存储可能发生错误;如果当前实体的存储结构不支持数据类型的更改,实体建模模块在修改实体或者属性配置的时候就会收到警告信息和操作提示。在本系统中实体对应的每条数据都有一个唯一的id,在向系统输入实体的数据的时候,系统总是获取一个新的id,在系统中维护一个所有类型实体的最大id的数据结构,在系统输入一条新数据的时候当前实体的获取一个新的id为最大id+1,同时对应实体的最大id得到更新;如果该实体是一个组合实体的时候,需要按照实体组合的关系,首先从新数据中分解出被组合实体的数据,创建新记录并得到对应记录的id,然后当前记录当前的组合实体字段替换为组合实体的id然后再保存数据;如果被组合对象不可更改,是引用关系,则在得到被组合实体的数据的时候,需要根据被组合对象的数据表格检索对象的id,然后将当前记录的组合实体字段替换为检索到的对象的id。相似度计算需要考虑对象类和实体的名称类型,包含的实体或者类的名称、类别、属性的类型,属性的可见度,属性的继承关系、属性相关的约束信息等限制,这些信息在计算相似度的时候每一项都可以赋予一个权重,采用加权平均的方法求解对象的相似度指标,相似度指标可以作为对象的特征编码存储,在系统对象的结构分解和属性分解的时候需要重新计算相似度指标。在扩展查询引擎模块中,除了满足标准的查询请求以外,实现了扩展查询请求,扩展查询请求的是基本sql查询的基础上,通过在数据列上标记特殊筛选条件、分组信息、聚合函数,在查询表格上标识主实体、对象实体映射信息、行筛选信息等手段,在基本查询结果的基础上再筛选数据,达到一些特殊查询需求。用户的查询输入用下面表格中的信息结构表示,其中对象属性表达式、条件字符串和连接条件满足sql92规范。(1)主实体信息代表需要查询的主实体,如果在所有出现属性信息的地方中无法确定属性对应的实体,则用主实体代替。(2)属性信息属性信息包括多个对象‐属性表达式,表达式之间用逗号分隔。对象‐属性表达式该表达式支持标准的sql标准,支持别名信息。(3)分组列信息。描述查询后的表格数据按照哪些列进行分组统计。(4)在对象表达式后面可以添加列筛选信息。列上的筛选信息用于描述如何根据分组条件在列上过滤、排序、计算数据,作用是在总的查询条件和数据分组的基础上进一步匹配和筛选数据,达到缩小数据范围和完成某种特定类型的查询需求。(5)排序列信息确定返回的数据表格按照哪些列进行排序,哪些列是正序,哪些列是反向排序;(6)对象实体映射表确定在查询列中,每个列的对应的实体对象对应哪些实际实体,在通过实体去查找真实的存储表格;(7)在本专利的时候默认的连接关系是通过实体与实体组合关系得到的,如果实体1组合了实体2,并且查询列中均包含了实体1和实体2对应的列,则默认的连接关系中会出现实体2通过主键列连接实体对应的列,在系统建表的时候会自动创建实体1和实体2之间的外键关系。通过在查询请求中加入用户自定义的连接关系,可以补充对象之间除了外键关系之外的连接关系,可以实现对数据的精确检索;在某些情况下,这些连接条件比较固定,则可以将自定义的连接关系加入默认的表连接关系配置里面,只需要在表格列里面配置好关联的属性,则在查询的时候系统会检索默认的表连接配置,构造查询sql的时候可以补齐连接关系信息;另外,sql连接中有连接类型如自然连接,左连接右连接的情况,系统约定主实体和其他对象的连接可以是左连接和自然连接,但不可是右连接;如果系统中配置了非主实体的条件字符串,则在条件字符串中的实体系统会进行综合判断,决定是采用自然连接还是左连接操作构造查询字符串。(8)行筛选是确定如何从源数据集合中首先筛选数据的子集后再进行进一步的扩展查询操作。系统支持两种筛选操作,一种是基于开始行和结束行的筛选,另外一种是基于一个固定的行号和行数的筛选方法。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1