基于驱动层实现的异构数据库保留字兼容方法及系统的制作方法

文档序号:6376433阅读:287来源:国知局
专利名称:基于驱动层实现的异构数据库保留字兼容方法及系统的制作方法
技术领域
本发明属于计算机中的数据库技术领域,具体涉及ー种基于驱动层实现的异构数据库保留字兼容方法及系统,用于跨异构数据库的移植服务。
背景技术
数据库针对应用程序进行兼容的领域,在当前大量的现有旧信息系统升级改造项目中非常普遍。在这些项目中开发商要求国产数据库厂商保证应用程序不改一行代码,实现从旧数据库向新的其它厂商数据库的移植。但是由于国外数据库厂商拥有各自市场的稳定的市场范围,因此在异构数据库产品兼容领域没有強烈的产品需求,DB2是近两年才开始走Oracle兼容的路线,SQLServer、Oracle等公司基本上没有宣传过异构数据库兼容的特性。而作为国产数据库产品提供商,需要抢占国外数据库产品的市场份额,在这样的形式 下,如何能简单易行的兼容国外数据库产品及其上层应用,就成为非常重要的研究領域。在应用程序不改一行代码,实现保留字兼容问题上,目前很多国产数据库厂商无法解决,其中原因之ー是,应用系统中的部分数据库对象名的名字,在数据库中是属于保留字,如果要不变换对象名,必须对保留字对象名加双引号作为定界标识符出现,但是这样就要求代码进行修改,因此无论是加引号还是改对象名,都无法避免更改应用程序代码。

发明内容
为了解决以上问题,本发明提出ー种基于驱动层实现的异构数据库保留字兼容方法,在不改变应用程序的条件下实现应用程序从源数据库向不同的异构数据库的移植。本发明还提供了实现上述方法的系统。异构数据库保留字兼容方法,预先在驱动层加载保留字配置文件,保留字配置文件中存储有属于目标数据库但不属于源数据库的保留字,该方法具体为应用程序执行SQL语句;驱动层对SQL语句进行分析,生成具有语义的语法树;依据保留字配置文件对语法树中的对象名进行保留字识别,并采用目标数据库指定的保留字符号对其进行标记;依据保留字标记后的语法树生成新的SQL语句;将新的SQL语句发送给目标数据库。异构数据库保留字兼容系统,该系统安装于驱动层,包括保留字字典,用于存储保留字配置文件,保留字配置文件中存储有属于目标数据库但不属于源数据库的保留字;语法分析器,用于对应用程序执行的SQL语句进行分析,生成具有语义的语法树;保留字识别器,用于依据保留字配置文件对语法树中的对象名进行保留字识别,采用目标数据库指定的保留字符号对其进行标记;SQL转换器,用于依据保留字标记后的语法树生成新的SQL语句,将新的SQL语句发送给目标数据库。本发明的有益效果体现在本发明实现目标系统的程序不改一行代码,完成目标系统从源数据库向不同的异构数据库移植的目的,从而形成一个轻巧的在驱动层提升异构数据库兼容性的方案,与传统服务器层进行兼容支持相比,在驱动层支持兼容性具有简单灵活的技术特点,从而降低系统风险和移植成本。


图I为本发明方法流程图。图2为本发明系统结构示意图。
具体实施例方式下面结合附图和具体实施方式
对本发明作进ー步的描述,但该实施方式不应理解为对本发明的限制。驱动层就是介于服务器和应用程序之间的程序,用于在服务器之前处理应用程序的请求,这里不限制其具体的实现方式。预先在驱动层设置ー个保留字配置文件,驱动层启动过程对保留字配置文件进行加载,其中为了便于快速查找保留字。在驱动层,保留字字典定义为ー个HASH表,保留字作为HASH表中的元素,每个保留字keyword用一个结构存放在HASH表中,其结构定义如表I所示。
权利要求
1.异构数据库保留字兼容方法,预先在驱动层加载保留字配置文件,保留字配置文件中存储有属于目标数据库但不属于源数据库的保留字,该方法具体为 应用程序执行SQL语句; 驱动层对SQL语句进行分析,生成具有语义的语法树; 依据保留字配置文件对语法树中的对象名进行保留字识别,并采用目标数据库指定的保留字符号对其进行标记; 依据保留字标记后的语法树生成新的SQL语句; 将新的SQL语句发送给目标数据库。
2.异构数据库保留字兼容系统,该系统安装于驱动层,包括 保留字字典,用于存储保留字配置文件,保留字配置文件中存储有属于目标数据库但不属于源数据库的保留字; 语法分析器,用于对应用程序执行的SQL语句进行分析,生成具有语义的语法树; 保留字识别器,用于依据保留字配置文件对语法树中的对象名进行保留字识别,采用目标数据库指定的保留字符号对其进行标记; SQL转换器,用于依据保留字标记后的语法树生成新的SQL语句,将新的SQL语句发送给目标数据库。
全文摘要
本发明公开了一种异构数据库保留字兼容方法,预先在驱动层加载存储有属于目标数据库但不属于源数库的保留字配置文件,该方法具体为应用程序执行SQL语句;驱动层对SQL语句进行分析,生成具有语义的语法树;依据保留字配置文件对语法树中的对象名进行保留字识别,并采用目标数据库的保留字符号对其进行标记;依据保留字标记后的语法树生成新的SQL语句;将新的SQL语句发送给目标数据库。本发明还提供实现上述方法的系统。本发明能够不改变应用程序代码,实现从源数据库向不同的异构数据库移植的目的,与传统服务器层进行兼容支持相比,在驱动层支持兼容性具有简单灵活的技术特点,降低系统风险和移植成本。
文档编号G06F17/27GK102867045SQ20121032629
公开日2013年1月9日 申请日期2012年9月5日 优先权日2012年9月5日
发明者孙峰, 余院兰 申请人:武汉达梦数据库有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1