[发明专利]基于驱动层实现的异构数据库保留字兼容方法及系统无效
申请号: | 201210326297.1 | 申请日: | 2012-09-05 |
公开(公告)号: | CN102867045A | 公开(公告)日: | 2013-01-09 |
发明(设计)人: | 孙峰;余院兰 | 申请(专利权)人: | 武汉达梦数据库有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/445;G06F17/27 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智 |
地址: | 430073 湖北省武汉市东*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 驱动 实现 数据库 保留 兼容 方法 系统 | ||
技术领域
本发明属于计算机中的数据库技术领域,具体涉及一种基于驱动层实现的异构数据库保留字兼容方法及系统,用于跨异构数据库的移植服务。
背景技术
数据库针对应用程序进行兼容的领域,在当前大量的现有旧信息系统升级改造项目中非常普遍。在这些项目中开发商要求国产数据库厂商保证应用程序不改一行代码,实现从旧数据库向新的其它厂商数据库的移植。但是由于国外数据库厂商拥有各自市场的稳定的市场范围,因此在异构数据库产品兼容领域没有强烈的产品需求,DB2是近两年才开始走Oracle兼容的路线,SQLServer、Oracle等公司基本上没有宣传过异构数据库兼容的特性。而作为国产数据库产品提供商,需要抢占国外数据库产品的市场份额,在这样的形式下,如何能简单易行的兼容国外数据库产品及其上层应用,就成为非常重要的研究领域。
在应用程序不改一行代码,实现保留字兼容问题上,目前很多国产数据库厂商无法解决,其中原因之一是,应用系统中的部分数据库对象名的名字,在数据库中是属于保留字,如果要不变换对象名,必须对保留字对象名加双引号作为定界标识符出现,但是这样就要求代码进行修改,因此无论是加引号还是改对象名,都无法避免更改应用程序代码。
发明内容
为了解决以上问题,本发明提出一种基于驱动层实现的异构数据库保留字兼容方法,在不改变应用程序的条件下实现应用程序从源数据库向不同的异构数据库的移植。
本发明还提供了实现上述方法的系统。
异构数据库保留字兼容方法,预先在驱动层加载保留字配置文件,保留字配置文件中存储有属于目标数据库但不属于源数据库的保留字,该方法具体为:
应用程序执行SQL语句;
驱动层对SQL语句进行分析,生成具有语义的语法树;
依据保留字配置文件对语法树中的对象名进行保留字识别,并采用目标数据库指定的保留字符号对其进行标记;
依据保留字标记后的语法树生成新的SQL语句;
将新的SQL语句发送给目标数据库。
异构数据库保留字兼容系统,该系统安装于驱动层,包括:
保留字字典,用于存储保留字配置文件,保留字配置文件中存储有属于目标数据库但不属于源数据库的保留字;
语法分析器,用于对应用程序执行的SQL语句进行分析,生成具有语义的语法树;
保留字识别器,用于依据保留字配置文件对语法树中的对象名进行保留字识别,采用目标数据库指定的保留字符号对其进行标记;
SQL转换器,用于依据保留字标记后的语法树生成新的SQL语句,将新的SQL语句发送给目标数据库。
本发明的有益效果体现在:
本发明实现目标系统的程序不改一行代码,完成目标系统从源数据库向不同的异构数据库移植的目的,从而形成一个轻巧的在驱动层提升异构数据库兼容性的方案,与传统服务器层进行兼容支持相比,在驱动层支持兼容性具有简单灵活的技术特点,从而降低系统风险和移植成本。
附图说明
图1为本发明方法流程图。
图2为本发明系统结构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步的描述,但该实施方式不应理解为对本发明的限制。
驱动层就是介于服务器和应用程序之间的程序,用于在服务器之前处理应用程序的请求,这里不限制其具体的实现方式。预先在驱动层设置一个保留字配置文件,驱动层启动过程对保留字配置文件进行加载,其中为了便于快速查找保留字。在驱动层,保留字字典定义为一个HASH表,保留字作为HASH表中的元素,每个保留字keyword用一个结构存放在HASH表中,其结构定义如表1所示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉达梦数据库有限公司,未经武汉达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210326297.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种BN型离子门及其制作方法
- 下一篇:一种多功能传送架调节器