CN100547591C - 应用层调用基于关系数据库的数据库抽象层的方法 - Google Patents
应用层调用基于关系数据库的数据库抽象层的方法 Download PDFInfo
- Publication number
- CN100547591C CN100547591C CNB2006101440610A CN200610144061A CN100547591C CN 100547591 C CN100547591 C CN 100547591C CN B2006101440610 A CNB2006101440610 A CN B2006101440610A CN 200610144061 A CN200610144061 A CN 200610144061A CN 100547591 C CN100547591 C CN 100547591C
- Authority
- CN
- China
- Prior art keywords
- application layer
- layer
- information
- database
- relational database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种应用层调用基于关系数据库的数据库抽象层的方法,包括步骤:应用层与对象抽象组件进行连接;应用层对所有用户进行查询,并将结果全部返回应用层;应用层在对象抽象组件中获取全部用户的信息;在对象抽象组件中,逐一对每个用户获取该用户的属性信息;对象抽象组件返回用户的具体属性信息;应用层对查询返回的结果遍历;根据用户指令,应用层对用户信息进行更新、删除;应用层关闭与对象抽象组件的连接。数据库抽象层将底层关系数据库完全屏蔽,用户可不必考虑底层各关系数据库间存在的差异,而直接以面向对象的方式对所有应用逻辑对象进行建模与操作。
Description
技术领域
本发明涉及关系数据库间的数据集成,特别涉及基于关系数据库的数据库抽象层的调用方法。
背景技术
目前的数据库管理系统可分为两种:面向对象的数据库管理系统和关系数据库管理系统。数据库管理系统用于将数据有效地存储于计算机内。
面向对象的数据库管理系统用于存储利用对象模型进行描述的数据。面向对象的数据库管理系统已提出很多年,但由于其的复杂性,人们对它的认识不一致,且开发过程中会遇到许多技术难题,所以目前市场上还没有一个通用的、成熟的产品出现,且近几年内也不会有太大的发展。
关系数据库管理系统是目前主流的数据库产品。关系数据库几乎统治着所有的操作系统平台上的数据管理领域。许多通用数据库操作标准及相关产品(如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系统可直接通过对象抽象组件进行数据库访问,可直接使用户以所认知的面向对象语义对所有应用逻辑对象进行建模与操作,而不必考虑对象所依赖的数据库表以及表之间的关系维护,避免了复杂的数据库操作,增强了PDM系统的适应性和可扩展性。
数据库抽象层对PDM系统提供的支持主要包括:
1)实现对象、类的语义(包括继承、多态、对象ID等)以及对象间三种关系(组成、关联、引用);
2)支持复杂数据类型,如一维数组、二维表;
3)丰富的对象查询功能;
4)支持对象权限控制,主要是对象级的ACL的支持;
5)支持对象版本化;
6)支持大对象数据存取,大对象数据主要为多媒体文件。
如图3,对应于底层不同的关系数据库,应用层建立有不同的对象抽象组件。对象抽象组件针对不同的关系数据库实现各自的数据库访问操作,所有对象抽象组件对外提供相同的ADO接口,使得数据库抽象层将底层关系数据库完全屏蔽,开发使用PDM系统时不必考虑底层各关系数据库间存在的差异,具有自适应关系数据库的作用。
Claims (2)
1、一种应用层调用基于关系数据库的数据库抽象层的方法,其特征在于它包括如下步骤:
步骤1:应用层与数据库抽象层中的对象抽象组件进行连接;
步骤2:通过与对象抽象组件的连接,应用层对一种对象进行查询,并将该种对象的信息全部返回应用层;
步骤3:应用层在数据库抽象层的对象抽象组件中获取该种对象的全部信息;
步骤4:逐一针对获取的每个对象,在对象抽象组件中获取该对象的属性信息;
步骤5:对象抽象组件返回该种对象的全部具体属性信息;
步骤6:应用层对查询返回的对象属性信息进行遍历;
步骤7:应用层根据对象的指令设定,对该种对象信息进行更新、删除操作;
步骤8:应用层关闭与对象抽象组件的连接;
上述的对象是指应用系统中模型化的对象。
2、如权利要求1所述的应用层调用基于关系数据库的数据库抽象层的方法,其特征在于:
步骤4包括:
步骤4-1:在对象抽象组件中获取与该对象相关的对象信息;
步骤4-2:根据该对象的对象信息,获取该对象所有的对象属性信息;
步骤4-3:获取该对象的关键属性信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101440610A CN100547591C (zh) | 2006-11-24 | 2006-11-24 | 应用层调用基于关系数据库的数据库抽象层的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101440610A CN100547591C (zh) | 2006-11-24 | 2006-11-24 | 应用层调用基于关系数据库的数据库抽象层的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1952940A CN1952940A (zh) | 2007-04-25 |
CN100547591C true CN100547591C (zh) | 2009-10-07 |
Family
ID=38059281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101440610A Active CN100547591C (zh) | 2006-11-24 | 2006-11-24 | 应用层调用基于关系数据库的数据库抽象层的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100547591C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697166B (zh) * | 2009-10-28 | 2011-07-27 | 浪潮电子信息产业股份有限公司 | 一种加速异构平台数据整合的方法 |
CN102938784A (zh) * | 2012-11-06 | 2013-02-20 | 无锡江南计算技术研究所 | 应用于分布式存储系统中的数据存储方法和系统 |
CN104834742A (zh) * | 2015-05-20 | 2015-08-12 | 东华大学 | 一种基于sca的etl架构管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5263167A (en) * | 1991-11-22 | 1993-11-16 | International Business Machines Corporation | User interface for a relational database using a task object for defining search queries in response to a profile object which describes user proficiency |
US6587856B1 (en) * | 1998-12-07 | 2003-07-01 | Oracle International Corporation | Method and system for representing and accessing object-oriented data in a relational database system |
CN1647080A (zh) * | 2002-04-25 | 2005-07-27 | 国际商业机器公司 | 多数据库环境中存取数据的方法、计算机程序和计算机 |
-
2006
- 2006-11-24 CN CNB2006101440610A patent/CN100547591C/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5263167A (en) * | 1991-11-22 | 1993-11-16 | International Business Machines Corporation | User interface for a relational database using a task object for defining search queries in response to a profile object which describes user proficiency |
US6587856B1 (en) * | 1998-12-07 | 2003-07-01 | Oracle International Corporation | Method and system for representing and accessing object-oriented data in a relational database system |
CN1647080A (zh) * | 2002-04-25 | 2005-07-27 | 国际商业机器公司 | 多数据库环境中存取数据的方法、计算机程序和计算机 |
Non-Patent Citations (1)
Title |
---|
面向对象数据库的查询转换成关系数据库的查询. 王学荣,曾晓勤.计算机工程与应用,第20期. 2002 * |
Also Published As
Publication number | Publication date |
---|---|
CN1952940A (zh) | 2007-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090012983A1 (en) | System and method for federated member-based data integration and reporting | |
US7313561B2 (en) | Model definition schema | |
AU2003231931B2 (en) | System and method for integrating, managing and coordinating customer activities | |
US9152690B2 (en) | Mapping non-relational database objects into a relational database model | |
US20120095957A1 (en) | Component Based Approach to Building Data Integration Tools | |
JP2006244498A (ja) | オブジェクトリレーショナルデータ用のデータモデル | |
CN101515308A (zh) | 汽车产品数据管理系统及其协同设计方法 | |
JP2013531844A (ja) | データマート自動化 | |
EP1457878A2 (en) | Automatic generation of an object model from a dimensional model | |
EP2577508B1 (en) | Systems and methods for providing multilingual support for data used with a business intelligence server | |
CN102902777A (zh) | 跨数据源查询装置和跨数据源查询方法 | |
CN102567820A (zh) | 动态新闻发布和管理系统 | |
CN104298779A (zh) | 海量数据加工的处理方法和系统 | |
CN109947741B (zh) | 一种物项属性参数的建模和存储方法 | |
CN102902811A (zh) | 一种快速生成树结构的数据库设计方法 | |
CN100547591C (zh) | 应用层调用基于关系数据库的数据库抽象层的方法 | |
Ling et al. | NF-NR: A practical normal form for nested relations | |
Yin et al. | Relational database operations modeling with UML | |
Fong et al. | Architecture of a universal database: a frame model approach | |
Hsu et al. | Metadatabase solutions for enterprise information integration problems | |
CN105447057A (zh) | 基于业务逻辑模型的模型变换方法及系统 | |
Sen et al. | Enterprise modeling for database specification and design | |
Chang et al. | Dynamic Data Mart for Business Intelligence | |
Wei et al. | Mapping technique of STEP data model in relational database based on data storage | |
CN114168570A (zh) | 一种基于石油业务的业务建模工具 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100036 Beijing city Haidian District Fuchengmen Road, building 17 Yuhui Patentee after: Beijing Shenzhou Aerospace Software Technology Co.,Ltd. Address before: 100036 Beijing city Haidian District Fuchengmen Road, building 17 Yuhui Patentee before: BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co.,Ltd. |