CN101604237A - 一种访问通用数据库的系统 - Google Patents
一种访问通用数据库的系统 Download PDFInfo
- Publication number
- CN101604237A CN101604237A CNA200810110808XA CN200810110808A CN101604237A CN 101604237 A CN101604237 A CN 101604237A CN A200810110808X A CNA200810110808X A CN A200810110808XA CN 200810110808 A CN200810110808 A CN 200810110808A CN 101604237 A CN101604237 A CN 101604237A
- Authority
- CN
- China
- Prior art keywords
- database
- job step
- module
- capability set
- interpreter
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种访问通用数据库的系统,包括:数据库适配器、公共能力集模块、作业步骤解释器、作业步骤描述语言模块,其中,数据库适配器,用于对各种数据库的访问,并提供对各种数据库类型操作的适配与转化;公共能力集模块,用于对要发送到所述数据库适配器访问所述各种数据库,提供基础支持;作业步骤解释器,用于对要发送到公共能力集模块执行的操作进行解释;作业步骤描述语言模块,用于对要发送到作业步骤解释器执行的操作进行描述。本发明的优点就是面向上层应用提供的数据库访问的通用性。通过模块化设计,自动的适用于不同的数据库。
Description
技术领域
本发明涉及计算机数据库领域,更具体地说,涉及一种具备访问通用数据库的系统。
背景技术
计算机数据库技术是信息系统的核心和基础,虽然从产生至今只有40多年的历史,但已经得到了迅猛的发展,并日益成熟,数据库系统已经成为计算机应用中不可缺少的部分。
当前数据库技术基本上都采用了关系型数据库技术。多个数据库厂商分别开发了基于关系型数据库技术的商用数据库,最常见的包括:Sybase、Oracle、Informix、SQL Server、MySql等等。上述的多种数据库都到了广泛的应用。
虽然相关的国际标准化组织包括ANSI、ISO等为数据库建立统一的访问接口与标准做出了很大的努力,但是当前的现状是,各种数据库之间并未实现完全的互通,当应用需要支持不同的数据库时,当数据库中的数据需要在多种数据库之间迁移时,都需要应用程序花费额外的努力,而这努力对于实现应用程序的功能逻辑并不是必须的,而是同一个操作逻辑在不同数据库中的不同实现。例如:
1、不同的数据库,实现数据导入导出的方法不一样。在Oracle数据库中,使用exp/imp命令进行数据的导入导出,而在informix和Sybase中则分别使用了load/unload和bcp命令进行数据的导入导出。具体地,Sybase则使用bcp命令实现了数据的导入导出。
2、不同的数据库,支持的数据类型不一样。对于同一个数据类型,在不同的数据库中也可能有不同的名称。Sybase中使用datetime来表示时间类型,而Oracle中用date来表示时间类型。
上面只是列出了两个例子,实际上各个数据库之间的区别远远不止这些。这种区别给架构于数据库之上的应用带来了巨大的影响。极大的增加了该类应用的开发和维护成本。
综上所述,针对应用程序访问不同的数据库时,需要编写不同的代码,从而导致在不同的数据库间代码移植困难、为不同的数据库开发和维护同一个应用的多个版本的现状。因此,为了使得架构于数据库之上的应用程序能够专注于自身的业务逻辑,而不用花费不必要的精力用于处理不同数据库之间的差异;如何实现上述这些问题,就成为亟待解决的技术问题。
发明内容
本发明所解决的技术问题在于提供一种访问通用数据库的系统,以解决现有技术中没有一种系统能够屏蔽各种不同数据库差异的、具备通用的数据库访问功能的问题。
为了实现上述问题,本发明提供了一种访问通用数据库的系统,其特征在于,包括:数据库适配器、公共能力集模块、作业步骤解释器、作业步骤描述语言模块,其中,
所述数据库适配器,用于对各种数据库的访问,并提供对所述各种数据库类型操作的适配与转化;
所述公共能力集模块,用于对要发送到所述数据库适配器访问所述各种数据库,提供基础支持;
所述作业步骤解释器,用于对要发送到所述公共能力集模块执行的操作进行解释;
所述作业步骤描述语言模块,用于对要发送到所述作业步骤解释器执行的操作进行描述。
本发明所述的系统,其中,所述数据库适配器位于所述系统的架构中的最底层。
其中,所述公共能力集模块,至少包括模式管理功能模块和数据管理功能模块,其中,
所述模式管理功能模块,用于对数据库的创建、删除、修改、查询,数据库表的创建、删除、修改、查询;
所述数据管理功能模块,用于对数据库中数据的导入、导出,数据的插入、删除、修改、查询。
其中,所述作业步骤解释器,进一步用于对要发送到所述公共能力集模块执行的操作中的每一个作业步骤进行解释,按照应用逻辑的要求对所述数据库进行一系列的操作,并将所述作业步骤的相关信息发送给所述公共能力集模块。
其中,所述公共能力集模块,进一步用于接收所述作业步骤解释器发送过来的相关信息,判断其是否能提供相应的数据库访问能力基础支持,如能则将处理后的结果发送给所述数据库适配器。
其中,所述数据库适配器,进一步用于接收所述公共能力集模块发送过来的数据访问请求,根据操作对象所在的不同的数据库,分别将这些访问请求解释为适合目标数据库类型的访问请求,并予以执行。
其中,所述作业步骤描述语言模块,进一步用于对要发送到所述作业步骤解释器执行的每一个作业步骤的操作进行描述。
与现有技术相比较,本发明的系统的优点就是面向上层应用提供的数据库访问的通用性。通过模块化设计,自动的适用于不同的数据库。从而避免了在不同的数据库之间开发和维护同一个应用的多个版本的情况,从而提高了开发效率,降低了开发和维护成本。
附图说明
图1是本发明所述的访问通用数据库的系统结构图。
具体实施方式
本发明在这里提供了一种访问通用数据库的系统,以解决现有技术中没有一种系统能够屏蔽各种不同数据库差异的、具备通用的数据库访问功能的问题。以下对具体实施方式进行详细描述,但不作为对本发明的限定。
本发明设计了一个能够屏蔽各种不同数据库差异的、具备通用的数据库访问功能的系统。在这个系统中包含了如下的功能模块,如图1所示:
DBA(数据库适配器,Database Adapter)101,该模块的作用为通用数据库访问屏蔽各种数据库的差异,从而使得上层的其它模块不用关心不同数据库之间的差异。本模块提供了不同数据库类型操作功能的适配与转化,并提供对这些数据库的访问能力。该模块位于整个系统的架构中的最底层。
CCS(公共能力集模块,Common Capability Set)102,该模块的作用为通用数据库访问提供所有必须的基础功能,该基础功能为所有基于本系统的数据库访问功能提供能力支撑。该模块在架构中位于DBA 101的上层,位于JSI(作业步骤解释器,Job Step Interpreter)103的下层。这些功能可以但不限于此,具体可以包括功能:
1)模式管理功能:该功能包括数据库的创建、删除、修改、查询,数据库表的创建、删除、修改、查询等,该功能对数据库的结构产生影响。
2)数据管理功能:该功能包括数据的导入、导出,数据的插入、删除、修改、查询等,该功能对数据库中的数据产生影响。
3)其它的数据库相关管理功能,上面只是列举了系统应该拥有的部分基础功能,该公共能力集模块是可以扩展的,其它基础功能也可以根据需要加入到该公共能力集模块中。上述这些功能可作为模块结构设置于公共能力集模块中。
JSI(作业步骤解释器,Job Step Interpreter)103,该模块的作用为解释每一个作业步骤并执行,将一个完整的数据访问操作看成一个作业,该作业由多个作业步骤组成,多个作业步骤描述了一个完整的数据访问操作。每一个作业步骤的执行都需要CCS(公共能力集模块,Common Capability Set)102所提供的基础功能的支持才能完成。
JSDL(作业步骤描述语言模块,Job Step Description Language)104,该模块的作用为描述每一个作业步骤,而这些步骤的解释执行,将由JSI来完成。
下面结合附图1,以一个具体的数据访问操作为例,详细介绍本发明中所述的架构的工作过程。
步骤1,对于一个新的数据访问操作,使用JSDL模块104编写对应的操作步骤,这些步骤所包含的内容由具体的应用逻辑来决定,JSDL模块104只是提供了描述这些应用逻辑的手段,比如可以包含这样的操作步骤:首先删除数据库中原有数据,再往数据库中插入一些数据等等;
使用JSDL模块104,编写作业步骤如下:
数据库类型=SYBASE
作业步骤总数=2
作业步骤1=删除表A数据
作业步骤2=插入表B数据
步骤2,JSI模块103读取数据构造任务对应的操作步骤,并解释执行,最终按照应用逻辑的要求正确的对数据库进行一系列的操作;JSI模块103读入JSDL文件,并依次对数据删除和数据插入操作进行解释,并将这些作业步骤的相关信息发送到CCS模块102;
步骤3,CCS模块102接收到JSI模块103发送过来的数据访问请求,判断CCS模块102自身是否能提供相应的数据库访问能力,如果CCS模块102具备该访问请求要求的能力,那么CCS模块102就接收该数据访问请求,处理后发送到DBA模块101,请求DBA模块101完成该访问操作;
步骤4,DBA模块101接收到CCS模块102发送过来的数据访问请求,根据操作对象所在的不同的数据库,分别将这些访问请求解释为适合目标数据库类型的访问请求,并予以执行。例如,最终完成整个数据访问操作:删除表A数据,并插入表B数据。
以上对本发明进行了一个总体的描述,与传统的数据访问方法相比,本发明的系统的优点就是面向上层应用提供的数据库访问的通用性。通过模块化设计,将整个系统分成了DBA等多个模块,向下屏蔽了不同的数据库的差异,并面向上层的应用逻辑提供了独立于不同数据库的JSDL模块104。因此,使用JSDL模块104进行描述的数据访问任务可以通过DBA模块101的适配作用,自动的适用于不同的数据库。从而避免了在不同的数据库之间开发和维护同一个应用的多个版本的情况,从而提高了开发效率,降低了开发和维护成本。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (7)
1、一种访问通用数据库的系统,其特征在于,包括:数据库适配器、公共能力集模块、作业步骤解释器、作业步骤描述语言模块,其中,
所述数据库适配器,用于对各种数据库的访问,并提供对所述各种数据库类型操作的适配与转化;
所述公共能力集模块,用于对要发送到所述数据库适配器访问所述各种数据库,提供基础支持;
所述作业步骤解释器,用于对要发送到所述公共能力集模块执行的操作进行解释;
所述作业步骤描述语言模块,用于对要发送到所述作业步骤解释器执行的操作进行描述。
2、如权利要求1所述的系统,其特征在于,所述数据库适配器位于所述系统的架构中的最底层。
3、如权利要求1所述的系统,其特征在于,所述公共能力集模块,至少包括模式管理功能模块和数据管理功能模块,其中,
所述模式管理功能模块,用于对数据库的创建、删除、修改、查询,数据库表的创建、删除、修改、查询;
所述数据管理功能模块,用于对数据库中数据的导入、导出,数据的插入、删除、修改、查询。
4、如权利要求1所述的系统,其特征在于,所述作业步骤解释器,进一步用于对要发送到所述公共能力集模块执行的操作中的每一个作业步骤进行解释,按照应用逻辑的要求对所述数据库进行一系列的操作,并将所述作业步骤的相关信息发送给所述公共能力集模块。
5、如权利要求4所述的系统,其特征在于,所述公共能力集模块,进一步用于接收所述作业步骤解释器发送过来的相关信息,判断其是否能提供相应的数据库访问能力基础支持,如能则将处理后的结果发送给所述数据库适配器。
6、如权利要求5所述的系统,其特征在于,所述数据库适配器,进一步用于接收所述公共能力集模块发送过来的数据访问请求,根据操作对象所在的不同的数据库,分别将这些访问请求解释为适合目标数据库类型的访问请求,并予以执行。
7、如权利要求4所述的系统,其特征在于,所述作业步骤描述语言模块,进一步用于对要发送到所述作业步骤解释器执行的每一个作业步骤的操作进行描述。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810110808XA CN101604237A (zh) | 2008-06-10 | 2008-06-10 | 一种访问通用数据库的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810110808XA CN101604237A (zh) | 2008-06-10 | 2008-06-10 | 一种访问通用数据库的系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101604237A true CN101604237A (zh) | 2009-12-16 |
Family
ID=41469980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200810110808XA Pending CN101604237A (zh) | 2008-06-10 | 2008-06-10 | 一种访问通用数据库的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101604237A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446289A (zh) * | 2017-09-26 | 2018-08-24 | 北京中安智达科技有限公司 | 一种支持异构数据库的数据检索方法 |
US11256709B2 (en) | 2019-08-15 | 2022-02-22 | Clinicomp International, Inc. | Method and system for adapting programs for interoperability and adapters therefor |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904885A (zh) * | 2005-07-29 | 2007-01-31 | 北京航空航天大学 | 数据库适配器 |
CN101158975A (zh) * | 2007-11-21 | 2008-04-09 | 金蝶软件(中国)有限公司 | 一种访问不同类型数据库的方法和系统 |
-
2008
- 2008-06-10 CN CNA200810110808XA patent/CN101604237A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904885A (zh) * | 2005-07-29 | 2007-01-31 | 北京航空航天大学 | 数据库适配器 |
CN101158975A (zh) * | 2007-11-21 | 2008-04-09 | 金蝶软件(中国)有限公司 | 一种访问不同类型数据库的方法和系统 |
Non-Patent Citations (1)
Title |
---|
蒋明亮等: "基于OGSA-DAI的数据集成模型研究", 《微计算机信息》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446289A (zh) * | 2017-09-26 | 2018-08-24 | 北京中安智达科技有限公司 | 一种支持异构数据库的数据检索方法 |
US11256709B2 (en) | 2019-08-15 | 2022-02-22 | Clinicomp International, Inc. | Method and system for adapting programs for interoperability and adapters therefor |
US11714822B2 (en) | 2019-08-15 | 2023-08-01 | Clinicomp International, Inc. | Method and system for adapting programs for interoperability and adapters therefor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101499069B (zh) | 内存数据库文件的更新方法及更新装置 | |
US7096231B2 (en) | Export engine which builds relational database directly from object model | |
CN100388675C (zh) | 一种网管系统中实现对前台数据配置的方法 | |
CN107463637A (zh) | 一种分布式NewSQL数据库系统和数据储存方法 | |
US20060224626A1 (en) | Versioned file group repository | |
CN102236672A (zh) | 一种数据导入方法及装置 | |
CN105069033A (zh) | 一种创建数据库表模型的方法及装置 | |
CN107545015B (zh) | 一种查询故障的处理方法及处理装置 | |
CN106155775B (zh) | 消息处理方法、设备及系统 | |
CN103218402A (zh) | 通用的数据库数据结构与数据迁移系统及其方法 | |
CN100392651C (zh) | 一种实时内存数据库通用约束的实现方法 | |
CN107977446A (zh) | 一种基于数据分区的内存网格数据加载方法 | |
JP2017534986A (ja) | オンライン・スキームおよびデーター変換 | |
CN106095678A (zh) | 用于Windows平台下数据库业务操作的自动化结果检查方法 | |
CN102073702A (zh) | 一种人力资源管理信息系统的人员信息动态扩展的实现方法 | |
CN102663020A (zh) | 一种cdc数据分发方法和装置 | |
CN111181935A (zh) | 在ad域安全组中批量添加与定时删除域用户的方法 | |
EP2722774B1 (en) | Long term archiving of data in a MES system | |
CN103248522A (zh) | 一种性能数据的上报方法及装置 | |
CN101604237A (zh) | 一种访问通用数据库的系统 | |
CN103631831B (zh) | 一种数据备份方法及装置 | |
CN106844497A (zh) | 一种数据库代码的检查装置和方法 | |
CN111209652B (zh) | 一种电力系统静态设备模型时序构建方法及装置 | |
CN112948359A (zh) | 一种基于数据库分库分表的不停机客户数据迁移方法 | |
CN102945264A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20091216 |