一种基于ODBC访问的数据库比较方法技术

技术编号:26418316 阅读:26 留言:0更新日期:2020-11-20 14:13
本发明专利技术涉及一种基于ODBC访问的数据库比较方法。该方法基于ODBC访问技术,主要用于两个关系型数据库的结构、内容的比较。该方法由四个部分组成,共同构成了一种基于ODBC访问的数据库比较方法。四个部分分别为一种扩展的的文本相似度计算方法、一种基于加权优选的格式化文本比较方法、基于ODBC访问的数据库内容比较方法和基于ODBC访问的数据库比较方法。本发明专利技术可以实现与数据库厂商无关的数据库比较方法,比较结果为较优方案,可以在关系型数据库所涉及领域进行应用。

【技术实现步骤摘要】
一种基于ODBC访问的数据库比较方法
本专利技术属于计算机软件应用领域,涉及关系数据库的应用,可用于关系型数据库内容比较,具体涉及一种基于ODBC访问的数据库比较方法。
技术介绍
在数据库应用背景下,为了了解不同业务或不同时期的数据变化情况或数据一致性,经常需要对两个数据库进行比较,所比较的两个数据库可以是同一类型的数据库,也可以是异构的不同类型数据库。一般情况下,数据库提供商会提供数据迁移、数据导入导出、数据备份等功能,若需比较的数据库为统一厂商统一类型数据库,则两个数据库间可以互相通信,但大多数未提供数据库比较功能;对于不同厂商数据库,则基本上不能直接数据通信,因此无法直接进行数据比较。开放式数据库互连(OpenDatabaseConnectivity,ODBC)是微软公司开放服务体系关于数据库的部分,它建立了一组规范并提供了访问数据库的标准API。通过ODBCAPI和各数据库厂商提供的驱动程序,上层应用程序可以忽略数据库厂商的区别直接进行数据库访问。本专利技术利用ODBC技术,实现了与厂商无关的数据库比较方法,可以在关系型数据库所涉及领域进行应用。
技术实现思路
本专利技术所要解决的技术问题是针对上述现有技术提供了一种基于ODBC访问的数据库比较方法,实现了与厂商无关的数据库比较方法,可以在关系型数据库所涉及领域进行应用。本专利技术解决上述问题所采用的技术方案为:一种基于ODBC访问的数据库比较方法,该方法的输入数据为两组数据库的连接信息,通过ODBC访问技术获取数据库内容,输出信息为两组数据库表的比较结果,具体包括以下步骤:步骤1)、建立ODBC连接,初始化比较环境;步骤2)、获取数据库表字段信息和数据库表内容;步骤3)、针对每个表进行构造格式化文本,计算数据库表结构的比较结果,若整体相似度为小于1,则该表比较结果为不同,继续下一个表比较,否则转到步骤4);步骤4、针对每个表计算数据库表内容的比较结果,若比较结果相同,则该表比较结果为相同,否则该表比较结果为不同。优选地,所述步骤3)中的格式化文本包括文本keys和文本内容,文本keys包括列名称、类型、长度、能否为空、是否为主键、默认值和说明,文本内容为数据库相关信息。优选地,步骤3)在对于每个表构造的格式化文本采用基于加权优选的格式化文本比较方法进行比较,该方法的输入内容为两组格式化的文本Rx、Ry和比较参数Spx和Spy,其中比较参数Spx和Spy分别包括比较列和关键列,输出内容为基于最优比较策略的两组格式化文本、每行格式化文本的比较相似度和整体相似度。优选地,所述的采用基于加权优选的格式化文本比较方法包括以下步骤:步骤1)整理数据,初始化比较环境。步骤2)对于需要比较的数据列,采用一种扩展的的文本相似度计算方法计算比较单元的相似度;步骤3)构造两组格式化文本相似度矩阵;步骤4)查找并排序每行文本的最优比较策略;步骤5)输出比较策略和文本相似度。优选地,步骤2)中一种扩展的文本相似度计算方法,该方法是基于最长公共子串LCS和编辑距离LD对于输入的两组字符串,获取其最长公共字串和编辑距离,计算输入的两组字符串的相似度。优选地,所述方法包括以下步骤:步骤1)初始化LCS矩阵和LD矩阵;步骤2)分别计算LCS矩阵首行数据和LD矩阵首行数据;步骤3)根据字符串每个字符,循环计算LCS矩阵和LD矩阵则矩阵其他数值,分别计算出两组字符串的LCS和LD距离;步骤4)计算两组字符串间的相似度。与现有技术相比,本专利技术的优点在于:本专利技术在进行对应业务场景下进行数据库比较时,可以忽略数据库提供商的区别,无需对不同数据库提供商进行专门适配和软件开发,而直接实现数据库内容的比较,能够节省可观的软件开发成本;同时使用本方案提供的内容比较适配策略进行软件实现后,能够快速实现较优的比较结果,解决人工比较带来的成本、效率、准确率等问题。附图说明图1为本专利技术部分一所述的一种扩展的的文本相似度计算方法实施流程图。图2为本专利技术部分二所述的一种基于加权优选的格式化文本比较方法实施流程图。图3为本专利技术部分二内所描述的相似度矩阵示例,其中红色背景内容为逐步选取的最优比较方案。图4、5、6为依据本专利技术所开发的数据库比较软件运行界面示例。具体实施方式以下结合附图实施例对本专利技术作进一步详细描述。本实施例提供一种基于ODBC访问的数据库比较方法,该方法通过ODBC访问技术获取数据库内容,给出关系型数据库的比较结果。该方法的输入数据为两组ODBC连接信息,输出信息为两组数据库表的比较结果。该方法的基本步骤如下:步骤1、如果环境中尚未建立ODBC连接,则通过SQLSetEnvAttr创建数据库连接句柄,如果连接失败,则直接返回错误。然后通过SQLConnect创建数据库连接句柄。步骤2、调用SQLTables获取数据库中所有表信息,调用SQLColumns获取每个表字段信息内容。步骤3、针对每个表进行构造格式化文本,文本keys为{"列名称","类型","长度","能否为空","是否为主键","默认值","说明"},文本内容分别为数据库相关信息。通过基于加权优选的格式化文本比较方法计算数据库表结构的比较结果,若整体相似度为小于1,则该表比较结果为不同,继续下一个表比较,否则转到步骤4。所描述的格式化文本是一种结构自描述的文本串,具有如下特点:(1)该文本字符串由多行组成,每行以换行符间隔;(2)该文本字符串每行数据由多列组成,每列以“,”间隔,每行包含相同的列数;(3)该文本字符串首行为列信息(也可称keys),除首行外其他行为数据信息。下面为一个格式化文本举例:ID,NAME,BIRTHDAY,SCHOOLID,CLASSNAME0,Lucywang,1970-05-16,0,Math1,TeacherLiu,1979-03-16,1,English2,TeacherZhao,1958-03-16,3,History。步骤4、针对每个表,通过基于ODBC访问的数据库内容比较方法计算数据库表内容的比较结果,若比较结果相同,则该表比较结果为相同,否则该表比较结果为不同。其中基于基于ODBC访问的数据库内容比较方法,是通过ODBC访问技术获取数据库内容,给出关系型数据库内容的比较结果。该方法的输入数据为两组ODBC连接信息、待比较的数据库表、人工干预的字段优先级(可选的),输出信息为待比较数据库表内容的比较结果。所述方法包括以下步骤:步骤1、如果环境中尚未建立ODBC连接,则通过SQLSetEnvAttr创建数据库连接句柄,如果连接失败,则直接返回错误。然后通过SQLConnect创建数据库连接句柄。步骤2、通过SQLColumns获取数据库本文档来自技高网...

