[发明专利]在对象系统与关系系统之间实现映射的方法在审
| 申请号: | 201811221441.9 | 申请日: | 2018-10-19 |
| 公开(公告)号: | CN109359128A | 公开(公告)日: | 2019-02-19 |
| 发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 武汉随意云科技有限公司 |
| 主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/28 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 430000 湖北省武汉*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 关系系统 对象系统 映射 对象数据模型 计算机技术领域 对象关系 范围扩展 复杂对象 描述对象 形式模型 映射规则 构建 保存 | ||
本发明属于计算机技术领域,公开了在对象系统与关系系统之间实现映射的方法。首先提出了一种描述对象系统及其与关系系统映射规则的形式模型,称为对象数据模型(ODM)。然后以该模型为基础,发明了将对象系统保存到关系系统的方法和从关系系统提取对象系统的方法。本发明方法通过构建对象数据模型并以此为基础进行对象关系映射,克服了现有技术的不足,将ORM程序的适用范围扩展至复杂对象系统。
技术领域
本发明属于计算机技术领域,具体为在对象系统与关系系统之间实现映射的方法。
背景技术
面向对象软件开发思想将软件系统看作对象及对象之间的关系(即对象系统),系统的运行体现为对象之间的相互作用,而将系统数据的存储看作对对象当前状态实施的持久化操作。在当前软件工程中,经常需要将数据存储到关系数据库中,以便进行应用访问,而且几乎所有的存储系统都采用关系型数据结构。由于对象系统的结构与关系数据结构往往存在显著差异且该难题一直未被有效解决。故自面向对象开发普及以来,如何实现对象系统与关系系统间的映射(ORM,即对象关系映射)一直是一个难题。
传统的做法是在软件开发中编写专门的转换代码(一般属于“数据访问层”)。这一工作是烦琐而枯燥的,并且通常会占据开发团队大量的时间。因此,开发人员希望编写出一种对象系统无关的通用ORM程序。目前常用的ORM程序有微软公司研发的Entity Framework(简称EF)和开源项目Hibernate。
但是,发明人在本申请的研究过程中发现,采用现有技术进行ORM映射时,还存在一定的问题:
(1)不支持多方关联,只支持二方关联,
(2)不支持复杂关联(即拥有属性的关联);
(3)不能描述关联对象(对象系统中的一种特殊对象,不同于实体对象);
(4)取值和设值只能通过属性访问器,而对于复杂对象来说,其某些属性或关联指针可能不宜对外开放;
(5)取值和设值机制不具可扩展性,不支持业务系统插入特殊映射逻辑;
(6)关联的映射(即对象间关系的映射)依赖外键属性,而有些对象可能不具有外键属性。
这些问题限制了ORM程序的应用范围,通常只能应用于简单对象系统。
发明内容
本发明的目的是克服现有技术的不足,将ORM程序的适用范围扩展至复杂对象系统。首先定义了用于描述对象系统的形式模型,称为对象数据模型,然后在该模型基础上分别发明了将对象系统保存到关系系统的方法和从关系系统提取对象系统的方法。
1.对象数据模型
使用一组具有特定含义的数据项描述对象系统中的实体对象及其内部的属性和关联指针,说明实体对象与关系映射的规则;
描述对象系统中的链及其各端,说明链与关系映射的规则;
依据链在对象系统中是否有相应的关联对象,将链分为显式关联和隐式关联两种,对有关联对象的链进一步对其属性进行描述;
依据链和其端对象是否与同一关系映射,将链的映射分成伴随映射和独立映射两种,并对两种映射执行不同的映射逻辑;
定义构造器规范,只要符合此规范的程序块均可被所述模型识别,供ORM程序调用以创建对象;
定义取值器规范,只要符合此规范的程序块均可被所述模型识别,供ORM程序调用以获取对象属性值、关联引用对象或关联端对象;
定义设值器规范,只要符合此规范的程序块均可被所述模型识别,供ORM程序调用以设置对象属性值、关联引用对象或关联端对象。
2.将对象系统保存到关系系统
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉随意云科技有限公司,未经武汉随意云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811221441.9/2.html,转载请声明来源钻瓜专利网。





