首页> 中国专利> 数据访问层Xml格式数据与关系数据间的映射转换方法

数据访问层Xml格式数据与关系数据间的映射转换方法

摘要

本发明提供一种数据访问层Xml格式数据与关系数据间的映射转换方法,该方法主要包括设计时和运行时两个阶段,其中:在设计时阶段,针对关系数据的数据结构以及对象与关系数据的映射和转换进行建模,描述为数据对象和数据模型两种元数据,数据对象是关系数据进行建模,将数据库中的表和视图的数据结构抽象出来,描述其名称、字段属性等。在运行时阶段,由数据访问引擎,根据设计时定义的元数据信息,结合输入的数据信息,动态的构造数据库存取访问的SQL语句,访问数据库,自动完成增删改查的数据访问层的功能,并对动态构造过程的结果进行适量缓存。

著录项

  • 公开/公告号CN101067814A

    专利类型发明专利

  • 公开/公告日2007-11-07

    原文格式PDF

  • 申请/专利权人 浪潮集团山东通用软件有限公司;

    申请/专利号CN200710015726.2

  • 发明设计人 孙立新;李海波;胡士杰;

    申请日2007-05-10

  • 分类号G06F17/30(20060101);

  • 代理机构37100 济南信达专利事务所有限公司;

  • 代理人姜明

  • 地址 250014 山东省济南市历下区山大路224号

  • 入库时间 2023-12-17 19:20:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-27

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20090204 终止日期:20160510 申请日:20070510

    专利权的终止

  • 2009-02-04

    授权

    授权

  • 2008-01-02

    实质审查的生效

    实质审查的生效

  • 2007-11-07

    公开

    公开

说明书

1、技术领域

本发明设计一种计算机应用技术,具体涉及一种数据访问层Xml格式数据与关系数据间的映射转换方法。

2、背景技术

软件的体系架构上通常可分为三层:界面表示层、业务逻辑层、数据访问层。通常在企业级应用开发环境中,面向对象的开发方法已经成为主流方法。对象只存在于内存中,如果要永久的保存对象数据,需要进行对象的持久化,即将对象存储到数据库中。反之,需要将数据从数据库中加载,构造为内存的对象。目前,关系型数据库仍然是主流的、使用最广泛的数据库,它存储数据的形式是非面向对象的。因此,把对象用关系数据库进行存取访问,需要进行映射和转换,这就是我们通常所说的数据访问层开发。手工编写和维护数据访问层的映射和转换代码,由于存在兼容数据库类型(Oracle、Sql Server、DB2、Sybase等)和版本之间的差异等等,这无疑是一项繁琐、耗时的工作。

此外,业务应用系统中的数据,因为效率、空间等原因,一种数据往往需定义多个实体对象类型,这些对象类型的定义、转换、部署以及维护也较为繁琐,同时考虑异构系统之间通信的需求,因此需要一种通用的统一数据格式和对象形式对数据进行封装。

3、发明内容

本发明的目的是提供一种数据访问层Xml格式数据和关系数据之间的映射和转换方法,该方法主要包括设计时和运行时两个阶段,其中:

在设计时阶段,如图1所示,针对关系数据的数据结构以及对象与关系数据的映射和转换进行建模,描述为数据对象和数据模型两种元数据,数据对象是关系数据进行建模,将数据库中的表和视图的数据结构抽象出来,描述其名称、字段属性等。

其中表或视图,描述其显示名称、编码、表或视图名(数据库标识)、作者、版本、创建日期等。

其中字段属性中,主要信息有:字段显示名称,字段名(数据库标识)、字段类型、字段长度、是否必填、是否为关键字等。

在字段属性中的字段类型,考虑需兼容多种类型的数据库,对数据类型进行了抽象,定义了一套中立的数据类型,和具体的某种数据库的数据类型之间建立映射关系,从而屏蔽数据库差异。在此基础上,另定义了业务系统中常用的一些业务数据类型,比如编号、名称、备注、金额等数据类型,其作用有两个:一是方便录入,二是对业务数据类型做了规定和统一,避免因为手工设置失误造成的程序错误。对于业务数据类型,提供扩展定义,用户在开发使用时可自行扩展。此外为了录入维护便利,提供了和数据库设计工具PD(Power Designer)文档格式之间的转换功能。用户可以在PD中进行数据库设计,保存为PD文档,直接导入生成数据对象。

数据模型

业务实体是业务系统中数据的有机构成形式,一般由多张数据表构成,多张表之间构成主从关系和关联关系。数据模型便是用于描述业务实体的数据构成关系。在数据对象的基础上,对业务实体以及业务实体的关系进行建模,描述业务实体的的数据结构,业务实体的业务数据信息,业务实体之间的关系。

