数据库脚本通用化实现系统和方法

文档序号:6570904阅读:232来源:国知局
专利名称:数据库脚本通用化实现系统和方法
技术领域
本发明涉及计算机数据库领域,尤其涉及一种数据库脚本通用 化实现系统和方法。
背景技术
本发明涉及计算机数据库系统领域,尤其是支持多种数据库系 统的计算才几应用系统领域,它提供了 一种只编写与维护 一套数据库 脚本却同时支持多种数据库系统的方法。开发一套数据库应用软件系统,首先要选择一种数据库系统,比如ORACLE、 SQLSERVER等等,然后通过写数据库脚本定义一 套应用数据库。在不同情况、环境下, 一套应用软件需要支持多种 数据库系统,而每种数据库系统的脚本语言语法是不同的,尤其对 于存储过程、触发器的语法差异很大,由此决定了数据库脚本只能 依附于具体数据库系统。当今计算机领域,支持多种数据库系统意 味着完成编写多种专用数据库脚本。对于支持多种数据库系统的大型计算机应用软件系统,编写与 维护一套数据库脚本的代价巨大,可以想到,同时编写与维护多套 不同种数据库脚本代价是非常大的。所以,希望能够提供一种只编写一个数据库脚本但可以用于多 种类型的^:据库中的方法。发明内容针对以上的 一个或多个问题,本发明 >提供了 一种数据库脚本通用4乜实^L系统和方法,能够只编写与维护一套凄H居库脒p本在夬支4寺多 种数据库,降低了开发成本并节省了维护时间,提高了开发效率。本发明的数据库脚本通用化实现系统包括数据库脚本分析装置,用于对至少一种类型的专用数据库脚本进行语法分析;标记语言形成装置,用于根据语法分析结果,形成标记语言;以及脚本解析装置,用于根据至少一种数据库系统的类型和标记语言将使用标记i吾言编写的凄t据库肚卩本分别解析成至少 一 种It据库系统专用的 数据库脚本。上述的数据库脚本分析装置包括语法分析单元,用于根据至 少一种类型的数据库脚本分析数据库脚本的语法,按照数据库种类 列举所有语法并标明每种语法相关的属性;以及语法标记单元,用于将语法功能相同且语法相关属性相同的语法标记为A类语法,将 语法功能相同且语法相关属性不同的语法标记为B类语法,将语法 功能不同的i吾法标i己为C类i吾法。上述的标记语言形成装置根据分类的语法和语法相关属性形 成i吾法标i己和标"i己属性以形成标i己i吾言,其中,每种"i吾法对应于一 纟且才示"i己和才示^己属'性。上述的脚本解析装置包括凄t据库脚本保存单元,用于存储用 标记语言编写的数据库脚本;提取单元,用于提取用标记语言编写 的凄t据库脚本中的语法标记和标记属性值,并将语法标记和标记属 性至映射成对应的语法标记结构链表;以及脚本解析单元,用于根 据至少 一 种类型数据库的语法解析语法标记结构链表中的语法标记,以生成至少一种类型数据库专用的数据库脚本。本发明的数据库脚本通用化实现方法包括以下步骤步骤 S202,通过数据库脚本分析装置对至少一种类型的专用数据库脚本 进行语法分析;步骤S204,根据语法分析结果通过标记语言形成装 置形成标记语言;以及步骤S206,根据至少一种数据库系统的类型 和标记语言,通过脚本解析装置将使用标记语言编写的数据库脚本 分别解片斤成至少一种凄t据库系统专用的凄t梧库扭卩本。上述的步骤S202包括步骤S202-2,才艮据至少一种类型的数 据库脚本分析数据库脚本的语法,按照数据库种类列举所有语法并标明每种语法相关的属性;以及步骤S202-4,将语法功能相同且语 法相关属性相同的语法标记为A类语法,将语法功能相同且语法相 关属性不同的语法标记为B类语法,将语法功能不同的语法标记为 C类i吾法。在步骤S204中,根据分类的语法和语法相关属性形成语法标 "i己和才示i己属'l"生以形成标i己"i吾言,其中,每种i吾法只于应于一组标i己和 标i己属'性。上述的步骤S206包括步骤S206-2,将用标记语言编写的数 据库脚本存储在脚本解析装置;步骤S206-4,通过脚本解析装置提 取用标记语言编写的凄t据库脚本中的语法标记和标记属性值,并将 语法标记和标记属性至映射成对应的语法标记结构链表;以及步骤 S206-6,脚本解析装置根据至少一种类型数据库的语法解析语法标 记结构链表中的语法标记,以生成至少 一 种类型数据库专用的数据 库脚本。本发明的标记语言简单明了 ,使用标记语言编写的数据库脚本 通俗易懂,达到了只编写 一套脚本却支持多种数据库系统的效果, 并且可扩充性好,只需新增标记及标记解释算法即可,降低了开发 代价,节省了维护时间,提高了开发效率。附图i兑明此处所说明的附图用来4是供对本发明的进一 步理解,构成本申 i貪白勺一部分,本发明的示意性实施例及其i兑明用于解幹本发明,并 不构成对本发明的不当限定。在附图中