【技术保护点】
1.一种基于ODBC访问的数据库比较方法,其特征在于该方法的输入数据为两组数据库的连接信息,通过ODBC访问技术获取数据库内容,输出信息为两组数据库表的比较结果,具体包括以下步骤:/n步骤1)、建立ODBC连接,初始化比较环境;/n步骤2)、获取数据库表字段信息和数据库表内容;/n步骤3)、针对每个表进行构造格式化文本,计算数据库表结构的比较结果,若整体相似度为小于1,则该表比较结果为不同,继续下一个表比较,否则转到步骤4);/n步骤4、针对每个表计算数据库表内容的比较结果,若比较结果相同,则该表比较结果为相同,否则该表比较结果为不同。/n

【技术特征摘要】
1.一种基于ODBC访问的数据库比较方法,其特征在于该方法的输入数据为两组数据库的连接信息,通过ODBC访问技术获取数据库内容,输出信息为两组数据库表的比较结果,具体包括以下步骤:
步骤1)、建立ODBC连接,初始化比较环境;
步骤2)、获取数据库表字段信息和数据库表内容;
步骤3)、针对每个表进行构造格式化文本,计算数据库表结构的比较结果,若整体相似度为小于1,则该表比较结果为不同,继续下一个表比较,否则转到步骤4);
步骤4、针对每个表计算数据库表内容的比较结果,若比较结果相同,则该表比较结果为相同,否则该表比较结果为不同。


2.根据权利要求1所述的一种基于ODBC访问的数据库比较方法,其特征在于所述步骤3)中的格式化文本包括文本keys和文本内容,文本keys包括列名称、类型、长度、能否为空、是否为主键、默认值和说明,文本内容为数据库相关信息。


3.根据权利要求1所述的一种基于ODBC访问的数据库比较方法,其特征在于步骤3)在对于每个表构造的格式化文本采用基于加权优选的格式化文本比较方法进行比较,该方法的输入内容为两组格式化的文本Rx、Ry和比较参数Spx和Spy,其中比较参数Spx和Spy分别包括比较列和关键列,输出内容为基于最优比较策略的两组格式化文本、每行格式化文本的比较相似度和整体相似度。


4.根据权利要求3所述的一种基于ODBC访问的数据库比较方法,其特征在于所述的采用基于加权优选的格式化文本比较方法包括以下步骤:
步骤1)整理数据,初始化比较环境。
步骤2)对于需要比较的数据列,采用一种扩展的的文本相似度计算方法计算比较单元的相似度;
步骤3)构造两组格式化文本相似度矩阵;
步骤4)查找并排序每行文本的最优比较策略;
步骤5)输出比较策略和文本相似度。


5.根据权利要求4所述的一种基于ODBC访问的数据库比较方法,其特征在于所述方法具体包括以下步骤:
步骤1)整理数据,验正比较参数Spx和Spy一致性,Spx与Rx、Spy与Ry匹配性,如果不匹配,直接返回错误;分配相似度矩阵空间;若Rx长度小于Ry长度,则对两组文本进行交换;
步骤2)、对于Rx的每一行Rx[i]和Ry的每一行Ry[j],做如下循环:
对于输入的每一比较列Spx[k]和Spy[l],采用一种扩展的文本相似度计算方法计算文本Rx[i][Spx[k]]和Ry[j][Spy[l]]相似度,并将每一比较列相似度相加;
对于输入的每一关键列Spx[k]和Spy[l],采用一种扩展的文...

【专利技术属性】
技术研发人员:李永刚侯亚威胡上成郭力兵汪毅毛文吴云杨海民伊瑞海邓育民黄为
申请(专利权)人:中国人民解放军六三六八六部队
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1