1)数据模型的构成结构为:一个主表,多个从表,构成主从关系,从表下可再挂接从表,构成嵌套的主从关系。一个模型可以定义于其他模型的关联关系。

2)数据模型和数据对象的关系。数据模型中的表,引用自数据对象,数据模型中表的字段对应数据对象中的字段,这种对应关系可以是完全对应,也可以是部分对应。即数据模型的表可以选择的对应数据对象中的部分字段。对应过来后,自动根据数据对象的描述信息,形成数据模型的描述信息,数据模型的表的编码、名称直接取自数据对象的编码和名称;数据模型中表的字段描述信息,部分取自数据对象的字段描述的信息:数据类型、是否必填、主键等。特别的,数据模型上定义的数据类型区别于数据对象上定义的数据类型,数据模型上定义的数据类型为面向开发编程语言的数据类型,而数据对象上的数据类型则是抽象自数据库的数据类型。比如,数据对象定义的“VARCHAR(n)”这种数据类型,在数据模型中对应“string”这种数据类型。

3)数据模型的表属性信息:编号、名称、主键字段指定、主键生成规则、是否启用编码字段、编码字段指定、编码字段生成规则、数据分级定义、排序定义等。

4)数据模型的字段属性信息。字段的显示名称、编号、标签(指代名)、字段数据用途、字段类型、字段对象类型定义、是否用作列权限分配、数据权限定义、是否必须、是否在插入时使用、是否在更新时使用等。部分字段属性定义解释如下:

其中字段数据用途为:列表、卡片、打印、参照和查询条件,是多选的。

其中字段对象类型定义用于指定字段的关联关系或者使用的枚举值定义。关联关系定义用于定义数据模型之间的关联关系。枚举值定义用于简单的录入帮助。比如“是”、“否”或者“男”、“女”等。其中列权限、数据权限定义用于和权限系统的关联定义。

5)数据模型的表的主从关系定义。指定主表和从表之间的关联关系,指定从表的一个或多个字段作为外键和主表的相应的一个或多个字段关联。

6)数据模型之间的关联关系。数据模型之间的关联关系是由数据模型的一个字段关联另一个数据模型中的一个字段而构成的。在字段属性中有一个字段对象类型定义,当选择为关联关系时,可以定义于另一个模型的关联。在关联中指定关联模型中与之关联的字段,关联的附加条件,并可指定在模型中查询关联的相关关联模型的字段,比如一个客户数据模型,其中有一个地区字段,关联地区数据模型,在关联的时候指定关联带出地区数据模型的地区编码、名称等信息。

设计时定义的数据对象和数据模型,用自定义的一套XML标记来描述,其保存格式本身为XML文档格式,作为元数据(描述数据的数据)资源来管理。

运行时阶段

图2-3所示,在运行时阶段,由数据访问引擎,根据设计时定义的元数据信息,结合输入的数据信息,动态的构造数据库存取访问的SQL语句,访问数据库,自动完成增删改查的数据访问层的功能。特别的,为了提高效率,对动态构造过程的结果进行适量的缓存。

为兼容数据库差异,在数据访问引擎构造SQL以及访问数据库时,根据元数据的相关信息,根据当前访问的数据库类型和版本,针对数据库类型和版本之间方言的差异,使用策略模式,动态的调整SQL语句以适应不同的数据库类型和版本。

此外,对于业务系统中编号生成规则,权限集成等提供扩展接口定义,以使用不同的应用场景。在开发和实施过程中,根据不同业务场景的需要,可以自定义实现扩展接口并注册到数据访问引擎中,以实现扩展的功能。默认的,数据访问引擎中集成了常用的编号生成规则以及权限集成的实现。

针对对象类型定义和维护的繁琐,数据访问引擎的的数据交换标准为XML。在返回XML的同时,提供返回XML的XML Schema的功能。数据访问引擎提供默认的Xml访问对象,也可以利用其他的系统基础类库提供的XML访问对象进行访问。并且为在异构系统之间交互数据和数据标准提供了很好的支持。

从外部调用接口方面,定义了本地调用和We浪潮集团山东通用软件有限公司服务调用两种客户端,便于不同的应用开发模式的调用。

这样就完成了在数据访问层Xml格式数据和关系数据之间的映射和转换XML-RelationDataMapping,简称为XR-Mapping。

本发明的有益效果是:XML格式数据和关系数据之间的映射和转换技术,能够有效的封装

