著录项信息
专利名称 | 确定数据库表之间的数据映射关系的方法和装置 |
申请号 | CN201110047151.9 | 申请日期 | 2011-02-28 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2012-08-29 | 公开/公告号 | CN102650996A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 国际商业机器公司 | 申请人地址 | 美国纽约
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 国际商业机器公司 | 当前权利人 | 国际商业机器公司 |
发明人 | 谈华芳;朱俊;高雪峰;鞠琳 |
代理机构 | 北京市中咨律师事务所 | 代理人 | 于静;张亚非 |
摘要
一种用于确定源数据库表和目标数据库表之间的数据映射关系的方法和装置,该方法包括:从源数据库表的多行数据获取主键之外的至少一个其他属性的属性值及其对应的主键值集合,并从目标数据库表中的多行数据获取相应主键之外的特定属性的属性值及其对应的主键值集合;判断源数据库表的至少一个其他属性与目标数据库表的特定属性之间是否存在潜在的数据映射关系;如果判断为是,确定源数据库表的至少一个其他属性与目标数据库表的特定属性之间的数据映射关系。一种用于验证数据的方法和装置,该方法包括上述方法的各步骤,和根据数据映射关系验证源数据库表的至少一个其他属性的属性值和/或目标数据库表的特定属性的属性值的附加步骤。
1.一种用于确定源数据库表和目标数据库表之间的数据映射关系的方法,包括:从至少一个源数据库表中的多行数据获取主键之外的至少一个其他属性的属性值及其对应的主键值集合,并从目标数据库表中的多行数据获取相应主键之外的特定属性的属性值及其对应的主键值集合;
所述方法特征在于还包括:
判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系,包括判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述源数据库表的一个其他属性的各属性值所对应的主键值集合相等或相对应,其中所述相等或相对应的判断是基于所述目标数据库表的特定属性的全部属性值中的每一个属性值所对应的相应主键值集合以及所述源数据库表的至少一个其他属性的全部属性值中每一个相应属性值所对应的主键值集合进行的;
如果判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系,确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系。
2.根据权利要求1的方法,其中,判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系是通过比较所述至少一个源数据库表的至少一个其他属性的属性值所对应的主键值集合与所述目标数据库表的特定属性的属性值所对应的主键值集合进行的。
3.根据权利要求2的方法,其中,判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系包括:
判定所述目标数据库表的特定属性的属性值所对应的相应主键值集合是否与所述至少一个源数据库表的一个其他属性的属性值所对应的主键值集合相对应;以及响应于所述判定为是,判断所述至少一个源数据库表的所述一个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系。
4.根据权利要求2的方法,其中,判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系包括:
判定所述目标数据库表的特定属性的属性值所对应的相应主键值集合是否与所述至少一个源数据库表的多个其他属性各自的属性值所对应的主键值集合的交集相对应;以及响应于所述判定为是,判断所述至少一个源数据库表的所述多个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系。
5.根据权利要求1方法,其中,确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系包括:
根据所述至少一个源数据库表的至少一个其他属性的属性值所对应的主键值集合与所述目标数据库表的特定属性的属性值所对应的相应主键值集合之间的对应关系,建立所述至少一个源数据库表的至少一个其他属性的属性值与所述目标数据库表的特定属性的属性值之间的对应关系;以及
根据所建立的所述至少一个源数据库表的至少一个其他属性的属性值与所述目标数据库表的特定属性的属性值之间的对应关系,确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系。
6.根据权利要求5的方法,其中,所述判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系是基于所建立的源数据库表的至少一个其他属性的全部属性值中超过指定阈值百分比的属性值与所述目标数据库表的特定属性的全部属性值中超过指定阈值百分比的对应属性值之间的对应关系进行的。
7.根据权利要求1的方法,其中,判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系以及确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系是基于包含源数据库表与目标数据库表之间的数据转换关系的设计规范进行的。
8.根据权利要求1的方法,其中,所述目标数据库表为商业智能解决方案中的数据仓库中的数据库表,所述至少一个源数据库表是作为数据仓库的数据源的业务系统数据库中的数据库表。
9.一种用于验证数据的方法,包括:
根据权利要求1-8中任何一项中的各步骤;以及
根据所确定的所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系对所述至少一个源数据库表的至少一个其他属性的属性值和/或目标数据库表的特定属性的属性值进行验证。
10.根据权利要求9的方法,其中,根据所述确定的数据映射关系对所述至少一个源数据库表的至少一个其他属性的属性值和/或目标数据库表的特定属性的属性值进行验证包括以下各项中的任何一个或多个:
通过将所述确定的数据映射关系与包含源数据库表与目标数据库表之间的数据转换关系的设计规范进行比较来判断所述确定的数据映射关系是否符合该设计规范;
判断所述至少一个源数据库表的至少一个其他属性的特定属性值与所述目标数据库表的特定属性的对应属性值之间是否符合所述确定的数据映射关系;
判断所述至少一个源数据库表的至少一个其他属性的特定属性值是否具有所述目标数据库表的特定属性的对应属性值;
判断所述目标数据库表的特定属性的特定属性值是否具有所述至少一个源数据库表的至少一个其他属性的对应属性值。
11.一种用于确定源数据库表和目标数据库表之间的数据映射关系的装置,包括:属性值剖析模块,用于从至少一个源数据库表中的多行数据获取主键之外的至少一个其他属性的属性值及其对应的主键值集合,并从目标数据库表中的多行数据获取相应主键之外的特定属性的属性值及其对应的相应主键值集合;
所述装置特征在于还包括:
潜在数据映射关系判断模块,用于判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系,包括判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述源数据库表的一个其他属性的各属性值所对应的主键值集合相等或相对应,其中所述相等或相对应的判断是基于所述目标数据库表的特定属性的全部属性值中的每一个属性值所对应的相应主键值集合以及所述源数据库表的至少一个其他属性的全部属性值中每一个相应属性值所对应的主键值集合进行的;
数据映射关系确定模块,用于如果判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系,确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系。
12.根据权利要求11的装置,其中,所述潜在数据映射关系判断模块判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系是通过比较所述至少一个源数据库表的至少一个其他属性的属性值所对应的主键值集合与所述目标数据库表的特定属性的属性值所对应的相应主键值集合来进行的。
13.根据权利要求12的装置,其中,所述潜在数据映射关系判断模块包括:
用于判定所述目标数据库表的特定属性的属性值所对应的相应主键值集合是否与所述至少一个源数据库表的一个其他属性的属性值所对应的主键值集合相对应的装置;以及用于响应于所述判定为是,判断所述至少一个源数据库表的所述一个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系的装置。
14.根据权利要求12的装置,其中,所述潜在数据映射关系判断模块包括:
用于判定所述目标数据库表的特定属性的属性值所对应的相应主键值集合是否与所述至少一个源数据库表的多个其他属性各自的属性值所对应的主键值集合的交集相对应的装置;以及
用于响应于所述判定为是,判断所述至少一个源数据库表的所述多个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系的装置。
15.根据权利要求11的装置,其中,所述数据映射关系确定模块包括:
用于根据所述至少一个源数据库表的至少一个其他属性的属性值所对应的主键值集合与所述目标数据库表的特定属性的属性值所对应的相应主键值集合之间的对应关系,建立所述至少一个源数据库表的所述一个其他属性或多个其他属性的属性值与所述目标数据库表的特定属性的属性值之间的对应关系的装置;以及
用于根据所建立的所述至少一个源数据库表的所述一个其他属性或所述多个其他属性的属性值与所述目标数据库表的特定属性的属性值之间的对应关系,确定所述至少一个源数据库表的所述一个其他属性或所述多个其他属性与所述目标数据库表的特定属性之间的数据映射关系的装置。
16.根据权利要求15的装置,其中,所述用于确定所述源数据库表的所述至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系的装置是基于所建立的源数据库表的所述一个其他属性或所述多个其他属性的全部属性值中超过指定阈值百分比的属性值与所述目标数据库表的特定属性的全部属性值中超过指定阈值百分比的对应属性值之间的对应关系进行确定的。
17.根据权利要求11的装置,其中,所述潜在数据映射关系判断模块判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系以及所述数据映射关系确定模块确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系是基于包含源数据库表与目标数据库表之间的数据转换关系的设计规范进行的。
18.根据权利要求11的装置,其中,所述目标数据库表为商业智能解决方案中的数据仓库中的数据库表,所述至少一个源数据库表是作为数据仓库的数据源的业务系统数据库中的数据库表。
19.一种用于验证数据的装置,包括:
根据权利要求11-18中任何一项中的各模块;以及
验证模块,用于根据所述确定的数据映射关系对所述至少一个源数据库表的至少一个其他属性的属性值和/或目标数据库表的特定属性的属性值进行验证。
20.根据权利要求19的装置,其中,所述验证模块包括以下各项中的任何一个或多个:
用于通过将所述确定的数据映射关系与包含源数据库表与目标数据库表之间的数据转换关系的设计规范进行比较来判断所述确定的数据映射关系是否符合该设计规范的装置;
用于判断所述至少一个源数据库表的至少一个其他属性的特定属性值与所述目标数据库表的特定属性的对应属性值之间是否符合所述确定的数据映射关系的装置;
用于判断所述至少一个源数据库表的至少一个其他属性的特定属性值是否具有所述目标数据库表的特定属性的对应属性值的装置;
用于判断所述目标数据库表的特定属性的特定属性值是否具有所述至少一个源数据库表的至少一个其他属性的对应属性值的装置。
确定数据库表之间的数据映射关系的方法和装置\n技术领域\n[0001] 本发明涉及数据处理技术,具体涉及一种用于确定源数据库表和目标数据库表之间的数据映射关系的方法和装置,以及一种用于验证数据的方法和装置。\n背景技术\n[0002] 多年以来,商业智能(Business Intelligence,简称BI)一直是一个技术热点,越来越多的企业采用了商业智能技术,以提供决策支持。商业智能是指用于发现、收集、分析企业的诸如销售、成本、收入等商业数据的基于计算机的技术。商业智能技术通常通过ETL(Extract-Transform-Load,即数据抽取、转换、装载)过程,从企业自身的诸如ERP(Enterprise Resource Planning,即企业资源计划)、CRM(Customer Relationship Management,即客户关系管理)等业务系统及企业所处的外部环境等数据源中提取数据,并将所述数据进行适当转换后,注入到数据仓库中;然后,通过OLAP(On-Line Analytical Processing,即联机分析处理)等技术生成可用于决策支持的数据报告。图1示出了商业智能技术的示意图。如图所示,来自于ERP、CRM、其他业务系统数据库等数据源的数据通过ETL过程被注入到数据仓库中,而通过OLAP过程可以根据数据仓库中的数据生成各种用于决策支持的数据报告。\n[0003] 数据仓库中数据的准确性对于提供正确的决策支持是至关重要的。在目前的BI解决方案中,经常会发生如下三种类型的数据错误:一是在数据仓库中出现脏数据(dirty data),这种脏数据并不是由数据源中的数据经适当转换而产生的,而是在ETL过程中错误地产生的;二是对数据源中的数据应用了错误的过滤器逻辑,过滤掉了不该过滤的数据,使得数据仓库中无法出现本该出现的数据;三是ETL开发不符合设计规范,在ETL过程中应用了错误的数据转换,使得数据仓库中的数据与数据源中的数据之间的映射关系错误。\n[0004] 为了发现并改正BI解决方案中的数据错误,需要对BI解决方案中的数据进行验证。图2示出了一种现有的基于样本的验证方法。如图所示,该方法需要测试者首先从目标数据库(即数据仓库)中获得随机样本目标数据,理解所述目标数据的业务含义,根据所述业务含义生成针对源数据库(即作为数据源的业务系统数据库等)的查询,通过针对源数据库执行所述查询而获取源数据,并将源数据与目标数据进行比较,以便发现数据错误。\n[0005] 这种数据验证方法具有如下缺点:\n[0006] 高度依赖于测试者理解目标数据和源数据的业务含义,这种要求对很多测试者来说是很难达到的;\n[0007] 该数据验证方法是人工进行的,而不是自动化的,因而费时费力,效率很低;\n[0008] 由于目标数据库和源数据库中的数据通常非常庞大,因此通常不可能验证所有的数据;\n[0009] 由于只能对目标数据库和源数据库中的部分数据进行验证,因此可能无法发现BI解决方案中存在的某些错误。\n发明内容\n[0010] 为了克服现有的数据验证方法的缺点,提出了本发明的用于验证数据的方法和装置。\n[0011] 根据本发明的一个方面,提出了一种用于确定源数据库表和目标数据库表之间的数据映射关系的方法,包括:从至少一个源数据库表中的多行数据获取所述主键之外的至少一个其他属性的属性值及其对应的主键值集合,并从目标数据库表中的多行数据获取相应主键之外的特定属性的属性值及其对应的相应主键值集合;判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系;如果判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系,确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系。\n[0012] 根据本发明的另一个方面,提出了一种用于验证数据的方法,包括:上述用于确定源数据库表和目标数据库表之间的数据映射关系的方法中的各步骤;以及根据所确定的数据映射关系对所述至少一个源数据库表的至少一个其他属性的属性值和/或目标数据库表的特定属性的属性值进行验证。\n[0013] 根据本发明的再一个方面,提出了一种用于确定源数据库表和目标数据库表之间的数据映射关系的装置,包括:属性值剖析模块,用于从至少一个源数据库表中的多行数据获取主键之外的至少一个其他属性的属性值及其对应的主键值集合,并从目标数据库表中的多行数据获取相应主键之外的特定属性的属性值及其对应的相应主键值集合;潜在数据映射关系判断模块,用于判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系;数据映射关系确定模块,用于如果判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系,确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系。\n[0014] 根据本发明的又一个方面,提出了一种用于验证数据的装置,包括:上述用于确定源数据库表和目标数据库表之间的数据映射关系的装置中的各模块;以及验证模块,用于根据所述确定的数据映射关系对所述至少一个源数据库表的至少一个其他属性的属性值和/或目标数据库表的特定属性的属性值进行验证。\n[0015] 本发明的技术方案的优点包括以下各项中的至少一项:\n[0016] 本发明的技术方案从源数据和目标数据本身中自动导出源数据和目标数据之间的数据映射关系,而不需要测试者从设计规范中人工获得源数据和目标数据之间的数据映射关系,因而适应于设计规范不易获得的情况,并节省了测试者阅读和理解复杂的设计规范的时间和成本,也不需要测试者理解目标数据和源数据的业务含义;\n[0017] 由于本发明的技术方案自动获取源数据库和目标数据库中的数据,从中导出源数据和目标数据之间的数据映射关系,并根据导出的数据映射关系对源数据和目标数据进行验证,因此,本发明的技术方案能够容易地实现对目标数据库和源数据库中的全部数据进行验证,从而实现全面的测试覆盖,能够发现目标数据库和源数据库中存在的诸如脏数据、错误的过滤器逻辑、错误的数据转换等各种数据错误。\n附图说明\n[0018] 所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身以及其优选使用模式、目标、特征以及优点,在附图中:\n[0019] 图1示出了商业智能技术的示意图;\n[0020] 图2示出了一种现有的基于样本的验证方法;\n[0021] 图3示出了根据本发明的实施例的用于确定源数据库表和目标数据库表之间的数据映射关系的方法;以及\n[0022] 图4示出了根据本发明的实施例的用于确定源数据库表和目标数据库表之间的数据映射关系的装置。\n具体实施方式\n[0023] 下面参照附图来说明本发明的实施例。在下面的说明中,阐述了许多具体细节以便更全面地了解本发明。但是,对于本技术领域内的技术人员明显的是,本发明的实现可不具有这些具体细节中的一些。此外,应当理解的是,本发明并不限于所介绍的特定实施例。\n相反,可以考虑用下面的特征和要素的任意组合来实施本发明,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。\n[0024] 现参照附图3,其示出了根据本发明的实施例的用于确定源数据库表和目标数据库表之间的数据映射关系的方法。如图所示,该方法包括以下步骤:\n[0025] 在步骤301,根据至少一个源数据库表中的多行数据剖析(profile)至少一个源数据库表的主键之外的至少一个其他属性的属值,并根据目标数据库表中的多行数据剖析目标数据库表的相应主键之外的特定属性的属性值,也就是说,从至少一个源数据库表中的多行数据获取所述主键之外的至少一个其他属性的属性值及其对应的主键值集合,并从目标数据库表中的多行数据获取所述相应主键之外的特定属性的属性值及其对应的相应主键值集合。具体地,在该步骤中,针对所述至少一个源数据库表的主键之外的至少一个其他属性中的每一个其他属性,从至少一个源数据库表中的多行数据获得该其他属性的所有不同的属性值,并且获得该其他属性的每一个不同的属性值所对应的所述主键的主键值集合;类似地,针对所述目标数据库表的相应主键之外的特定属性,从目标数据库表中的多行数据获得该特定属性的所有不同的属性值,并且获得该特定属性的每一个不同的属性值所对应的所述相应主键的主键值集合。\n[0026] 根据本发明的实施例,所述目标数据库表为商业智能解决方案中的数据仓库中的数据库表,所述至少一个源数据库表是作为数据仓库的数据源的业务系统数据库中的数据库表。当然,这并非是对本发明的限制。事实上,本发明的方法适用于在任何应用中存在着数据来源或数据转换关系的任何源数据库表和目标数据库表。\n[0027] 如本领域的技术人员所知的,主键是指数据库表中可以唯一地确定数据库表的一行的属性(即列)集合,也就是说,在该数据库表中,不存在这样的两行或更多行,其中,构成主键的一个或多个属性的值是相同的。所述至少一个源数据库表的主键与所述目标数据库表的相应主键之间具有相对应的关系,两者可以是相同的,也可以是不同的。当所述至少一个源数据库表的主键与所述目标数据库表的主键不同时,由于可以获得两者的主键值之间的对应关系,因此,可以将两者的主键值转换为相同的主键值,例如通过将源数据库表的主键值转换为目标数据库表的相应主键值,或者通过将目标数据库表的相应主键值转换为源数据库表的主键值,或者将源数据库表的主键值与目标数据库表的相应主键值转换为共同的主键值,这样,可以便利于后续的比较操作。\n[0028] 所述至少一个源数据库表的主键之外的至少其他属性可以是所述至少一个源数据库表的主键之外的由用户选定的任何一个或多个其他属性,也可以是所述至少一个源数据库表的主键之外的全部其他属性;所述目标数据库表的相应主键之外的特定属性可以是所述目标数据库表的相应主键之外的由用户选定的任何一个其他属性。\n[0029] 例如,从源数据库表的多行数据中获得的属性“价格”的所有不同的属性值及其对应的主键值集合可以如下表所示:\n[0030] 表1源属性“价格”\n[0031] \n 属性值 主键值集合\n 1 001,004\n 2 002\n 3 003\n[0032] 从源数据库表的多行数据中获得的属性“数量”的所有不同的属性值及其对应的主键值集合可以如下表所示:\n[0033] 表2源属性“数量”\n[0034] \n 属性值 主键值集合\n 1 001\n 2 003\n 3 002,004\n[0035] 从目标数据库表的多行数据中获得的属性“成本”的所有不同的属性值及其对应的主键值集合可以如下表所示:\n[0036] 表3目标属性“成本”\n[0037] \n 属性值 主键值集合\n 1 001\n 3 004\n 6 002,003\n[0038] 根据本发明的实施例,该步骤301可以由本发明的装置自动执行。\n[0039] 根据本发明的实施例,该方法还包括在步骤301之前的一可选步骤,在该可选步骤中,确定至少一个源数据库表的主键以及目标数据库表的相应主键。优选地,可由用户确定至少一个源数据库表的主键以及目标数据库表的相应主键。用户可以通过阅读BI设计规范文档等来确定至少一个源数据库表的主键以及目标数据库表的相应主键。当然,也可以设想以自动化的方式由BI设计规范文档等确定至少一个源数据库的主键以及目标数据库表的相应主键。所述目标数据库表的相应主键是指经由ETL等数据转换过程由至少一个源数据库表的主键转换而来的目标数据库表的主键。\n[0040] 根据本发明的实施例,该方法还包括在步骤301之前的另一可选步骤,在该另一可选步骤中,获取至少一个源数据库表中的多行数据以及目标数据库表中的多行数据。如本领域的技术人员所知的,可以通过对至少一个源数据库表以及目标数据库表执行相应的查询语句来获取至少一个源数据库表中的多行数据以及目标数据库表中的多行数据。在本发明的一个实施例中,可以获取至少一个源数据库表中的所有行的数据以及目标数据库表中的所有行的数据。当然,也可以考虑获取至少一个源数据表中的满足指定条件(例如,指定时间范围内)的部分行的数据以及目标数据库表中的满足指定条件的部分行的数据。根据本发明的实施例,该另一可选步骤可以由本发明的装置自动执行。\n[0041] 在步骤302,判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系。\n[0042] 根据本发明的实施例,所述判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系是通过比较所述至少一个源数据库表的至少一个其他属性的属性值所对应的主键值集合与所述目标数据库表的特定属性的属性值所对应的相应主键值集合进行的。\n[0043] 根据本发明的进一步的一个实施例,该步骤302包括以下子步骤:\n[0044] 子步骤302-1,判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述源数据库表的一个其他属性的各属性值所对应的主键值集合相对应。当源数据库表的主键值与目标数据库表的相应主键值相同时,可以直接判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合与所述源数据库表的一个其他属性的各属性值所对应的主键值集合是否相等。\n[0045] 子步骤302-2,响应于所述判定为是,判断所述源数据库表的所述一个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系。\n[0046] 也就是说,对于目标数据库表的特定属性的每一个属性值所对应的相应主键值集合,判定是否存在源数据库表的某一个其他属性的某一个属性值所对应的主键值集合与该相应主键值集合相对应或相等;而对于源数据库表的某一个其他属性的每一个属性值所对应的主键值集合,判定是否存在目标数据库表的特定属性的某一个属性值所对应的相应主键值集合与所述主键值集合相对应或相等。如果上述判定为是,则可判断目标数据库表的该特定属性与源数据库表的该其他属性之间存在潜在的数据映射关系。\n[0047] 例如,假设从目标数据库表的多行数据中获得的属性“价格”的所有不同的属性值及其对应的主键值集合如下表所示:\n[0048] 表4目标属性“价格”\n[0049] \n 属性值 主键值集合\n 10 001,004\n 20 002\n 30 003\n[0050] 通过对比表1和表4可知,源属性“价格”的各属性值所对应的主键值集合{001,\n004}、{002}、{003}分别与目标属性“价格”的各属性值所对应的主键值集合{001,004}、{002}、{003}}相等,因此,可判断源属性“价格”与目标属性“价格”之间存在潜在的数据映射关系。\n[0051] 根据本发明的进一步的另一个实施例,该步骤302包括以下子步骤:\n[0052] 子步骤302-3,判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述源数据库表的多个其他属性各自的属性值所对应的主键值集合的交集相对应。当源数据库表的主键值与目标数据库表的相应主键值相同时,可以直接判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述源数据库表的多个其他属性各自的属性值所对应的主键值集合的交集相等。\n[0053] 子步骤302-4,响应于所述判定为是,判断所述源数据库表的所述多个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系。\n[0054] 也就是说,对于目标数据库表的特定属性的每一个属性值所对应的相应主键值集合,判定是否存在源数据库表的某两个或更多个其他属性的各自的属性值所对应的主键值集合的交集与该相应主键值集合相对应或相等。如果上述判定为是,则可判断目标数据库表的该特定属性与源数据库表的该两个或更多个其他属性之间存在潜在的数据映射关系。\n[0055] 例如,根据上述表1、表2和表3可知,目标属性“成本”的各属性值所对应的相应主键值集合与源属性“价格”和源属性“数量”的各属性值所对应的主键值集合之间存在着以下关系:\n[0056] {001,004}∩{001}={001}\n[0057] {001,004}∩{002,004}={004}\n[0058] ({002}∪{003})∩({002,004}∪{003})={002,003}\n[0059] 也就是说,目标属性“成本”的每个属性值所对应的相应主键值集合都与源属性的“价格”的某一个属性值所对应的主键值集合(或多个属性值所分别对应的主键值集合的并集)与源属性“数量”的某一个属性值所对应的主键值集合(或多个属性值所分别对应的主键值集合的并集)的交集相等。这样,就可以判定目标属性“成本”与源属性“价格”和“数量”之间存在潜在的数据映射关系。\n[0060] 从以上示例还可以得知,当目标属性的某个属性值所对应的相应主键值集合只包括一个主键值时,可以直接从多个源属性中的每个源属性的各个属性值所对应的主键值集合中寻找包含该主键值(或对应的主键值)的主键值集合,并判断目标属性的该相应主键值集合是否与所寻找到的各个源属性的主键值集合的交集相等或相对应。而当目标属性的某个属性值所对应的相应主键值集合包括两个以上的主键值时,既可以针对其中的每个主键值,从多个源属性中的每个源属性的各个属性值所对应的主键值集合中寻找包含该主键值(或对应的主键值)的主键值集合,并判断目标属性的该主键值是否与所寻找到的各个源属性的主键值集合的交集相等或相对应;也可以首先从多个源属性中的每个源属性的各个属性值所对应的主键值集合中获得每个源属性的包含目标属性的各主键值(或各相应主键值)的主键值集合的并集,并判断各个源属性的所述获得的并集的交集是否与所述目标属性的该属性值所对应的相应主键值集合相等或相对应。\n[0061] 例如,在以上示例中,对于目标属性“成本”的属性值“1”所对应的相应主键值集合{001},可以寻找到包含属性值“001”的、源属性“价格”的属性值“1”所对应的主键值集合{001,004}以及源属性“数量”的属性值“1”所对应的主键值集合{001},并可判断目标属性的相应主键值集合{001}与源属性的主键值集合{001,004}和{001}的交集相等。\n[0062] 对于目标属性“成本”的属性值“3”所对应的相应主键值集合{004},可以寻找到包含属性值“004”的主键值集合{001,004},该主键值集合{001,004}是源属性“价格”的属性值“1”所对应的,以及主键值集合{002,004},该主键值集合{002,004}是源属性“数量”的属性值“3”所对应的,并可判断目标属性的相应主键值集合{004}与源属性的主键值集合{001,004}和{002,004}的交集相等。\n[0063] 而对于目标属性“成本”的属性值“6”所对应的相应主键值集合{002,003},可以寻找到包含其中的属性值“002”的、源属性“价格”的属性值“2”所对应的主键值集合{002}以及源属性“数量”的属性值“3”所对应的主键值集合{002,004},并可判断目标属性的相应主键值“002”(或仅包含该主键值的集合{002})与源属性的主键值集合{002}和{002,\n004}的交集相等,还可以寻找到包含其中的属性值“003”的、源属性“价格”的属性值“3”所对应的主键值集合{003}以及源属性“数量”的属性值“2”所对应的主键值集合{003},并可判断目标属性的相应主键值“003”(或仅包含该主键值的集合{003})与源属性的主键值集合{003}和{003}的交集相等。\n[0064] 作为另一种选择,对于目标属性“成本”的属性值“6”所对应的相应主键值集合{002,003},可以获得包含其中的属性值“002”或“003”的、源属性“价格”的属性值“2”所对应的主键值集合{002}以及属性值“3”所对应的主键值集合{003}的并集{002,003},以及源属性“数量”的属性值“2”所对应的主键值集合{003}与属性值“3”所对应的主键值集合{002,004}的并集{003,002,004},并可判断目标属性的相应主键值集合{002,003}与所获得的源属性的主键值集合的并集{002,003}和{003,002,004}的交集相等。\n[0065] 根据本发明的再一个实施例,该步骤302同时包括上述子步骤302-1、302-2、\n302-3和302-4。\n[0066] 根据本发明的一些实施例,上述子步骤302-1中的判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述源数据库表的一个其他属性的各属性值所对应的主键值集合相等或相对应是基于所述目标数据库表的特定属性的全部属性值中超过指定阈值百分比的属性值所对应的相应主键值集合以及所述源数据库表的一个其他属性的全部属性值中超过指定阈值百分比的属性值所对应的主键值集合进行的;上述子步骤302-3中的判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述源数据库表的多个其他属性各自的属性值所对应的主键值集合的交集相等或相对应是基于所述目标数据库表的特定属性的全部属性值中超过指定阈值百分比的属性值所对应的相应主键值集合以及所述源数据库表的多个其他属性的全部属性值中超过指定阈值百分比的属性值所对应的主键值集合进行的。也就是说,并不需要判定所述目标数据库表的特定属性的每一个属性值所对应的相应主键值集合都与所述源数据库表的至少一个其他属性的每一个相应属性值所对应的主键值集合相等或相对应,而只需要判定所述目标数据库表的特定属性的超过指定阈值百分比(例如98%)的属性值所对应的相应主键值集合与所述源数据库表的至少一个其他属性的超过指定阈值百分比(例如98%)的属性值所对应的主键值集合相等或相对应,就可以判断所述源数据库表的所述至少一个其他属性与所述目标数据库表的所述特定属性之间存在潜在的数据映射关系。\n[0067] 根据本发明的另一些实施例,所述判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合与所述源数据库表的至少一个其他属性的各属性值所对应的主键值集合是否相等或相对应是基于所述目标数据库表的特定属性的全部属性值中的每一个属性值所对应的相应主键值集合以及所述源数据库表的至少一个其他属性的全部属性值中每一个相应属性值所对应的主键值集合进行的。\n[0068] 根据本发明的实施例,该步骤302可以由本发明的装置自动执行。\n[0069] 在步骤303,如果判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系,确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系。当在步骤302中判断所述源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间不存在潜在的数据映射关系时,可以针对所述目标数据库表中的其他特定属性重新执行上述步骤301和\n302。\n[0070] 根据本发明的实施例,该步骤303包括以下子步骤:\n[0071] 子步骤303-1,根据所述源数据库表的所述一个其他属性或所述多个其他属性的各属性值所对应的主键值集合与所述目标数据库表的特定属性的各属性值所对应的相应主键值集合之间的对应关系,建立所述源数据库表的所述一个其他属性或所述多个其他属性的各属性值与所述目标数据库表的特定属性的各属性值之间的对应关系。\n[0072] 具体地,对于在步骤302中通过判定目标数据库表的特定属性的各属性值所对应的相应主键值集合与所述源数据库表的一个其他属性的某个属性值所对应的主键值集合相等或相对应,而判断在源数据库表的该其他属性与目标数据库表的该特定属性之间存在潜在的数据映射关系的情况,可以根据目标数据库表的特定属性的每个属性值所对应的相应主键值集合与源数据库表的该其他属性的某个属性值所对应的主键值集合的相等或相对应的关系,建立目标数据库表的特定属性的每个属性值与源数据库表的该其他属性的某个属性值之间的对应关系。\n[0073] 例如,可以根据上述表4所示出的目标数据库表的属性“价格”的各属性值所对应的主键值集合与上述表1所示出的源数据库表的属性“价格”的各属性值所对应的主键值集合之间的相等关系,建立源数据库表的属性“价格”的各属性值与目标数据库表的属性“价格”的各属性值之间的对应关系,该对应关系可以如下表所示:\n[0074] 表5源属性“价格”的属性值与目标属性“价格”的属性值之间的对应关系[0075] \n 源属性“价格”的属性值 目标属性“价格”的属性值\n 1 10\n 2 20\n 3 30\n[0076] 而对于在步骤302中通过判定目标数据库表的特定属性的各属性值所对应的相应主键值集合与所述源数据库表的多个其他属性各自的属性值所对应的主键值集合的交集相等或相对应,而判断在源数据库表的该多个其他属性与目标数据库表的该特定属性之间存在潜在的数据映射关系的情况,可以根据目标数据库表的特定属性的每个属性值所对应的相应主键值集合与源数据库表的该多个其他属性各自的属性值所对应的主键值集合的交集的相等或相对应的关系,建立源数据库表的该多个其他属性各自的属性值与目标数据库表的特定属性的每个属性值之间的对应关系。\n[0077] 例如,可以根据上述表1所示出的源数据库表的属性“价格”的各属性值所对应的主键值集合与上述2所示出的源数据库表的属性“数量”的各属性值所对应的主键值集合的交集与表3所示出的目标数据库表的属性“成本”的各属性值所对应的主键值集合之间的相等关系,建立源数据库表的属性“价格”和“数量”的各属性值与目标数据库表的属性“成本”的各属性值之间的对应关系,该对应关系可以如下表所示:\n[0078] 表6源属性“价格”和“数量”的属性值与目标属性“成本”的属性值之间的对应关系\n[0079] \n[0080] 子步骤303-2,根据所建立的源数据库表的所述一个其他属性或所述多个其他属性的各属性值与所述目标数据库表的特定属性的各属性值之间的对应关系,确定所述源数据库表的所述一个其他属性或所述多个其他属性与所述目标数据库表的特定属性之间的数据映射关系,即确定源数据库表的所述至少一个其他属性与目标数据库表的特定属性之间具体的数据映射关系。\n[0081] 根据本发明的一个实施例,该子步骤395-2可通过以下方式执行:由本发明的装置将在上述子步骤303-1中建立的源数据库表的至少一个其他属性的各属性值与目标数据库表的特定属性的各属性值之间的对应关系呈现给用户,而由用户人工确定源数据库表的所述至少一个其他属性与目标数据库表的特定属性之间具体的数据映射关系。例如,根据表5所示的源属性“价格”的属性值与目标属性“价格”的属性值之间的对应关系,用户可容易地确定源属性“价格”与目标属性“价格”之间具有如下具体的数据映射关系:\n[0082] 源属性“价格”*10=目标属性“价格”;\n[0083] 再例如,根据表6所示的源属性“价格”和“数量”的属性值与目标属性“成本”的属性值之间的对应关系,用户可容易地确定源属性“价格”和“数量”与目标属性“成本”之间具有如下具体的数据映射关系:\n[0084] 源属性“价格”*源属性“数量”=目标属性“成本”。\n[0085] 根据本发明的另一个实施例,该子步骤303-2可由本发明的装置自动执行。本发明的装置可以针对源数据库表的所述至少一个其他属性的每个属性值执行常用的一元或多元数学运算和数据转换操作集中的每一个操作,并判断操作结果是否与目标数据库表的特定属性的对应的属性值一致;当判断针对源数据库表的所述至少一个其他属性的每一个属性值执行特定的数学运算或数据转换操作的结果都与目标数据表的特定属性的对应的属性值一致时,就可以确定源数据库表的所述至少一个其他属性与目标数据库表的所述特定属性之间存在所述特定的数学运算或数据转换关系。所述常用的数学运算和数据转换操作集例如可包括固定系数、加、减、乘、除等操作。\n[0086] 根据本发明的一些实施例,上述子步骤303-2中的确定所述源数据库表的所述一个其他属性或所述多个其他属性与所述目标数据库表的特定属性之间的数据映射关系是基于所建立的源数据库表的所述一个其他属性或所述多个其他属性的全部属性值中超过指定阈值百分比的属性值与所述目标数据库表的特定属性的全部属性值中超过指定阈值百分比的对应属性值之间的对应关系进行的。也就是说,并不需要所述源数据库表的所述一个其他属性或所述多个其他属性的每一个属性值与所述目标数据库表的特定属性的每一个对应的属性值之间都存在要确定的具体数据映射关系,而只需要所述源数据库表的所述一个其他属性或所述多个其他属性的超过指定阈值百分比(例如98%)的属性值与所述目标数据库表的所述特定属性的超过指定阈值百分比(例如98)的对应属性值之间存在要确定的具体数据映射关系。\n[0087] 根据本发明的另一些实施例,上述子步骤303-2中的确定所述源数据库表的所述一个其他属性或所述多个其他属性与所述目标数据库表的特定属性之间的数据映射关系是基于所建立的源数据库表的所述一个其他属性或所述多个其他属性的每一个属性值与所述目标数据库表的特定属性的每一个对应属性值之间的对应关系进行的。\n[0088] 在以上描述的实施例中,步骤302中的判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系是通过比较所述至少一个源数据库表的至少一个其他属性的各属性值所对应的主键值集合与所述目标数据库表的特定属性的各属性值所对应的相应主键值集合来进行的,步骤303中的确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系是根据所述至少一个源数据库表的与主键值集合对应的至少一个其他属性的各属性值以及所述目标数据库表的与相应主键值集合对应的特定属性的各属性值来进行的,但这并非是对本发明的限制。在本发明的其他一些实施例中,如果已知包含了源数据库表与目标数据库表之间的数据转换关系的设计规范,则可以直接根据该设计规范判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系,并确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系。\n[0089] 以上参照附图描述了根据本发明的实施例的用于确定源数据库表和目标数据库表之间的数据映射关系的方法。应指出的是,以上描述仅为示例,而不是对本发明的限制。\n在本发明的其他实施例中,该方法可具有更多、更少或不同的步骤,且各步骤之间的顺序和包含等关系可以与所描述和图示的不同。\n[0090] 在本发明的另一个方面,还提供了一种用于验证数据的方法。根据本发明的实施例,该用于验证数据的方法包括上述根据本发明的实施例的用于确定源数据库表和目标数据库表之间的数据映射关系的方法中的各步骤,并包括如下附加步骤:\n[0091] 附加步骤,根据所述确定的数据映射关系对所述源数据库表的至少一个其他属性的属性值和/或目标数据库表的特定属性的属性值进行验证。\n[0092] 根据本发明的实施例,该附加步骤包括以下附加子步骤中的任何一个或多个:\n[0093] 附加子步骤1,通过将所述确定的数据映射关系与包含源数据库表与目标数据库表之间的数据转换关系的设计规范进行比较来判断所述确定的数据映射关系是否符合设计规范。如果所述确定的数据映射关系符合设计规范,则可判断所述确定的数据映射关系正确;如果所述确定的数据映射关系不符合设计规范,则可判断所述确定的数据映射关系错误,且验证失败。所述设计规范是指诸如BI解决方案的设计规范,其中包括有关如何将诸如业务系统数据库等源数据库中的数据转换为诸如数据仓库等目标数据库中的数据的规定。\n[0094] 根据本发明的实施例,可以由本发明的装置将所确定的数据映射关系呈现给用户,由用户人工判断所确定的数据映射关系是否符合设计规范。当然,也可以考虑由本发明的装置自动判断所确定的数据映射关系是否符合设计规范。\n[0095] 附加子步骤2,判断所述至少一个源数据库表的至少一个其他属性的特定属性值与所述目标数据库表的特定属性的对应属性值之间是否符合所述确定的数据映射关系。如果所述至少一个源数据库表的至少一个其他属性的特定属性值与所述目标数据库表的特定属性的对应属性值之间符合所述确定的数据映射关系,则可判断所述至少一个源数据库表的至少一个其他属性的特定属性值与所述目标数据库表的特定属性的对应属性值的数据正确;如果所述至少一个源数据库表的至少一个其他属性的特定属性值与所述目标数据库表的特定属性的对应属性值之间不符合所述确定的数据映射关系,则可判断所述至少一个源数据库表的至少一个其他属性的特定属性值和/或所述目标数据库表的特定属性的对应属性值存在数据错误。\n[0096] 对于上述子步骤302-1和302-3中的所述判定是基于所述目标数据库表的特定属性的全部属性值中超过指定阈值百分比的属性值所对应的相应主键值集合以及所述源数据库表的一个其他属性或多个其他属性的全部属性值中超过指定阈值百分比的属性值所对应的主键值集合进行的情况,以及/或者上述子步骤303-2中的所述确定是基于所建立的源数据库表的所述至少一个其他属性的全部属性值中超过指定阈值百分比的属性值与所述目标数据库表的特定属性的全部属性值中超过指定阈值百分比的对应属性值之间的对应关系进行的情况,在该子步骤304-2中,可以针对子步骤302-1和302-3中的所述判定以及子步骤303-2中的所述确定所基于的所述源数据库表的至少一个其他属性的属性值之外的其余属性值以及子步骤302-1和302-3中的所述判定以及子步骤303-2中的所述确定所基于的所述目标数据库表的特定属性的属性值之外的其余属性值,来判断所述其余属性值是否符合所述确定的数据映射关系。例如,如果子步骤302-1和302-3中的所述判定以及子步骤303-2中的所述确定是基于所述源数据库表的至少一个其他属性的全部属性值中99%的属性值以及所述目标数据库表的特定属性的全部属性值中99%的属性值进行的,则在子步骤304-2中,可以针对所述源数据库表中的所述至少一个其他属性的其余1%的属性值以及所述目标数据库表中的所述特定属性的其余1%的属性值,来判断其是否符合所述确定的数据映射关系。当然,也可以从所述源数据库表中重新获取所述至少一个其他属性的新的属性值,从所述目标数据库表中重新获取所述特定属性的新的对应属性值,并在子步骤304-2中,针对所述重新获取的新的属性值和对应属性值,来判断其是否符合所述确定的数据映射关系。\n[0097] 而对于上述子步骤302-1和302-3中的所述判定是基于所述目标数据库表的特定属性的每一个属性值所对应的相应主键值集合以及所述源数据库表的一个其他属性或多个其他属性的每一个对应属性值所对应的主键值集合进行的情况,以及/或者上述子步骤\n303-2中的所述确定是基于所建立的源数据库表的所述至少一个其他属性的每一个属性值与所述目标数据库表的特定属性的每一个对应属性值之间的对应关系进行的情况,只能从所述源数据库表中重新获取所述至少一个其他属性的新的属性值,从所述目标数据库表中重新获取所述特定属性的新的对应属性值,并在子步骤304-2中,针对所述重新获取的新的属性值和对应属性值,来判断其是否符合所述确定的数据映射关系。\n[0098] 根据本发明的实施例,可以由本发明的装置自动判断所述至少一个源数据库表的至少一个其他属性的特定属性值与所述目标数据库表的特定属性的对应属性值之间是否符合所述确定的数据映射关系,并在判断所述至少一个源数据库表的至少一个其他属性的特定属性值与所述目标数据库表的特定属性的对应属性值之间不符合所述确定的数据映射关系时,将所述至少一个源数据库表的至少一个其他属性的特定属性值与所述目标数据库表的特定属性的对应属性值呈现给用户,以便由用户进一步判断和处理,或者向用户呈现错误提示。\n[0099] 附加子步骤3,判断所述至少一个源数据库表的所述至少一个其他属性的特定属性值是否具有所述目标数据库表的所述特定属性的对应属性值。如果所述至少一个源数据库表的所述至少一个其他属性的特定属性值具有所述目标数据库的所述特定属性的对应属性值,则表明所述至少一个源数据库表的所述至少一个其他属性的特定属性值不是孤值。如果所述至少一个源数据库表的所述至少一个其他属性的特定属性值不具有所述目标数据库的所述特定属性的对应属性值,则表明所述至少一个源数据库表的所述至少一个其他属性的特定属性值是孤值。此时,可由用户进一步根据设计规范判断这是否是由于应用了设计规范中过滤器逻辑而造成的;如果判断这不是由于应用了设计规范中的过滤器逻辑而造成的,则可判断存在着数据错误。\n[0100] 对于上述子步骤302-1和302-3中的所述判定是基于所述源数据库表的一个其他属性或多个其他属性的全部属性值中超过指定阈值百分比的属性值所对应的主键值集合进行的情况,在该子步骤304-3中,可以针对子步骤302-1和302-3中的所述判定所基于的所述源数据库表的至少一个其他属性的属性值之外的其余属性值,来判断所述其余属性值是否具有所述目标数据库表的所述特定属性的对应属性值。在这种情况下,该子步骤304-3可以在执行子步骤302-1或子步骤302-3的同时执行。也就是说,在判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述源数据库表的至少一个其他属性的各属性值所对应的主键值集合相对应的同时,就可以判断所述至少一个源数据库表的所述至少一个其他属性的特定属性值是否具有所述目标数据库表的所述特定属性的对应属性值,即判断是否所述至少一个源数据库表的所述至少一个其他属性的特定属性值是否是孤值,以及如果是孤值的话,进一步判断该孤值是否是由于应用于符合设计规范的过滤器逻辑而造成的。\n[0101] 根据本发明的实施例,可以由本发明的装置自动判断所述至少一个源数据库表的所述至少一个其他属性的特定属性值是否具有所述目标数据库表的所述特定属性的对应属性值,并在判断所述至少一个源数据库表的所述至少一个其他属性的特定属性值不具有所述目标数据库表的所述特定属性的对应属性值时,将所述至少一个源数据库表的至少一个其他属性的特定属性值呈现给用户,以便由用户进一步根据设计规范判断这是否是由于应用了设计规范中过滤器逻辑而造成的。\n[0102] 附加子步骤4,判断所述目标数据库表的特定属性的特定属性值是否具有所述至少一个源数据库表的至少一个其他属性的对应属性值。如果所述目标数据库的所述特定属性的特定属性值具有所述至少一个源数据库表的所述至少一个其他属性的对应属性值,则表明所述目标数据库的所述特定属性的特定属性值不是孤值。如果所述目标数据库的所述特定属性的特定属性值不具有所述至少一个源数据库表的所述至少一个其他属性的对应属性值,则表明所述目标数据库的所述特定属性的特定属性值是孤值;此时,通常可判断目标数据库中的所述孤值是在ETL过程中产生的脏数据,因而是一种数据错误。\n[0103] 对于上述子步骤302-1和302-3中的所述判定是基于所述目标数据库表的特定属性的全部属性值中超过指定阈值百分比的属性值所对应的相应主键值集合进行的情况,在该子步骤304-4中,可以针对子步骤302-1和302-3中的所述判定所基于的所述目标数据库表的特定属性的属性值之外的其余属性值,来判断所述其余属性值是否具有所述至少一个源数据库表的至少一个其他属性的对应属性值。在这种情况下,该子步骤304-4可以在执行子步骤302-1或子步骤302-3的同时执行。也就是说,在判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述源数据库表的至少一个其他属性的各属性值所对应的主键值集合相对应的同时,就可以判断所述目标数据库表的特定属性的特定属性值是否具有所述至少一个源数据库表的所述至少一个其他属性的对应属性值,即判断所述目标数据库表的特定属性的所述特定属性值是否是孤值或脏数据,从而是一种数据错误。\n[0104] 根据本发明的实施例,可以由本发明的装置自动判断所述目标数据库表的特定属性的特定属性值是否具有所述至少一个源数据库表的至少一个其他属性的对应属性值,并在判断所述目标数据库表的特定属性的特定属性值不具有所述至少一个源数据库表的至少一个其他属性的对应属性值时,将所述目标数据库表的特定属性的特定属性值呈现给用户,以便由用户进一步处理,或者向用户呈现错误提示。\n[0105] 尽管在以上描述中以一个目标数据库中的一个特定属性为例描述了本发明的用于验证数据的方法,但对本领域的技术人员来说显然易见的是,本发明的用于验证数据方法可被逐一地应用于多个目标数据库中的每一个属性。\n[0106] 此外,如本领域的技术人员可理解的,以上描述中的术语“数据库表”应被广义地理解为以行与列的形式组织数据且具有主键的任何数据结构。\n[0107] 以上描述了根据本发明的实施例的用于验证数据的方法,应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例中,该方法可具有更多、更少或不同的步骤,且各步骤之间的顺序和包含等关系可以与所描述的不同。\n[0108] 现参照附图4,其示出了根据本发明的实施例的用于确定源数据库表和目标数据库表之间的数据映射关系的装置。该装置可用来执行以上描述的根据本发明的实施例的用于确定源数据库表和目标数据库表之间的数据映射关系的方法,也就是说,该装置的各部件所执行的操作对应于该方法的各步骤。为简明起见,在以下描述中省略了与以上描述重复的部分细节,因此,可参照以上描述获得对根据本发明的实施例的用于验证数据的装置更详细的了解。\n[0109] 如图4所示,根据本发明的实施例的用于验证数据的装置,包括:属性值剖析模块\n401,用于从至少一个源数据库表中的多行数据获取主键之外的至少一个其他属性的属性值及其对应的主键值集合,并从目标数据库表中的多行数据获取相应主键之外的特定属性的属性值及其对应的相应主键值集合;潜在数据映射关系判断模块402,用于判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系;数据映射关系确定模块403,用于如果判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系,确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系。\n[0110] 根据本发明的实施例,所述潜在数据映射关系判断模块402判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系是通过比较所述至少一个源数据库表的至少一个其他属性的属性值所对应的主键值集合与所述目标数据库表的特定属性的属性值所对应的相应主键值集合来进行的。\n[0111] 根据本发明的进一步的一个实施例,所述潜在数据映射关系判断模块402包括:\n用于判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述至少一个源数据库表的一个其他属性的各属性值所对应的主键值集合相对应的装置;以及用于响应于所述判定为是,判断所述至少一个源数据库表的所述一个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系的装置。\n[0112] 根据本发明的另一个实施例,所述潜在数据映射关系判断模块402包括:用于判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述至少一个源数据库表的多个其他属性各自的属性值所对应的主键值集合的交集相对应的装置;以及用于响应于所述判定为是,判断所述至少一个源数据库表的所述多个其他属性与所述目标数据库表的特定属性之间存在潜在的数据映射关系的装置。\n[0113] 根据本发明的实施例,所述用于判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述至少一个源数据库表的一个其他属性的各属性值所对应的主键值集合相对应的装置以及所述用于判定所述目标数据库表的特定属性的各属性值所对应的相应主键值集合是否与所述至少一个源数据库表的多个其他属性各自的属性值所对应的主键值集合的交集相对应的装置是基于所述目标数据库表的特定属性的全部属性值中超过指定阈值百分比的属性值所对应的相应主键值集合以及所述源数据库表的一个其他属性或多个其他属性的全部属性值中超过指定阈值百分比的属性值所对应的主键值集合进行判定的。\n[0114] 根据本发明的实施例,所述数据映射关系确定模块403包括:用于根据所述至少一个源数据库表的所述一个其他属性或所述多个其他属性的各属性值所对应的主键值集合与所述目标数据库表的特定属性的各属性值所对应的相应主键值集合之间的对应关系,建立所述至少一个源数据库表的所述一个其他属性或所述多个其他属性的各属性值与所述目标数据库表的特定属性的各属性值之间的对应关系的装置;以及用于根据所建立的所述至少一个源数据库表的所述一个其他属性或所述多个其他属性的各属性值与所述目标数据库表的特定属性的各属性值之间的对应关系,确定所述至少一个源数据库表的所述一个其他属性或所述多个其他属性与所述目标数据库表的特定属性之间的数据映射关系的装置。\n[0115] 根据本发明的实施例,所述用于确定所述源数据库表的所述一个其他属性或所述多个其他属性与所述目标数据库表的特定属性之间的数据映射关系的装置是基于所建立的源数据库表的所述一个其他属性或所述多个其他属性的全部属性值中超过指定阈值百分比的属性值与所述目标数据库表的特定属性的全部属性值中超过指定阈值百分比的对应属性值之间的对应关系进行确定的。\n[0116] 根据本发明的实施例,所述潜在数据映射关系判断模块402判断所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间是否存在潜在的数据映射关系以及所述数据映射关系确定模块403确定所述至少一个源数据库表的至少一个其他属性与所述目标数据库表的特定属性之间的数据映射关系是基于包含源数据库表与目标数据库表之间的数据转换关系的设计规范进行的。\n[0117] 以上参照附图描述了根据本发明的实施例的用于确定源数据库表和目标数据库表之间的数据映射关系的装置,应指出的是,以上描述仅为示例,而不是对本发明的限制。\n在本发明的其他实施例中,所述装置可具有更多、更少或不同的部件,且各部件之间的连接、包含、功能等关系可以与所描述和图示的不同。\n[0118] 在本发明的另一个方面,还提供了一种用于验证数据的装置。根据本发明的实施例,该用于验证数据的装置包括上述根据本发明的实施例的用于确定源数据库表和目标数据库表之间的数据映射关系的装置中的各模块,并包括如下附加模块:验证模块,用于根据所述确定的数据映射关系对所述至少一个源数据库表的至少一个其他属性的属性值和/或目标数据库表的特定属性的属性值进行验证。\n[0119] 根据本发明的实施例,所述验证模块包括以下各项中的任何一个或多个:用于通过将所述确定的数据映射关系与设计规范进行比较来判断所述确定的数据映射关系是否符合设计规范的装置;用于判断所述至少一个源数据库表的至少一个其他属性的特定属性值与所述目标数据库表的特定属性的对应属性值是否符合所述确定的数据映射关系的装置;用于判断所述至少一个源数据库表的至少一个其他属性的特定属性值是否具有所述目标数据库表的特定属性的对应属性值的装置;用于判断所述目标数据库表的特定属性的特定属性值是否具有所述至少一个源数据库表的至少一个其他属性的对应属性值的装置。\n[0120] 根据本发明的实施例,所述目标数据库表为商业智能解决方案中的数据仓库中的数据库表,所述至少一个源数据库表是作为数据仓库的数据源的业务系统数据库中的数据库表。\n[0121] 以上描述了根据本发明的实施例的用于验证数据的装置,应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例中,所述装置可具有更多、更少或不同的部件,且各部件之间的连接、包含、功能等关系可以与所描述的不同。\n[0122] 本发明可以硬件、软件、或硬件与软件的结合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。一种典型的硬件和软件的组合可以是带有计算机程序的通用计算机系统,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,并构成本发明的装置。\n[0123] 本发明也可体现在计算机程序产品中,该程序产品包含使能实现本文中描述的方法的所有特征,并且当其被加载到计算机系统中时,能够执行所述方法。\n[0124] 尽管已参照优选实施例具体示出和说明了本发明,但是本领域内的那些技术人员应理解,可在形式和细节上对其进行各种改变而不会背离本发明的精神和范围。
法律信息
- 2022-02-22
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 201110047151.9
申请日: 2011.02.28
授权公告日: 2015.02.11
- 2015-02-11
- 2012-10-17
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201110047151.9
申请日: 2011.02.28
- 2012-08-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-04-21
|
2009-10-28
| | |
2
| |
2008-05-28
|
2006-11-17
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |