[发明专利]从关系数据库中获取面向对象模型的装置及方法有效
| 申请号: | 200610080711.X | 申请日: | 2006-05-12 | 
| 公开(公告)号: | CN101071371A | 公开(公告)日: | 2007-11-14 | 
| 发明(设计)人: | 李智斌;张翼;赵贵玉;方明 | 申请(专利权)人: | 华为技术有限公司 | 
| 主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/30 | 
| 代理公司: | 北京同立钧成知识产权代理有限公司 | 代理人: | 刘芳 | 
| 地址: | 518129广东省*** | 国省代码: | 广东;44 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 关系 数据库 获取 面向 对象 模型 装置 方法 | ||
技术领域
本发明涉及一种从关系数据库中获取面向对象模型的装置及方法,特别是一种通过提取关系数据库中的类信息将关系数据库中的表转换为面向对象的类的装置及方法。
背景技术
目前,广泛使用面向对象的设计方法和思维来设计和进行业务建模,而用关系数据库进行存储。面向对象设计的机制和关系数据库中所采用的关系模型不同,造成了面向对象设计和关系数据库设计之间的不匹配。
面向对象设计基于如耦合、聚合、封装等理论,而关系模型基于数学原理,二者基于不同的理论基础。对象模型侧重于使用包含数据和行为的对象来构建应用程序;关系模型则主要针对于数据的存储。当为访问数据寻找一种合适的方法时,这种不匹配就成为了主要矛盾:使用对象模型,常常通过对象之间的关系来进行访问;而关系理论则通过表的连接、行列的复制来实施数据的存取。这种基本的不同使两种机制的结合并不理想。
目前解决面向对象模型和关系数据库访问的方法包括将对象映像到某种持久机制并且对关系数据库结构的简单改动并不影响面向对象代码的一个的持久层。该方法较好的解决了从面向对象模型向关系数据库映射的问题,但是,如果从关系数据库出发,根据关系数据库的结构构架成面向对象模型,该方法就无能为力了。
发明内容
本发明的目的是针对上述现有技术的不足,提供一种从关系数据库中获取面向对象模型的装置及方法,在关系数据库和面向对象模型之间建立一个中间层,该中间层具有翻译和解释符合特定规格的数据库的功能,通过这个中间层,根据数据库中的信息生成面向对象模型。
为实现上述目的,本发明提出了一种从关系数据库中获取面向对象模型的装置,该装置包括:关系数据库接口模块,该关系数据库接口模块用于输入关系数据库中的表信息;转换模块,该转换模块与所述关系数据库接口模块连接,用于将所述表信息转换为面向对象模型中的类信息;面向对象模型接口模块,该面向对象模型接口模块连接所述转换模块,用于输出所述类信息。
本发明还提出了一种从关系数据库中获取面向对象模型的方法,其中包括以下步骤:
步骤1、输入关系数据库中的表信息;
步骤2、解析所述表信息中的表名及字段名信息,获取类名信息和属性信息;
步骤3、根据所述类名信息建立类层次关系,并输出所述类层次关系及属性信息;
步骤4、解析所述表信息中的外键信息,获取所述外键信息中的关系类型和角色信息,并输出所述关系类型和角色信息;
步骤5、结束。
本发明在关系数据库和面向对象模型之间建立一个中间层,通过该中间层的解释和转换,可以将关系数据库中的表转换为面向对象模型。
本发明通过建立一个中间层,实现了从关系数据库到面向对象模型之间的解释和转换。因为关系数据库建立的基础是关系模型,而面向对象模型建立的基础是基于面向对象方法。由于两者基于不同的数学模型,两者无法直接进行转换。就好比一个只会说中文的人和一个只会说英语的人无法进行交流一样,这时就需要有一个翻译来完成两种语言之间的转换任务。而本发明描述的中间层就扮演了相当于翻译的角色,使关系数据库和面向对象模型之间可以互通。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明从关系数据库中获取面向对象模型的装置的较佳实施例的结构示意图;
图2为本发明从关系数据库中获取面向对象模型的装置中关系数据库接口模块的较佳实施方式的结构示意图;
图3为本发明从关系数据库中获取面向对象模型的装置中转换模块的较佳实施方式的结构示意图;
图4为本发明从关系数据库中获取面向对象模型的装置中面向对象模型接口模块的较佳实施方式的结构示意图;
图5为本发明从关系数据库中获取面向对象模型的方法的较佳实施例的流程图;
图6为图5中对类型标识符进行判断的较佳实施方式的流程图;
图7为图5或图6中对类层次需要判断的较佳实施方式的流程图。
具体实施方式
图1为本发明从关系数据库中获取面向对象模型的装置的较佳实施例的结构示意图,关系数据库接口模块B1用于输入关系数据库A中的表信息;转换模块B2与所述关系数据库接口模块B1连接,用于将所述表信息转换为面向对象模型中的类信息;面向对象模型接口模块B3连接所述转换模块B2,用于输出所述类信息,得到面向对象模型C。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610080711.X/2.html,转载请声明来源钻瓜专利网。