对关系数据库的存取访问,屏蔽了底层数据库由于数据库的种类、版本等差异造成的开发复杂度,提供了一种标准的XML数据访问和传输格式,使得开发者不用编写任何代码即可实现持久化层存取访问的功能,从而非常有效的降低了软件系统持久化层的开发难度、开发风险。此外,这种方法使得业务数据的结构调整变得简单,当数据库结构和业务单据结构发生调整时,通过图形化的数据对象、数据模型设计器进行调整,不需要进行编译和物理发布,即可完成调整工作。有效的降低了软件系统实施和维护过程中的成本和风险以及软件厂商的开发、实施成本。使软件系统能够快速适应用户的个性化需求,满足用户不断发展和完善信息系统的长期目标。

附图说明

图1是设计时阶段的数据建模示意图;

图2时数据之间的映射和转换示意图;

图3是数据访问引擎高层的设计图。

4、实施方式:

实施方式也分为设计时(数据建模)和运行(数据存取、转换)时两个阶段。在设计时,通过数据建模,对业务数据的静态结构进行分层描述(数据对象描述数据库结构,数据模型描述业务数据结构);在运行时,根据设计时描述,动态解析,完成XML数据和数据库关系数据之间的映射和转换。

4.1设计时

如附图1所示,在设计时:

(一)根据业务需求抽象出的数据结构,建立数据对象(数据库中表结构的描述),描述表的数据库名,表的所属列以及列的相关字段信息(字段名、类型、长度、精度、是否唯一、是否可为空值等)。

(二)根据业务需求抽象出的业务单据,建立数据模型,描述业务单据的构成(一般的一张业务单据是由一张主表和多张从表构成)。具体的:

选择一个业务单据主表对应的数据对象作为数据模型的主对象。

若该业务单据有从表,则在数据模型的主对象下选择各子表对应的数据对象作为数据模型的子对象。并指定子对象和主对象的关联(从表中的主表标识字段和主表标识的关联)。

分别指定主对象和子对象的主键字段、编码字段,若有数据分级信息,则需启用分级选项,指定相应的分级信息。

分别指定主对象和子对象字段的相关属性:

■字段基本属性,如字段名、字段标签、字段描述、字段类型等。

若字段是外键,则指定字段的类型为“关联”,并指定其关联的“数据模型”,定义关

■联的相关信息。

■可为字段指定取值域枚举。

■为字段指定其用途(卡片、列表、打印等)。

此外,可为主、子对象指定各种约束(数据删除外键检查、唯一性检查等)。

4.2运行时

如附图2所示,运行时由“数据访问引擎”接收外部的增、删、改、查请求,完成相应的XML数据和关系数据的映射和转换。对“数据访问引擎”请求可分为两类,一类是数据获取,即从关系数据库获取关系数据,并将结果转换为XML数据;另一类数据输入,即输入XML数据,将其转换为关系数据,将输入同步(插入、更新)到数据库。

(一)数据获取,根据输入的“数据模型”标识,查询的条件,由“数据访问引擎”根据相应“数据模型”、“数据对象”的描述,动态形成查询关系数据库的SQL,获取数据结果集,然后根据相应的“数据模型”结构,构造为XML数据并返回。

(二)数据输入,根据输入的“数据模型”标识和XML,由“数据访问引擎”动态构造为关系数据结果集,并根据相应“数据模型”、“数据对象”的描述,动态形成关系数据库的插入、更新、删除SQL,执行SQL,完成请求。在执行多条影响数据库状态的SQL时,“数据访问引擎”会自动启动数据库事务。

这样,通过运行时的建模和运行时的解析执行,完成了XML数据和关系数据库数据之间的映射和转换。

5、实施例:

本发明已经成功运用于浪潮GSP应用开发平台,其架构如附图3所示。系统设计人员通过图形化的数据对象、数据模型设计器描述业务数据的模型,并将“数据模型”应用到平台需要做关系数据库持久化的各个模块。这些模块使用的是XML数据,通过对数据访问引擎的调用,完成XML数据对关系数据库的存取操作。

XML格式数据和关系数据之间的映射和转换技术,有效的封装了对关系数据库的存取访问,屏蔽了底层数据库由于数据库的种类、版本等差异造成的开发复杂度,提供了一种标准的XML数据访问和传输格式,使得开发者不用编写任何代码即可实现持久化层存取访问的功能,从而非常有效的降低了软件系统持久化层的开发难度、开发风险。此外,这种方法使得业务数据的结构调整变得简单,当数据库结构和业务单据结构发生调整时,通过图形化的数据对象、数据模型设计器进行调整,不需要进行编译和物理发布,即可完成调整工作。有效的降低了软件系统实施和维护过程中的成本和风险以及软件厂商的开发、实施成本。使软件系统能够快速适应用户的个性化需求,满足用户不断发展和完善信息系统的长期目标。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号