[发明专利]一种在异构关系型数据库中实现事务处理的方法有效
申请号: | 201310631816.X | 申请日: | 2013-11-29 |
公开(公告)号: | CN103761140B | 公开(公告)日: | 2018-04-13 |
发明(设计)人: | 曹仁杰 | 申请(专利权)人: | 北京中启智源数字信息技术有限责任公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F17/30 |
代理公司: | 北京汲智翼成知识产权代理事务所(普通合伙)11381 | 代理人: | 陈曦,贾兴昌 |
地址: | 100089 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 关系 数据库 实现 事务处理 方法 | ||
技术领域
本发明涉及一种在异构关系型数据库中实现事务处理的方法,属于数据库管理技术领域。
背景技术
关系型数据库(简称数据库),是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。目前,比较流行的关系型数据库产品有ORACLE、SYBASE、MySQL、ACCESS等。各种数据库产品以自己特有的功能,在数据库市场上占有一席之地。
数据库中的事务是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性要求。
在数据库中进行事务处理,尤其是在网上购物的一次交易过程中,满足事务的ACID属性显得尤为重要。在正常情况下,付款操作顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行账户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,否则,数据库的信息将会一片混乱而不可预测。
目前随着全球企业系统的扩大,数据的总容量成倍增长,在这种情况下,数据存放分布越来越广,甚至同一个系统中的数据被放到了不同的数据库中,而不同的数据库有各自的数据访问方法和方式,异构数据库之间不能直接进行交互,这就给数据的操作和访问带来了极大地不便。除此之外,为了保证异构数据库中数据操作的准确性,异构数据库下的事务处理问题,也越来越受到人们的重视。
为解决上述问题,在公开号为CN102314375A的中国发明专利申请中,公开了一种异构数据库存储统一接口和数据库访问方法。该接口主要包括异构数据库驱动管理单元、异构数据库连接池、异构数据库操作单元、异构数据库连接配置单元和统一对外API单元。通过该异构数据库存储统一接口,多个应用进程可以同时对不同结构的数据库进行访问,而无需对数据库和程序进行修改,应用进程无需了解数据库是何种数据库,使得应用程序的设计可以完全抛开不同数据库处理设计,达到程序设计与数据库无关的目的,所有数据库的操作API相同,简化了应用代码,方便维护、实现和数据的移植与变动。
但是,对于异构数据库下的事务处理问题,现有技术中并没有提供有效的解决方案。
发明内容
本发明所要解决的技术问题在于提供一种在异构关系型数据库中实现事务处理的方法。
为实现上述的发明目的,本发明采用下述的技术方案:
一种在异构关系型数据库中实现事务处理的方法,包括如下步骤:首先设置一个数据库工厂,提取异构数据库的数据库类型和数据库连接串信息,应用进程与数据库处理统一接口建立连接并将数据请求发送到数据库处理统一接口的数据分析单元,所述数据分析单元对数据进行分析处理,提取出数据操作涉及的数据库类型;在数据库工厂中对这些类型的数据库进行查找,并使其与数据库处理统一接口建立连接;数据库处理统一接口接收应用进程发送过来的SQL语句,并对其进行分组处理,执行SQL数组中的SQL语句,将执行结果保存在存储单元中,当SQL数组中的SQL语句全部执行成功,把保存在存储单元中的全部结果一起提交,并关闭涉及事务的多个数据库。
其中较优地,当执行SQL语句时出现执行错误,对错误进行标记,通知存储单元SQL语句执行出错,存储单元将执行结果清空,所有已经执行过标准SQL语句的数据库回滚到原始状态,并关闭涉及事务的多个数据库。
其中较优地,所述数据库处理统一接口还包括程序处理单元;
所述程序处理单元将应用程序传送来的SQL语句进行分析处理,存入SQL数组中,所述SQL数组为二维数组,用来存储数据库类型编号以及SQL语句的操作类型。
其中较优地,在存储过程中,涉及相同数据库类型的SQL语句操作存储在相邻的SQL数组单元;
在执行过程中,存储在相邻的SQL数组单元的SQL语句使用同一数据库连接对同类型的数据库进行访问。
其中较优地,所述数据库工厂设置有异构数据库处理单元;
所述异构数据库处理单元提取数据库工厂内异构数据库的数据库类型和数据库连接串信息,通过配置键值对,将连接串的信息隐藏于键值对中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中启智源数字信息技术有限责任公司,未经北京中启智源数字信息技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310631816.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:安全阀用活塞结构
- 下一篇:太阳能晒盐并分离淡水的温室大棚