图1是根据本发明的数据库脚本通用化实现系统的框图;图2是根据本发明的数据库脚本通用化实现方法的流程图;以及图3是根据本发明的实施例的处理语法标记的流程图。
具体实施方式
下面参考附图,详细"i兌明本发明的具体实施方式
。图1是根据本发明的数据库脚本通用化实现系统的框图。如图 1所示,本发明的凄t据库脚本通用化实现系统包括数据库脚本分析装置102,用于对至少一种类型的专用数据库脚本进行语法分析; 标记语言形成装置104,用于根据语法分析结果,形成标记语言; 以及脚本解析装置106,用于根据至少一种数据库系统的类型和标 记语言将使用标记语言编写的数据库脚本分别解析成至少 一 种数 据库系统专用的^:据库脚本。上述的数据库脚本分析装置102包括语法分析单元102-2, 用于4艮据至少一种类型的数据库脚本分析数据库脚本的语法,按照 数据库种类列举所有语法并标明每种语法相关的属性;以及语法标 记单元102-4,用于将语法功能相同且语法相关属性相同的语法标 记为A类语法,将语法功能相同且语法相关属性不同的语法标记为 B类i吾法,将i吾法功能不同的"i吾法标记为C类i吾法。上述的标记语言形成装置104 ^艮据分类的语法和语法相关属性形成语法标记和标记属性以形成标记语言,其中,每种语法对应于 一纟且才示j己^^示i己属斗生。上述的脚本解析装置106包4舌 居库脚本〗呆存单元106-2, 用于存^f诸用标记语言编写的数据库脚本;拔:取单元106-4,用于#是 取用标记语言编写的数据库脚本中的语法标记和标记属性值,并将 语法标记和标记属性至映射成对应的语法标记结构《连表;以及脚本 解析单元106-6,用于4艮据至少一种类型凄t据库的语法解析语法标 记结构《连表中的语法标记,以生成至少一种类型数据库专用的数据 库脚本。图2是4艮据本发明的凄t据库脚本通用化实现方法的流程图。如 图2所示,本发明的数据库脚本通用化实现方法包括以下步骤步 骤S202,通过数据库脚本分析装置对至少一种类型的专用数据库脚 本进行语法分析;步骤S204, 4艮据语法分析结果通过标记语言形成 装置形成标记语言;以及步骤S206, 4艮据至少一种凄t据库系统的类 型和标i己i吾言,通过脚本解析装置将4吏用标{己{吾言编写的H据库脚 本分别解析成至少一种数据库系统专用的数据库脚本。上述的步骤S202包括步骤S202-2,根据至少一种类型的数 据库脚本分析数据库脚本的语法,按照数据库种类列举所有语法并 标明每种语法相关的属性;以及步骤S202-4,将语法功能相同且语 法相关属性相同的语法标记为A类语法,将语法功能相同且语法相 关属性不同的i吾法标记为B类i吾法,将i吾法功能不同的i吾法标记为 C类语法。在步艰《S204中,冲艮据分类的语法和语法相关属性形成语法标 记和标记属性以形成标记语言,其中,每种语法对应于一组标记和 才示i己属'l"生。上述的步骤S206包括步骤S206-2,将用标记语言编写的数 据库脚本存储在脚本解析装置;步骤S206-4,通过脚本解析装置提 取用标记语言编写的凄U居库脚本中的语法标记和标记属性值,并将 语法标记和标记属性至映射成对应的语法标记结构链表;以及步骤 S206-6,脚本解析装置根据至少一种类型数据库的语法解析语法标 i己结构链表中的i吾法标i己,以生成至少一种类型凄t据库专用的f史据 库脚本。因为当前各种数据库系统实现的功能变化不大,数据库脚本主 要内容包括"创建表"、"创建视图"、"创建主外键"、"创建索引"、 "创建触发器,'、"创建存储过程"、"增删改表记录"。不同种类的 数据库系统脚本语言语法是不同的,尤其"触发器和存储过程"语 法差异巨大。所以,本发明核心思路是写 一套通用数据库标记脚本连同所要 支持的翁:才居库系统名称(如ORALCLE),传递主会后台解析程序, 由该程序最后生成专用的数据库脚本。本发明的实现原理与ODBC以及JAVA API实现原理一样标 准4妄口面向用户,差异由后台实i见。本发明是可行的基于如下条件抽取"不同种数据库系统脚本 语言语法共性"作为制定标记语言语法的前提;各种专用数据库脚 本语言所包含的语法是相同的,不同的是语法外在表现形式;语法 条目的数量是可数的(100数量级),后台程序解析这些语法所花费 ^U介是i见实的。对于凄t据库系统各自特殊语法可制定专用标记,由 后台程序专门解析处理。概括地说,数据库脚本通用化方法就是根据"各种数据库系统 脚本语言语法共性"抽取出"标准数据库标记语言语法",对于数据库专有特殊语法制定特殊标记,然后^f吏用这套标记语言编写数据 库脚本,最后由后台程序根据所要支持的具体数据库系统解析脚本 并生成专用凄史据库脚本。本发明可以通过但不限于软件来实现。本方法实现过程包括第一步分析不同种类凄t据库脚本,分析其语法组成 第一步又可以包4舌下列步骤1、 根据不同种类数据库脚本范例分析其语法组成,按照数据 库种类划分,列举所有语法并标明每种语法相关的属性。2、 找出语法功能相同且语法相关属性相同的语法,将这类语 法标记为A类语法。3、 找出语法功能相同《旦语法相关属性不相同的语法,将这类 语法标记为B类语法。4、 找出语法功能不同的语法(数据库系统专用语法),将这类 语法标记为C类语法。第二步 一艮据分类语法设计标记语言冲艮据分类语法及语法相关属性,设计语法标记及标记属性,每 种"i吾法对应一组标记及标记属性,完成所有i吾法标记及标记属性"i殳 计。第三步后台解析脚本接收参数数据库系统名称N (例如:ORACLE)、使用标记语 言编写的凄t据库脚本文本内容输出内容与N乂寸应的专用翁:l居库脚本 处理又可以包括下列步骤1 、提取使用标记语言编写的数据库脚本文本内容到内存緩沖区。2、 按照语法标记^是取所有语法标记以及标记属性值,并将其 映射成对应的语法标记结构链表。3、 处理标记结构链表,对语法标记进行解析翻译。对不同数 据库系统要编写不同的专用的语法标记解析方法。在标记解析方法 中结合标记属性值采用替换、4并4妄等方法完成专用数据库脚本的生 成。为了更好理解本发明方法核心思路,下面结合图3对数据库存 储过程中"取数据库系统当前时间"语法进行标记设计以下语句是Oracle、 Sqlserver、 Mysql三种数据库系统对于获 取数据库系统当前时间的不同处理。Selectsysdate into Operate—Time fi:om dual: SelectSOpeirate—Titne getdate () set(^Operate Tiitie now (),'对以上语句进^亍分析后,^由耳又出一个语法属性"VarName":时 间值变量名。以下语句为i殳计完成的语法标记。<<SYSTIME VarName- />:■-以下语句为l吏用该:i吾法才示i己示例。《SYSTIHE VarName-Opei:ate一TiKie /':-'>图3是冲艮据本发明的实施例的处理语法标记的流程图。如图3 所示,处理语法标记的流程包括首先读取标记(S302 );判断是 否取当前时间标记(S304 );在不需要读取的情况下,结束,在需 要读取的情况下,读取Varname属性值(S306 );判断数据库类型 (S308);如果数据库类型为sqlserver,按照sqlserver数据库标记 进4亍处理,生成用于sqlserver数据库的数据库脚本;如果数据库类 型为oracle,则4姿照oracle凄史据库标记进4f处理,生成用于oracle 数据库的数据库脚本;如果数据库类型为mysql,则按照mysql数 椐库标记进行处理,生成用于mysql数据库的数据库脚本(S310 )。采用本发明所述方法,与现有才支术相比,标记语言简单明了, 使用标记语言编写的数据库脚本通俗易懂,达到了只编写 一套脚本 却支持多种数据库系统的效果,并且可扩充性好,只需新增标记及 标记解释算法即可,降低了开发代价,节省了维护时间,提高了开 发效率。以上所述4又为本发明的^尤选实施例而已,并不用于限制本发 明,对于本领域的4支术人员来"i兌,本发明可以有各种更改和变化。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进 等,均应包含在本发明的保护范围之内。
权利要求
1. 一种数据库脚本通用化实现系统,其特征在于包括数据库脚本分析装置,用于对至少一种类型的专用数据库脚本进行语法分析;标记语言形成装置,用于根据所述语法分析结果,形成标记语言;以及脚本解析装置,用于根据至少一种数据库系统的类型和所述标记语言将使用所述标记语言编写的数据库脚本分别解析成所述至少一种数据库系统专用的数据库脚本。
2. 根据权利要求1所述的数据库脚本通用化实现系统,其特征在 于,所述数据库脚本分析装置包括语法分析单元,用于根据所述至少一种类型的数据库脚 本分析所述数据库脚本的语法,按照数据库种类列举所有语法 并标明每种语法相关的属性;以及语法标记单元,用于将语法功能相同且语法相关属性相 同的i吾法标记为A类i吾法,将i吾法功能相同且语法相关属性 不同的语法标记为B类语法,将语法功能不同的语法标记为C 类语法。
3. 根据权利要求1所述的数据库脚本通用化实现系统,其特征在 于,所述标记语言形成装置根据分类的语法和语法相关属性形 成i吾法标i己和标记属性以形成标i己i吾言,其中,每种i吾法对应 于一纟且标i己和标"i己属性。
4. 才艮据4又利要求1所述的数据库脚本通用化实现系统,其特征在于,所述脚本解析装置包括数据库脚本保存单元,用于存储用所述标记语言编写的数据库脚本;提取单元,用于提取用所述标记语言编写的^:据库脚本中的语法标记和标记属性值,并将所述语法标记和标记属性至映射成对应的i吾法标i己结构链表;以及脚本解析单元,用于才艮据所述至少一种类型数据库的语 法解4斤所述i吾法标"i己结构《连表中的i吾法标i己,以生成所述至少 一种类型数据库专用的数据库脚本。
5. —种^t据库脚本通用化实现方法,其特征在于,所述方法包括 以下步骤步骤S202,通过凄t据库脚本分析装置对至少一种类型的 专用凄t据库脚本进行语法分析;步骤S204, 4艮据所述语法分析结果通过标记语言形成装 置形成标记语言;以及步骤S206,根据至少一种数据库系统的类型和所述标记 语言,通过脚本解析装置将〗吏用所述标记语言编写的^t据库脚 本分别解析成所述至少一种数据库系统专用的数据库脚本。
6. 根据权利要求5所述的数据库脚本通用化实现方法,其特征在 于,所述步骤S202包括步骤S202-2,根据所述至少一种类型的数据库脚本分析 所述数据库脚本的语法,按照数据库种类列举所有语法并标明 每种语法相关的属性;以及步骤S202-4,将语法功能相同且语法相关属性相同的语 法标记为A类语法,将语法功能相同且语法相关属性不同的语法标记为B类i吾法,将语法功能不同的语法标记为C类i语法。
7. 根据权利要求5所迷的凄欠才居库脚本通用化实现方法,其特征在于,在所述步骤S204中,根据分类的语法和语法相关属性形 成语法标记和标记属性以形成标记语言,其中,每种语法对应 于一纟且才示i己和才示i己属斗生。
8. 根据权利要求5所述的数据库脚本通用化实现方法,其特征在 于,所述步骤S206包括步骤S206-2,将用所述标记语言编写的数据库脚本存储 在所述脚本解析装置;步骤S206-4,通过所述脚本解析装置提取用所述标记语 言编写的教:据库脚本中的语法标记和标记属性值,并将所述语 法标记和标记属性至映射成对应的语法标记结构链表;以及步骤S206-6,所述脚本解析装置冲艮据所述至少一种类型 凄史据库的语法解析所述语法标记结构链表中的语法标记,以生 成所述至少一种类型数据库专用的数据库脚本。
全文摘要
本发明提供了一种数据库脚本通用化实现系统和方法,该系统包括数据库脚本分析装置,用于对至少一种类型的专用数据库脚本进行语法分析;标记语言形成装置,用于根据语法分析结果,形成标记语言;以及脚本解析装置,用于根据至少一种数据库系统的类型和标记语言将使用标记语言编写的数据库脚本分别解析成至少一种数据库系统专用的数据库脚本。本发明的标记语言简单明了,使用标记语言编写的数据库脚本通俗易懂,达到了只编写一套脚本却支持多种数据库系统的效果,并且可扩充性好,只需新增标记及标记解释算法即可,降低了开发代价,节省了维护时间,提高了开发效率。
文档编号G06F17/30GK101221561SQ20071000091
公开日2008年7月16日 申请日期2007年1月8日 优先权日2007年1月8日
发明者张志坤 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1