应用层调用基于关系数据库的数据库抽象层的方法技术

技术编号:2843235 阅读:305 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种应用层调用基于关系数据库的数据库抽象层的方法,包括步骤:应用层与对象抽象组件进行连接;应用层对所有用户进行查询,并将结果全部返回应用层;应用层在对象抽象组件中获取全部用户的信息;在对象抽象组件中,逐一对每个用户获取该用户的属性信息;对象抽象组件返回用户的具体属性信息;应用层对查询返回的结果遍历;根据用户指令,应用层对用户信息进行更新、删除;应用层关闭与对象抽象组件的连接。数据库抽象层将底层关系数据库完全屏蔽,用户可不必考虑底层各关系数据库间存在的差异,而直接以面向对象的方式对所有应用逻辑对象进行建模与操作。

【技术实现步骤摘要】

本专利技术涉及关系数据库间的数据集成,特别涉及基于关系数据库的数据库抽象层的调用方法。
技术介绍
目前的数据库管理系统可分为两种面向对象的数据库管理系统和关系数据库管理系统。数据库管理系统用于将数据有效地存储于计算机内。面向对象的数据库管理系统用于存储利用对象模型进行描述的数据。面向对象的数据库管理系统已提出很多年,但由于其的复杂性,人们对它的认识不一致,且开发过程中会遇到许多技术难题,所以目前市场上还没有一个通用的、成熟的产品出现,且近几年内也不会有太大的发展。关系数据库管理系统是目前主流的数据库产品。关系数据库几乎统治着所有的操作系统平台上的数据管理领域。许多通用数据库操作标准及相关产品(如ODBC、ADO等)的出现使得关系数据库具有良好的通用性和互操作性。随着关系数据库应用领域的不断扩充,关系数据库产品也在不断地增强。目前,市场上有许多不同类型的数据库在被广泛应用,如主流数据库ORACLE、SQLSERVER、DB2等,还有开源数据库,如MYSQL等。这些数据库产品除了遵循共同的基础标准,如SQL92、SQL99等,各自也在标准之上进行扩展。例如,在数据类型方面,SQLSERVER用BIGINT来支持长整型数据的存储,而ORACLE用NUMBER来支持长整型数据的存储。在语言方面,SQLSERVER使用TSQL语法,而ORACLE使用PLSQL语法。在功能方面,ORACLE有自己的语法来支持递归数据获取,而SQLSERVER不直接支持。PDM系统的重要任务是帮助产品开发人员更加有效地管理大量的产品数据,而产品数据的一个非常突出的特点就是数据项之间的关系比较复杂,如继承关系、装配关系等。这种复杂的关系用常规数据模型(主要指关系数据模型)很难描述清楚。但由于目前许多主流关系数据库产品,如Oracle、DB2等,通过在关系内核的基础上引入对复杂对象模型的有限支持,使得关系数据库能够打入CAD等新应用领域,所以许多流行的PDM产品的底层数据管理模块几乎都基于关系数据库系统(如MetaPhase、PM、SmarTeam等)。但是,关系数据模型具有一定的局限性,如逻辑对象间的复杂关系难以直接用关系数据模型表达得形象、直观。且由于应用逻辑的任意性所导致的关系复杂性,很难保证数据的一致性和完整性。所以,面对不同的客户,一套管理信息系统如何支持不同的数据库是目前需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种。数据库抽象层是应用层进行数据库操作的唯一通道,该调用方法屏蔽了底层各关系数据库,使操作用户可直接对底层各关系数据库进行操作。为达到上述目的,本专利技术采用以下技术方案一种,其特征在于它包括如下步骤步骤1应用层与数据库抽象层中的对象抽象组件进行连接;步骤2通过与对象抽象组件的连接,应用层对一种对象进行查询,并将该种对象的信息全部返回应用层;步骤3应用层在数据库抽象层的对象抽象组件中获取该种对象的全部信息;步骤4逐一针对获取的每个对象,在对象抽象组件中获取该对象的属性信息;步骤5对象抽象组件返回该种对象的全部具体属性信息;步骤6应用层对查询返回的对象属性信息进行遍历;步骤7应用层根据对象的指令设定,对该种对象信息进行更新、删除操作;步骤8应用层关闭与对象抽象组件的连接。其中,步骤4又包括步骤4-1在对象抽象组件中获取与该对象相关的对象信息;步骤4-2根据该对象的对象信息,获取该对象所有的对象属性信息;步骤4-3获取该对象的关键属性信息。在本专利技术的方法中,所述的对象是指应用系统中模型化的对象,如用户、部门、角色、文档、邮件等。本专利技术具有以下优点1、通过调用数据库抽象层,应用层可直接以面向对象的方式对所有应用逻辑对象进行建模、操作,而不必考虑对象所依赖的数据库表以及表之间的关系维护,避免了复杂的数据库操作,使用户以所认知的面向对象语义对数据进行操作。2、数据库抽象层将底层关系数据库完全屏蔽,应用层不必考虑底层各关系数据库间存在的差异,具有自适应关系数据库的作用。附图说明图1是数据库抽象层中的一对象抽象组件的组成示意图。图2是调用数据库抽象层的流程示意图。图3是实施本专利技术的一实施例示意图。具体实施例方式数据库抽象层由多个对象抽象组件(Object Abstract Component,缩写为OAC)组成,每一对象抽象组件向外提供相同的服务。参见图1,图中所示为本专利技术所涉及的数据库抽象层中的一对象抽象组件的组成示意图。根据底层关系数据库的数量,数据库抽象层包括若干对象抽象组件,每一对象抽象组件对应于一底层关系数据库。对象抽象组件主要由连接模块、对象集合模块、对象模块、对象属性模块、对象属性集合模块、类模块、类集合模块、类属性模块和类属性集合模块组成。连接模块的功能为实现应用层与数据库的连接,连接时不用区分数据库的类型。对象模块以数据库表中的每行数据为单位进行获取。对象集合模块将对象模块获取的各行数据进行集合。对象属性模块对数据库表中的每列对象属性进行获取,列对象属性如列名、数据类型、列值等。对象属性集合模块是将所有对象属性进行集合。这些模块用于应用层调用数据库抽象层时使用。类模块主要是表示数据库表,而类集合模块是将数据库中的多个表进行集合。类属性模块用来表示数据库表的列在应用层的含义。而类属性集合模块是将数据库表的多个列的含义进行集合。这些模块在操作用户进行建模时使用。应用系统中建立有许多模型化的对象,如用户、部门、角色、文档、邮件等。图2所示为应用层调用数据库抽象层来查询、设定用户情况的方法流程,具体步骤如下步骤1应用层与数据库抽象层中的对象抽象组件进行连接;步骤2通过与对象抽象组件的连接,应用层对一种对象进行查询,并将该种对象的信息全部返回应用层;步骤3应用层在数据库抽象层的对象抽象组件中获取该种对象的全部信息;步骤4逐一针对获取的每个对象,在对象抽象组件中获取该对象的属性信息;步骤5对象抽象组件返回该种对象的全部具体属性信息;步骤6应用层对查询返回的对象属性信息进行遍历;步骤7应用层根据对象的指令设定,对该种对象信息进行更新、删除操作;步骤8应用层关闭与对象抽象组件的连接。其中,步骤4又包括步骤4-1在对象抽象组件中获取与该对象相关的对象信息;步骤4-2根据该对象的对象信息,获取该对象所有的对象属性信息;步骤4-3获取该对象的关键属性信息。对于应用系统中的其它对象,如部门、角色、文档、邮件等,应用层调用数据库抽象层来查询或设定这些对象的流程与图2所示的流程同理。如图3所示为实施本专利技术所述方法的一实施例示意图,该实施例已在AVIDM专业版3.0版本中得到实现与应用。如图,应用层包括一数据库抽象层和PDM系统。PDM系统包括各种应用组件,如用户管理组件、权限管理组件等。数据库抽象层中包含三个对象抽象组件,每一对象抽象组件分别对应于底层的神舟OSCAR数据库、SQL Server数据库和Oracle数据库。虽然每种类型的数据库具有各自的连接方式,如神舟OSCAR数据库使用OSCAR ODBC连接方式进行连接,SQL Server数据库和Oracle数据库使用OLEDB连接方式进行连接,但在该实施例中,各对象抽象组件与底层数据库间通过共同的ADO接口进行访问。通过调用数据库抽象层中的对象抽象组件,PDM系统本文档来自技高网
...

【技术保护点】
一种应用层调用基于关系数据库的数据库抽象层的方法,其特征在于它包括如下步骤:步骤1:应用层与数据库抽象层中的对象抽象组件进行连接;步骤2:通过与对象抽象组件的连接,应用层对一种对象进行查询,并将该种对象的信息全部返回应用层; 步骤3:应用层在数据库抽象层的对象抽象组件中获取该种对象的全部信息;步骤4:逐一针对获取的每个对象,在对象抽象组件中获取该对象的属性信息;步骤5:对象抽象组件返回该种对象的全部具体属性信息;步骤6:应用层对查 询返回的对象属性信息进行遍历;步骤7:应用层根据对象的指令设定,对该种对象信息进行更新、删除操作;步骤8:应用层关闭与对象抽象组件的连接。

【技术特征摘要】

【专利技术属性】
技术研发人员:黄文左栾森
申请(专利权)人:北京神舟航天软件技术有限公司
类型:发明
国别省市:11[中国|北京]

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

1