CN112654976A - 比较并选择性地合并数据库记录的***和方法 - Google Patents
比较并选择性地合并数据库记录的***和方法 Download PDFInfo
- Publication number
- CN112654976A CN112654976A CN201980052833.3A CN201980052833A CN112654976A CN 112654976 A CN112654976 A CN 112654976A CN 201980052833 A CN201980052833 A CN 201980052833A CN 112654976 A CN112654976 A CN 112654976A
- Authority
- CN
- China
- Prior art keywords
- database
- parent
- key value
- target
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 35
- 238000004590 computer program Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 16
- 238000007596 consolidation process Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 29
- 238000007726 management method Methods 0.000 description 23
- 230000000694 effects Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000010354 integration Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000001174 ascending effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000026676 system process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000003638 chemical reducing agent Substances 0.000 description 3
- 238000004549 pulsed laser deposition Methods 0.000 description 3
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000007797 non-conventional method Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
- G06F7/14—Merging, i.e. combining at least two sets of record carriers each arranged in the same ordered sequence to produce a single set having the same ordered sequence
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施方式允许源数据库和目标数据库以这样的方式进行比较和合并,即,考虑和合并逻辑上相关的数据,同时忽略不相关的差异(例如,对象标识符),并且考虑和合并跨关系数据库表的所有依赖关系。本文参考诸如来自Intergraph公司的Intergraph SmartTM参考数据产品的标准数据库(SDB)之类的数据库来讨论一些示例性实施方式,并且这些示例性实施方式一般被称为“SDB合并工具”,尽管所公开的概念可以更一般地应用于其它类型的数据库。
Description
相关申请的交叉引用
本申请要求于2018年6月16日在印度提交的名称为“SYSTEM AND METHOD FORCOMPARING AND SELECTIVELY MERGING DATABASE RECORDS”的印度专利申请No.201841022589以及于2018年8月17日提交的名称为“SYSTEM AND METHOD FORCOMPARING AND SELECTIVELY MERGING DATABASE RECORDS”的美国专利申请No.16/104,361的优先权,其全部内容通过引用合并于此。
技术领域
本发明总体上涉及数据库***,并且更具体地,涉及将来自源数据库的数据库记录与第二数据库进行比较并选择性地进行合并。
背景技术
数据库存储各种对象的数据。在一些数据库中,与特定对象相关联的数据可以分布在多个关系数据库表中,其中一个关系数据库表可以交叉引用一个或更多个其它关系数据库表(本文中,为方便起见,称为父表或依赖关系(dependency))。
发明内容
根据本发明的一个实施方式,一种方法、数据库***和计算机程序产品允许将对象从源数据库合并到目标数据库,其中,所述对象与存储在源数据库中的多个关系数据库表中的数据相关联。这种合并涉及获得对象的主键;使用对象的主键查询源数据库,以从第一关系数据库表中获得主键值;标识与所述对象相关联的父对象,所述父对象与第二关系数据库表相关联;获得父对象的父键;使用所述父键查询所述源数据库,以从所述第二关系数据库获得父键值;使用父键值查询目标数据库,以确定父键值是否存在于目标数据库中的父对象记录中;当父键值未存在于目标数据库中的父对象记录中时,将包含父键值的父对象记录添加到目标数据库中;以及将包括主键值和对父键记录中的父键值的引用的对象记录添加到目标数据库。
在各种另选实施方式中,使用父键查询源数据库以从第二关系数据库获得父键值可以包括连接第一关系数据库表和第二关系数据库表。将包括父键值的父对象记录添加到目标数据库可以包括为父键值分配标识符,其中该标识符在目标数据库中是唯一的并且与源数据库中的父键值的对应标识符不同。在这种情况下,对父键值的引用可以包括为父键值分配的唯一标识符。将对象记录添加到目标数据库可以涉及为主键值分配标识符,其中该标识符在目标数据库中是唯一的并且与源数据库中的主键值的对应标识符不同;并且当父键值存在于目标数据库中的父对象记录中时,对父键值的引用可以包括与现有父键值相关联的标识符。
在任何上述实施方式中,合并可以涉及维护配置文件,该配置文件描述存储在多个关系数据库表中的数据,所述配置文件包括对象的主键和多个关系数据库表之间的关系,其中对象的主键、父对象的标识和父键是从配置文件获得的。可以公开和要求保护其它实施方式。
附图说明
该专利或申请文件包含至少一幅彩色附图。专利局将依请求和必要费用的支付来提供具有彩色附图的本专利或专利申请公开的副本。
通过参考以下结合附图的详细描述,将更容易理解实施方式的前述特征,其中:
图1示出了示例GUI前端显示,其示出与被称为货币(CURRENCY)的单位组相关联的各个单位的表示。
图2示出了根据一个示例性实施方式的被命名为M_UNITS的示例表,该示例表定义了诸如货币、重量等各种单位。
图3是根据一个示例性实施方式的被命名为M_UNIT_GROUPS的示例单位组表。
图4示出了根据示例性实施方式的包括UNIT_ID值的失配的示例源数据库状态和示例目标数据库状态。
图5示出了根据示例性实施方式的包括父依赖关系的示例源数据库状态和示例目标数据库状态。
图6示出了根据示例性实施方式的包括UG_ID值的失配的示例源数据库状态和示例目标数据库状态。
图7示出了根据示例性实施方式的包括UG_CODE值的失配的示例源数据库状态和示例目标数据库状态。
图8示出了根据示例性实施方式的示例源数据库状态和示例目标数据库状态,其中源数据库中的对象不存在于目标数据库中。
图9示出了根据示例性实施方式的示例源数据库状态和示例目标数据库状态,其中目标数据库中的对象不存在于源数据库中。
图10示出了根据示例性实施方式的示例源数据库状态和示例目标数据库状态,其中源数据库中的对象不存在于目标数据库中。
图11示出了根据示例性实施方式的图10的源数据库和目标数据库的连接(join)操作的结果。
图12示出了根据示例性实施方式的当基于图10至图11的数据库状态将UG_CODE=重量(WEIGHT)添加到目标数据库时的示例源数据库状态和示例目标数据库状态。
图13示出了根据示例性实施方式的当基于图12的数据库状态将UNIT_CODE=kg添加到目标数据库时的示例源数据库状态和示例目标数据库状态。
图14至图16根据示例性实施方式共同形成了参考图10至图13描述的合并处理的流程图。
图17示出了根据示例性实施方式的示例源数据库状态和示例目标数据库状态,其中UG_CODE=重量存在于目标数据库中,但UNIT_CODE=kg不存在于目标数据库中。
图18示出了根据示例性实施方式的当基于图17的数据库状态将UNIT_CODE=kg添加到目标数据库时的示例源数据库状态和示例目标数据库状态。
图19示出了根据示例性实施方式的基表M_UNITS中的单个基记录与扩展表M_UNIT_NLS中的多个记录(具体是NLS_ID=1和NLS_ID=2的扩展表记录)相关联的示例。
图20示出了根据图19的实施方式的将NLS_ID=1用作默认值的示例。
图21示出了根据图19的实施方式的将NLS_ID=2用作默认值的示例。
图22示出了根据示例性实施方式的示例数据库状态,其中存在为了比较和合并数据库而需要被处理的多个级别的依赖关系。
图23示出了根据示例性实施方式的当基于图22的数据库状态将X_CODE=物理(PHYSICAL)添加到目标数据库时的示例源数据库状态和示例目标数据库状态。
图24示出了根据示例性实施方式的当基于图23的数据库状态将UG_CODE=重量添加到目标数据库时的示例源数据库状态和示例目标数据库状态。
图25示出了根据示例性实施方式的当基于图24的数据库状态将UNIT_CODE=kg添加到目标数据库时的示例源数据库状态和示例目标数据库状态。
图26示出了根据示例性实施方式的示例源数据库状态和示例目标数据库状态,其中对象在同一级别具有多个依赖关系。
图27示出了根据示例性实施方式的当基于图26的数据库状态将X_CODE=物理和UG_CODE=重量添加到目标数据库时的示例源数据库状态和示例目标数据库状态。
图28示出了根据示例性实施方式的当基于图27的数据库状态将UNIT_CODE=kg添加到目标数据库时的示例源数据库状态和示例目标数据库状态。
图29是示出根据示例性实施方式的针对S3D信息的示例数据比较(DataComparison)窗口的带注释的屏幕截图。
图30是示出根据示例性实施方式的用于传输作业(Transfer Jobs)信息的示例数据比较窗口的屏幕截图。
图31是示出根据示例性实施方式的用于说明(Notes)信息的示例数据比较窗口的屏幕截图。
图32是示出根据示例性实施方式的示例数据比较窗口的屏幕截图,其中所有显示的记录在两个数据库中是相同的。
图33是示出根据示例性实施方式的四个活动SDB合并工具(SDB Merge Tool)窗口的屏幕截图。
图34是示出根据示例性实施方式的示例对象依赖关系层次结构(ObjectDependency Hierarchy)窗口的屏幕截图。
图35是示出根据示例性实施方式的第一格式下的“导出到Excel(Export toExcel)”窗口的屏幕截图,其中记录是按照相同、仅源、仅目标和不同来排序的。
图36是示出根据示例性实施方式的第二格式下的“导出到Excel”窗口的屏幕截图,其中突出显示了个体差异。
应当注意,前述附图和其中描绘的元素不一定按一致比例或按任何比例来绘制。除非上下文另有说明,否则相同的元素由相同的标记来表示。
具体实施方式
本发明的实施方式允许以这样的方式来比较和合并源数据库和目标数据库,即,考虑和合并逻辑上相关的数据而忽略不相关的差异(例如,对象标识符,其在该上下文中是指数据库表的序列号/标识符(ID)),并且考虑和合并跨关系数据库表的所有依赖关系。本文参考诸如来自Intergraph公司的Intergraph SmartTM参考数据产品的标准数据库(SDB)之类的数据库来讨论一些示例性实施方式,并且这些示例性实施方式一般被称为“SDB合并工具(SDB Merge Tool)”,尽管所公开的概念可以更一般地应用于其它类型的数据库。
作为本发明基础的技术问题可以被视为提供一种自动比较两个数据库、标识两个数据库之间的差异、以及将不匹配的数据从一个数据库(本文称为“源(Source)”数据库)合并到另一个数据库(本文称为“目标(Target)”数据库)的方法。通常,与逻辑(业务)对象相关联的数据将分布在数据库内的多个关系数据库表中(有时称为“范式(normalization)”),使得需要访问或合并多个表,以便将特定逻辑(业务)对象作为单个记录呈现给不理解底层数据库结构和设计的用户。因此,示例性实施方式在列出与逻辑业务对象相关联的表以及表之间的关系的配置文件中定义各个逻辑(业务)对象。可以使用配置文件中提供的信息来形成特定逻辑(业务)实体的记录,例如,通过标识相关表并访问或连接这些表来获得记录所需的所有数据。然后,可以将来自一个数据库的该记录与另一个数据库进行比较。可以提供图形用户界面来显示两个数据库是如何比较的(例如,一般或者根据特定类型的差异来标识差异)。例如,可以在数据网格视图中并排显示差异。根据这样的图形用户界面,用户可以使来自源数据库的数据被合并到目标数据库中(例如,通过选择网格中的不匹配记录并将该记录保存到目标数据库)。重要的是,这种从源数据库到目标数据库的数据合并维护了跨关系数据库表中的所有依赖关系。
SDB合并工具是基于网络(web)的工具,它将提供查看/比较两个标准数据库(SDB:Standard Database)数据库的功能,并在用户直观数据网格界面中提供差异。用户可以查看并列数据网格中的差异,选择需要合并的数据并将数据保存到数据库中。该工具提供了将所需内容从一个数据库选择性地合并并保存到另一个数据库的灵活性。
示例性SDB合并工具的一些特征包括:
●直观的基于网络的用户界面,以查看并排数据网格中的差异并将所需数据从一个SDB数据库合并到另一个SDB数据库。
●源网格和目标网格两者的同步水平和垂直滚动、过滤、排序、列尺寸调整。
●能够自动标识将所选数据合并到目标数据库所需的强制父依赖关系的能力。如果保存了子业务对象,那么如果目标数据库中不存在已有的强制父业务对象,则也将强制父业务对象保存到目标数据库中。
●能够选择高级别业务对象并将该高级别业务对象与其子依赖关系数据合并到目标数据库的能力。
●能够根据数据模型来配置业务(Business)对象层次结构树的能力。
●能够将来自两个数据库的数据报告到Excel文件中的能力。用户可以点击节点并报告与该对象相关的数据。并排报告各个特性(attribute)值的数据。这使得能够容易地比较数据差异。
示例SDB***
通常,SDB***将包括关系数据库后端以及图形用户界面(GUI)前端,在关系数据库后端中,数据被存储在各种关系数据库表中,并且GUI前端允许用户能够使数据可视化并且对数据进行操纵的。通常,GUI前端将存储在关系数据库表中的数据的许多详细信息隐藏起来。例如,特定的逻辑(业务)对象(例如,诸如管道之类的产品)可以是基于跨多个关系数据库表分布的数据(例如,制造商、材料、长度、内径、外径、线程、成本、重量等)的,但是GUI前端通常允许用户查看和操纵关于该对象的信息,而无需用户知道关于底层表或数据在表中的存储方式的任何信息。
例如,特定SDB***可以定义用于指定逻辑(业务)对象(例如,诸如澳大利亚元和加拿大元之类的货币、诸如千克和磅之类的重量、诸如平方米和平方英尺之类的面积单位等)的各种单位。在SDB后端内,这些单位可以存储在关系数据库表中(例如,这里称为“单位(Unit)”表)。SDB后端可以在单独的关系数据库表(例如,本文中称为“单位组(UnitGroup)”表)中定义各种单位组(例如,被命名为“货币”、“重量”、“面积”等的单位组)。在SDB内,各种单位和单位组可以被分配有唯一标识符(例如,数字标识符)。例如,针对各个单位,通过将来自单位组表的相关联单位组的标识符存储在单位表中,单位表中的各个单位可以与单位组表中多个单位组中的一个单位组相关联(例如,单位澳大利亚元和加拿大元可以与被称为“货币”的单位组相关联,单位千克和磅可以与被称为“重量”的单位组相关联,单位平方米和平方英尺可以与被称为“面积”的单位组相关联等)。
图1示出了示例GUI前端显示,其示出与被称为货币(CURRENCY)的单位组相关联的各个单位的表示。此处各个单位具有用户可以看到的各种属性(property),包括:
●单位组(Unit Group)
●单位(Unit)
●简短描述(Short Desc)
●描述(Description)
●精度(Precision)
这些属性与其它数据一起被存储在SDB后端的各种关系数据库表中。
图2示出了根据一个示例性实施方式的被命名为M_UNITS的示例表,该示例表定义了诸如货币、重量等各种单位。此处M_UNITS表包括以下列:
●UNIT_ID:主键。它是序列的值。
●UG_ID:单位组的ID,它留存于不同的表中。
●UNIT_CODE:直接属性。单位。
●USR_ID:直接属性。上次修改用户。
●LMOD:直接属性。上次修改时间。
●INT_REV:直接属性。更新的序号。
●PRECISION:直接属性。精度。
●SDB_INFO:直接属性。SDB信息-用户可以在此字段中添加自定义数据。
注意,列UG_ID包括对独立单位组表(未示出)的引用。具体地,单位kg/m和kg/1000pc与单位组ID(UG_ID)为5012的单位组相关联,单位deg与单位组ID(UG_ID)为5008的单位组相关联,单位m2/UOM与单位组ID(UG_ID)为5000的单位组相关联,单位AED和AUD与单位组ID(UG_ID)为5007的单位组相关联。
M_UNITS表没有单位组属性的数据。因此,需要通过与单位组表进行连接来获得单位组属性的数据。图3是根据一个示例性实施方式的被命名为M_UNIT_GROUPS的示例单位组表。与M_UNITS表中一样,M_UNIT_GROUPS表通常将包含附加列(为方便起见未示出),所述附加列包括:例如,
●上次修改用户。
●更新的序号。
●上次修改时间。
M_UNIT_GROUPS表所需的一些数据可能必须通过与一个或更多个其它表进行连接来获得。
而且,M_UNITS表不具有在图1的GUI前端显示中显示的Short Desc和Description字段的数据,因此需要通过与一个或更多个其它表(例如,使用M_UNITS表的UNIT_ID字段访问)进行连接来获得该数据。
应当注意,图1的GUI前端显示隐藏了关于底层关系数据库表以及数据在表中如何存储的信息。因此,用户能够在对象级别处工作,而SDB***在后台处理所有关系数据库操作。
比较源SDB数据库和目标SDB数据库
有时可能需要或希望比较两个SDB数据库。在这方面,SDB合并工具需要比较数据的含义而不是比较例如对象标识符,并且需要考虑跨关系数据库表中扩展的依赖关系。例如,假设源数据库和目标数据库包括图4所示的条目。注意,源数据库将UNIT_ID=5440与UNIT_CODE=kg/m相关联,而目标数据库将UNIT_ID=5440与UNIT_CODE=deg相关联。因此,看起来两个数据库关于该对象是不匹配的。然而,在示例性实施方式中,该标识符失配不被认为是两个数据库之间的失配,因为SDB合并工具将UNIT_CODE与UNIT_CODE进行比较,而不是将UNIT_ID与UNIT_ID进行比较。因此,在该示例中,SDB合并工具将(UNIT_CODE=kg/m,UNIT_ID=5440)与(UNIT_CODE=kg/m,UNIT_ID=5304)进行比较并标识匹配,而不是将(UNIT_CODE=kg/m,UNIT_ID=5440)与(UNIT_CODE=deg,UNIT_ID=5440)进行比较并不正确地标识失配。
在示例性实施方式中,SDB合并工具必须更进一步以便比较两个数据库,特别是当对象具有跨关系数据库表的依赖关系时(诸如在上述示例中的M_UNITS表中的单位与M_UNIT_GROUPS表中的单位组之间的依赖关系)。现在假设源数据库和目标数据库包括图5所示的条目。此处,SDB合并工具不仅可以确定UNIT_CODE=kg/m存在于两个数据库中,而且可以确定各个数据库将UNIT_CODE=kg/m与具有UG_CODE=重量的单位组相关联。因此,SDB合并工具可以确定两个数据库关于该对象匹配。
类似地,SDB合并工具不仅可以确定两个数据库中都存在UNIT_CODE=deg,而且各个数据库都将UNIT_CODE=deg与具有UG_CODE=温度的单位组相关联。因此,SDB合并工具可以确定两个数据库关于该对象匹配。
为了执行这种比较,SDB合并工具必须通过连接适当的表来获得与各个逻辑(业务)对象相关联的逻辑数据。在上述示例中,例如,为了获得与单位kg/m和deg相关联的逻辑数据,SDB合并工具必须连接M_UNITS表和M_UNIT_GROUPS表。
与上述两个数据库中的单位kg/m的UNIT_ID不匹配的情况类似,单位组的UG_ID将可能也不匹配。假设源数据库和目标数据库包括图6所示的条目。此处即使目标数据库中的重量(WEIGHT)和温度(TEMPERATURE)的单位组标识符与源数据库中的单位组标识符不匹配,SDB合并工具也可以不仅确定UNIT_CODE=kg/m存在于两个数据库中,而且确定各个数据库将UNIT_CODE=kg/m与具有UG_CODE=重量的单位组相关联,因为SDB合并工具比较单位代码而不是单位标识符。因此,SDB合并工具可以确定两个数据库关于该对象匹配。
类似地,SDB合并工具不仅可以确定UNIT_CODE=deg存在于两个数据库中,而且可以确定各个数据库将UNIT_CODE=deg与具有UG_CODE=温度的单位组相关联,因为SDB合并工具比较单位代码而不是单位标识符。因此,SDB合并工具可以确定两个数据库关于该对象匹配。
也可能是特定单位将在两个数据库中匹配,但是父依赖关系(即,在该示例中的单位组)将不匹配。假设源数据库和目标数据库包括图7所示的条目。此处,具有UNIT_CODE=deg的单位存在于两个数据库中,但是与源数据库中的单位组温度(TEMPERATURE)和目标数据库中的单位组角度(ANGLE)相关联。由于SDB合并工具比较包括其所有依赖关系的对象,所以当SDB数据库比较具有UNIT_CODE=deg的单位的用户组时,SDB数据库可以标识失配。
当然,源数据库中还可能存在目标数据库中不存在的对象。假设源数据库和目标数据库包括图8所示的条目。此处,目标数据库不包括具有UNIT_CODE=deg的单位。当SDB合并工具在目标数据库中搜索具有UNIT_CODE=deg的单位时,它可以标识这个不匹配。
类似地,目标数据库中也可能存在源数据库中不存在的对象。假设源数据库和目标数据库包括图9所示的条目。此处,源数据库不包括具有UNIT_CODE=deg的单位。当SDB合并工具在源数据库中搜索来自目标数据库的具有UNIT_CODE=deg的单位时,或者通过以其他方式标识目标数据库中的当将来自源数据库的对象与目标数据库进行比较时未被访问的任何对象,SDB合并工具可以标识这个不匹配。
因此,在两个数据库的比较期间,各个逻辑(业务)对象可被分类为以下不同类别中的一个类别:
●相同-对象存在于源数据库和目标数据库两者中,并且所有属性在两个数据库中都匹配。
●仅源-对象存在于源数据库中,但不存在于目标数据库中。
●仅目标-对象存在于目标数据库中,但不存在于源数据库中。
●不同-对象存在于源数据库和目标数据库两者中,但少数属性不匹配。
配置文件
如上所述,为了获得与各个逻辑(业务)对象相关联的逻辑数据以便可以比较数据库,SDB合并工具可能必须连接多个表。在典型的SDB数据库中,编写和维护比较与SDB数据库相关联的所有逻辑对象的SQL查询是不切实际的。因此,在示例性实施方式中,SDB合并工具维护定义包括逻辑依赖关系的SDB数据库的逻辑对象结构的配置文件。SDB合并工具根据配置文件生成以动态***和更新脚本形式的可执行查询,以比较和复制数据库对象。
在示例性实施方式中,各个逻辑(业务)对象由BODefinition元素定义,该BODefinition元素包含对象名、用于从数据库获取数据的基表以及在用户界面中显示的可选显示名称。它还定义了属性列表、主键和唯一属性。
以下是根据示例性实施方式的示例BODefinition定义:
Name:定义逻辑对象名(Name)的特性。它对于整个配置是唯一的。
BaseTable:在定义对象数据的数据库中定义主表的特性。
DisplayName:定义要在用户界面中显示的名称的可选特性。如果未定义,则使用Name值。
PrimaryKey:定义逻辑对象主键的元素。
UniqueKey:定义逻辑对象的唯一键的元素。
Properties:定义逻辑对象的属性的元素。
以下是根据示例性实施方式的示例PrimaryKey定义:
PrimaryKey:定义基表的主键的元素。它包含作为主键一部分的列的列表。
PrimaryKeyColumn:定义主列的元素。
PrimaryKeyColumn的Column:定义列名的特性。
PrimaryKeyColumn的Sequence:定义用于获取下一个值的序列的特性。如果在父表中将列定义为主键,则Sequence是可选的。
以下是根据示例性实施方式的示例UniqueKey定义:
UniqueKey:定义逻辑对象的部分唯一键的属性的元素。它包含作为唯一键的一部分的属性列表
UniqueProperty:定义唯一属性的元素。
UniqueProperty的Name:定义唯一属性名的特性。
以下是根据示例性实施方式的示例属性(Properties)定义:
Properties:定义逻辑对象的属性的元素。它包含属性元素的列表。
Property:定义逻辑对象的单个属性的元素。
Property的Name:定义属性名的特性。
Property的DbColumn:定义在其中定义属性的数据的数据库列的特性。
Property的UseForProperty:定义属性是否应该用于逻辑对象的比较的特性。
Property的ExtensionColumn:定义在其中定义数据的扩展表的列名的特性。
Property的ExtensionTable:定义包含除基表之外的逻辑对象的附加信息的表名的特性。当连接扩展表只需要列,并且扩展表和基表两者中的列名相同时,可以使用ExtensionTable定义扩展表关系。否则使用扩展(Extension)元素。
Property的ParentName:在定义数据的父对象中定义列名的特性。
Property的ParentBO:定义父逻辑对象名的特性。其中定义了实际数据。当仅需要一个级别的父层次结构并且父表和基表两者中的列名相同时,可以使用ParentBO进行定义。否则使用父(Parent)元素。这允许简短地处理父关系的定义。
以下是根据示例性实施方式的示例Join定义:
Join:定义如何连接两个表的元素。
Join的Column:定义来自基表的连接列的特性。
Join的JoinColumn:定义来自父表/扩展表的连接列的特性。
Join的DefaultValue:定义在扩展表针对单个基表记录而定义多个数据记录时在连接操作中使用的默认记录的特性。图19示出了基表M_UNITS中的单个基记录与扩展表M_UNIT_NLS中的多个记录(具体是具有NLS_ID=1和NLS_ID=2的扩展表记录)相关联的示例。默认值指定在用户未指定扩展表记录的情况下应该使用哪个扩展表记录。图20示出NLS_ID=1用作默认值的示例。图21示出NLS_ID=2用作默认值的示例。
示例配置文件模式
下面是根据示例性实施方式的用于配置xml的示例配置文件模式:
示例配置文件
下面是在参考图1至图9示出和描述的示例中使用的关系数据库表的类型的示例配置文件:
注意,在此配置文件中,下列字段未被用于比较目的(即,所有字段具有useforComparison=“假”):
UNIT_CODE
DESCRIPTION
USER_ID
LMOD
INT_REV
用于比较和合并的查询生成
使用配置文件中定义的BODefinition,SDB合并工具动态地准备适当的SQL查询,以获取与逻辑(业务)对象相关联的数据,并且比较来自两个数据库的数据并适当地对数据对象进行分类,这将在下面更详细地讨论。
以下是生成查询以检索与逻辑对象相关联的数据的一些示例。在这些示例中,BaseTable是针对业务对象的主表,并且被给予别名(例如,bt)。顶层查询形成如下:
select{column_list}from M_UNITS bt
所达到的列的列表如下。对于各个属性,在列的列表中存在具有别名的列。检索不同属性的数据的示例查询如下所示。
案例1:直接在基表中定义的属性。来自基表的DbColumn被用作选择器并且Name可以被用于别名。
例如:<Property Name="UG_CODE"DbColumn="UG_CODE"/>
列将为bt.UG_CODE UG_CODE
案例2:具有按列连接的父表定义的值的属性,例如:
例如:
通过连接来自基表和父表中的列,可以从ParentBo的基表中选择ParentName值。Name值用作别名(Alias)。
如果存在多个父项,则将它们连接起来以获得属性的值,例如:
并集(union)、交集(intersect)和差集(minus)的数据库功能用于比较数据和对逻辑对象进行分类。具体而言,创建数据库链接以将一个数据库连接到另一个数据库(即,源到目标以及目标到源)。当查询表时,可以将后缀或前缀添加到表名,例如table@remote_link、remote_link.table。
在下面针对各种不同类别的“骨架(skeleton)”查询中使用以下标记(notation):
●all_properties是包含所有属性的列的列表
●compare_properties是包含可比较属性的列的列表
●unique_properties是包含作为唯一键的一部分的属性的列的列表
●null_columns是定义空值的列的列表。这用于匹配并集查询的所有子查询中的列数。
相同查询
仅源查询
不同查询
为了获得所有类别的记录,可以使用并集来组合所有上述查询,或者可以查询单个类别结果。基于关系数据库管理***(Relational Database Management System),查询可以具有变化并且可以被调整以获得更好的性能。
以下是用于比较和从源SDB(Source SDB)数据库中获取数据的示例查询:
示例-将对象和父项(parent)合并到目标中
下面是对存在于源数据库中但不存在于目标数据库中的对象进行合并的示例。假设源数据库和目标数据库包括图10所示的条目。此处,源数据库包括目标数据库中不存在的具有UNIT_CODE=kg的单位。为了简单起见,仅示出了唯一属性和主键数据。如上所述,该失配可以通过图形用户界面呈现给用户。用户可以选择将来自源数据库的对象保存到目标数据库中,在这种情况下,SDB合并工具将相关数据从源数据库合并到目标数据库中。
在示例性实施方式中,SDB合并工具首先基于配置文件来连接适当的表。图11示出根据该示例的源数据库和目标数据库的连接操作的结果。
基于连接操作的结果,SDB合并工具可以识别出具有UNIT_CODE=kg的单位存在于源数据库中,但不存在于目标数据库中。SDB合并工具还可以识别出具有UNIT_CODE=kg的单位在单位组表中具有UG_CODE=重量的父项,但目标数据库中没有具有UG_CODE=重量的单位组。因此,SDB合并工具将具有UG_CODE=重量的单位组添加到目标数据库,从而导致图12所示的数据库状态。注意,在具有UG_CODE=重量的单位组中添加了单位组标识符(UG_ID)22,其在目标数据库中是唯一的,并且不同于源数据库中用于UG_CODE=重量的UG_ID20。这是因为UG_ID=20可能已经在目标数据库中与某个其它单位组相关联地使用。
在将具有UG_CODE=重量的单位组添加到目标数据库之后,SDB合并工具将具有UNIT_CODE=kg的单位添加到目标数据库,从而导致图13所示的数据库状态。注意,在具有UNIT_CODE=kg的单位中添加了目标数据库中唯一的UNIT_ID=1007,与此相对地,在源数据库的具有UNIT_CODE=kg的单位中添加了UNIT_ID=1003。这是因为UNIT_ID=1003可能已经在目标数据库内与某个其它单位相关联地使用。
作为结果,现在源数据库和目标数据库关于该对象是匹配的。注意,单位组的依赖关系是与单位一起自动***到目标数据库中的。
图14至图16根据示例性实施方式共同形成了上述合并处理的流程图。在框1402中,SDB合并工具基于配置文件来获得单位对象的唯一键属性,在该示例中,该唯一键属性是具有UNIT_CODE=kg的单位。在框1404中,SDB合并工具基于配置文件获得单位对象的主键,在该示例中,该主键是UNIT_ID。在框1406中,SDB合并工具然后使用唯一键来查询源数据库,在该示例中,该唯一键是UNIT_CODE=kg。然后,在框1408中,SDB合并工具基于配置文件来检查对象是否具有任何父对象。在此示例中,单位对象具有父单位组(即,框1408中为是)。因此,在框1410中,SDB数据库基于配置文件获得唯一键父对象,在该示例中,该唯一键父对象是UG_CODE。然后,在框1412中,SDB合并工具通过与在配置文件中定义的UG_ID进行连接来从源数据库获得父唯一键值。然后,在框1414中,SDB合并工具使用所获得的父唯一键值来查询目标数据库,在该示例中,父唯一键值是UG_CODE=重量。然后,在框1416中,SDB合并工具确定UG_CODE=重量记录在目标数据库中是否可用。在该示例中,UG_CODE=重量记录在目标数据库中不可用(即,框1416中为否),所以SDB合并工具返回到框1408以检查UG_CODE=重量对象是否又具有任何父对象。在该示例中,UG_CODE=重量对象不具有任何父对象(框1408中为否),所以SDB合并工具前进到框1418,在框1418中,SDB合并工具将UG_CODE=重量框***到UG_ID=22的M_UNIT_GROUPS表中,如图12所示。然后,在框1420中,SDB合并工具确定主键的值(即,UNIT_ID=1007),并在框1422中,将记录添加到M_UNITS表,从而导致图13所示的数据库状态。
示例-使用现有父项将对象合并到目标中
作为上述示例的变型,目标数据库可以已经包括具有UG_CODE=重量的单位组,例如如图17所示。在这种情况下,SDB合并工具可以识别出具有UNIT_CODE=kg的单位存在于源数据库中,但不存在于目标数据库中。SDB合并工具还可以识别出具有UNIT_CODE=kg的单位在具有UG_CODE=重量的单位组中具有父项,并且还可以识别出具有UG_CODE=重量的单位组存在于目标数据库中,尽管具有不同的UG_ID。因此,SDB合并工具可以使用具有UG_CODE=重量的现有单位组将具有UNIT_CODE=kg的单位添加到目标数据库,从而导致图18所示的数据库状态。
再次参考图14至图16,在框1402中,SDB合并工具基于配置文件获得单位(Unit)对象的唯一键属性,在该示例中,该唯一键属性是具有UNIT_CODE=kg的单位。在框1404中,SDB合并工具基于配置文件获得单位对象的主键,在该示例中,该主键是UNIT_ID。在框1406中,SDB合并工具然后使用唯一键来查询源数据库,在该示例中,该唯一键是UNIT_CODE=kg。然后,在框1408中,SDB合并工具基于配置文件来检查对象是否具有任何父对象。在此示例中,单位对象具有父单位组(即,框1408中为是)。因此,在框1410中,SDB数据库基于配置文件获得唯一键父对象,在该示例中,该唯一键父对象是UG_CODE。然后,在框1412中,SDB合并工具通过与配置文件中定义的UG_ID进行连接来从源数据库获得父唯一键值。然后,在框1414中,SDB合并工具使用所获得的父唯一键值来查询目标数据库,在该示例中,所获得的父唯一键值是UG_CODE=重量。然后,在框1416中,SDB合并工具确定UG_CODE=重量记录在目标数据库中是否可用。在该示例中,UG_CODE=重量记录在目标数据库中是可用的(即,框1416中为是),所以SDB合并工具前进到框1420,在框1420中,SDB合并工具确定主键的值(即,UNIT_ID=1007),并且在框1422中将记录添加到M_UNITS表,从而导致图18所示的数据库状态。
示例-多个级别的依赖关系
图22示出了示例数据库状态,其中存在为了比较和合并数据库而需要被处理(addressed)的多个级别的依赖关系。具体地,在该示例中,M_UNITS表取决于M_UNIT_GROUPS表,而M_UNIT_GROUPS表取决于X表,该X表将单位组面积(AREA)和重量(WEIGHT)分类为空间属性,并将单位组重量(WEIGHT)分类为物理属性(仅为了示例的目的)。SDB合并工具认识到目标数据库缺少具有UNIT_CODE=kg的单位,认识到目标数据库也缺少具有UG_CODE=重量的相关联单位组,并且认识到目标数据库还缺少具有X_CODE=物理(PHYSICAL)的相关联类别。因此,SDB合并工具首先将具有X_CODE=物理且X_ID=67的类别添加到目标数据库,从而导致图23所示的数据库状态。然后,SDB合并工具将具有UG_CODE=重量且UG_ID=69的单位组添加到目标数据库,从而导致图24所示的数据库状态。然后,SDB合并工具将具有UNIT_CODE=kg且UNIT_ID=1007的单位添加到目标数据库,如图25所示。以这种方式,该单位被添加了它的所有依赖关系。
应当注意,该处理以及参考图14至图16描述的处理一般可以表示为使用以下伪代码的递归处理,该伪代码最初用从配置文件获得的对象的主键来调用(例如,对于上述示例,与具有UNIT_CODE=kg的单位对象相关联的主键):
因此,在该示例中,最初将利用UNIT_CODE=kg的键来调用合并(Merge)函数。合并函数的该第一迭代将确定键具有父项(即,UG_CODE=重量),并且因此将利用UG_CODE=重量的键调用合并函数。合并函数的第二迭代将确定键具有父项(即,X_CODE=物理),并且因此将以X_CODE=物理的键调用合并函数。合并函数的第三迭代将确定键没有父项。然后,它将检查X_CODE=物理是否存在于目标数据库中,并且如果不存在,则将X_CODE=物理的记录添加到目标数据库中。在任何情况下,第三迭代将结束并返回到第二迭代,第二迭代将检查UG_CODE=重量是否存在于目标数据库中,并且如果不存在,则将UG_CODE=重量的记录添加到目标数据库。在任何情况下,第二迭代将结束并返回到第一迭代,第一迭代将检查UNIT_CODE=kg是否存在于目标数据库中,并且如果不存在,将UNIT_CODE=kg的记录添加到目标数据库中。在第一迭代结束时,对象已经从源数据库被合并到目标数据库。
类似的处理和类似的递归可以应用于特定对象在相同级别具有多个依赖关系的情况。例如,图26示出了示例数据库状态,其中在M_UNITS表中存在为了比较和合并数据库两者而需要被处理的多个依赖关系。具体地,在该示例中,M_UNITS表取决于将各个单位与单位组相关联的M_UNIT_GROUPS表,并且取决于将各个单位分类为空间属性或物理属性的X表(仅为了示例的目的)。SDB合并工具认识到目标数据库缺少具有UNIT_CODE=kg的单位,认识到目标数据库也缺少具有UG_CODE=重量的相关联单位组,并且认识到目标数据库还缺少具有X_CODE=物理的相关联类别。因此,SDB合并工具首先将具有X_CODE=物理且X_ID=67的类别添加到目标数据库,并且还将具有UG_CODE=重量且UG_ID=69的单位组添加到目标数据库,从而导致图27中所示的数据库状态。然后,SDB合并工具将具有UNIT_CODE=kg且UNIT_ID=1007的单位添加到目标数据库,如图28所示。以这种方式,该单位被添加了它的所有依赖关系。
在该示例中,最初将利用UNIT_CODE=kg的键来调用合并函数。合并函数的第一迭代将确定键具有两个父项(即,UG_CODE=重量且X_CODE=物理),并且因此利用UG_CODE=重量的键调用合并函数且将利用X_CODE=物理的键调用合并函数。合并函数的这些迭代将把X_CODE=物理和UG_CODE=重量的记录添加到目标数据库,并且将返回到第一迭代,该第一迭代将检查UNIT_CODE=kg是否存在于目标数据库中,并且如果不存在,则将UNIT_CODE=kg的记录添加到目标数据库。在第一迭代终止时,对象已经从源数据库被合并到目标数据库。
示例SDB合并工具用户界面
在示例性实施方式中,SDB合并工具是基于网络的工具,其提供了查看/比较两个Intergraph Smart参考数据(SDB)数据库并且提供用户直观数据网格界面中的差异的功能。用户可以查看差异,选择需要合并的数据,并且将数据保存到目标数据库中。该工具提供了将所需内容从一个数据库选择性地合并并保存到另一个数据库的灵活性。
通常,SDB用户需要SDB发布版本中可用的更新集。SDB合并工具提供了比较和查看SDB发布版本与客户数据库之间的差异的功能,并且还提供了将来自SDB发布版本的一组选择性内容合并并保存到客户数据库而不干扰客户数据库中的任何其它内容的灵活性。
SDB合并工具的一些能力包括:
●基于网络的直观用户界面,以选择、查看所需数据并将所需数据从一个SDB数据库合并到另一个SDB数据库。
●SDB合并工具自动标识合并所选择的数据所需的强制父(上游)依赖关系。
●用户可以在一个步骤中选择一组记录并将所有选择的记录与所有所需的依赖关系数据合并到目标数据库中。
●该工具提供将来自两个数据库的数据报告到电子表格文件(例如,MicrosoftEXCELTM电子表格,以下简称为“Excel”)中的能力。用户可以点击节点并报告与该对象有关的数据。并排报告各个特性值的数据。这使得用户能够容易地比较数据差异。此功能有助于在迁移处理中标识确切的SDB升级更改,以便用户可以选择所需更改并将其合并到目标。
因此,通过使用SDB合并工具(基于网络的工具),用户可以直观的方式看到源(例如,SDB 2018)数据库与目标(例如,客户)数据库之间的所有数据差异。这允许用户只选择用于合并到目标数据库中所需的数据。由于这是基于网络的工具,所以用户可以合并来自具有兼容浏览器的相同网络中的任何机器的数据。
在示例性实施方式中,SDB合并工具主要被分成三个视图以及页眉视图和页脚视图上的关键功能,如下:
●对象层次结构(Object Hierarchy)视图
●数据比较(Data Comparison)视图
●详细信息(Details)视图
在示例性实施方式中,使用SDB合并工具仅可能将数据从源数据库合并到目标数据库。所有仅针对目标的记录将保持不变,并且不会受合并处理的影响。
对象层次结构视图由模块的层次结构组成,通过这些模块的层次结构,用户可以导航至树节点,并且选择所需数据并将其合并到目标数据库。对象层次结构视图中提供的一些功能包括:
●展开/折叠按钮在对象层次结构上是可用的。用户可以使用键盘箭头键(或鼠标点击)来导航到不同的节点。
●一次只能选择一个节点,并且所选择的节点将以蓝色突出显示。
●所有名称(Name)都以粗体显示,其表示父项/层次结构节点。
●所有子节点/叶节点将以标准字体显示。
●当鼠标在树层次结构上悬停时,节点将以浅蓝色突出显示。
●当用户点击具有其它子节点且没有相关数据的层次结构节点时,将向用户显示消息“打开子节点以查看数据”。
●用户可以通过点击工具中的“自动隐藏”固定按钮来隐藏/取消隐藏对象层次结构视图。一旦层次结构被隐藏,该工具将显示为“层次结构(HIERARCHY)”,其中在左侧顶角处具有自动隐藏按钮。
●源数据库和目标数据库中的所有相同记录都以层次结构显示,没有任何背景颜色。
●对象层次结构视图中显示的所有“仅源”和“仅目标”记录将以绿色文本突出显示。
●如果记录仅存在于源数据库中,则它将具有附加在该记录末尾的(S)标记。
●如果记录仅存在于目标数据库中,那么它将具有附加在该记录末尾的(T)标记。
●对象层次结构视图中显示的所有不同记录将以橙色文本显示。
数据比较视图并排显示源数据库与目标数据库之间的数据。数据比较视图中提供的一些功能包括源数据网格和目标数据网格、数据过滤器控件和合并控件。
以下是源数据网格和目标数据网格的概要:
●连接的数据库详细信息将在中间视图中的源网格和目标网格上与层次结构视图中所选择的父节点和数据节点详细信息一起示出。
●当用户在对象层次结构视图中选择数据节点时,在源和目标两者中可用于该节点的数据将在数据比较视图中以以下颜色格式显示:
○所有突出显示的相同记录行将不具有任何颜色。
○所有仅源或仅目标的记录行将以绿色背景颜色突出显示。
○所有不同记录行将以橙色背景颜色显示。
●两个数据库中的相同数据记录被显示在数据网格的同一行中。
●当用户水平或垂直滚动时,变化将同步地反映在两个网格中,使得在两个网格中可以并排看到列中的可比较数据。
●使用鼠标点击或键盘上/下箭头选择源/目标网格行中的行以蓝色突出显示。
●当鼠标悬停在源/目标网格上时,这些行将以浅蓝色突出显示。
以下是数据过滤器控件的概要:
●用户可以选择/取消选择(下面讨论的)数据过滤器,该数据过滤器可以在源数据网格和目标数据网格的顶部看到,以过滤正在显示的数据。
●如果选择“相同”复选框,则会在网格中显示源数据库和目标数据库两者中都存在且值没有差异的记录。
●如果选择“不同”复选框,则会在网格中显示源数据库和目标数据库两者中存在且值具有差异的记录。
●选择“仅源”复选框时,则会在网格中显示源数据库中存在但目标数据库中不存在的记录。
●如果选择“仅目标”复选框,则会在网格中显示目标数据库中存在但源数据库中不存在的记录。
●这些数据过滤器组合的选择/取消选择将按照所选择的数据过滤器显示适当的数据。
以下是合并控件的概要:
●合并(MERGE)-用户可以通过将记录从源网格选择到目标网格来合并一个或更多个记录。仅当适用时(至少只选择一个源或选择不同的记录),才会启用此按钮。使用合并按钮将只显示数据网格中的预期合并操作。它不会将更改保存到目标数据库中。
●取消合并(UNMERGE)-一旦用户将数据从源数据库合并到目标数据库并点击“取消合并”,所合并的数据将被取消合并(后退一步)。使用“取消合并”按钮将只显示数据网格中的预定取消合并操作。它不会将更改保存到目标数据库中。
●撤销(UNDO)-适用于任何数量的后退行动。类似于源到目标合并活动上的“CTRL+Z”功能。使用“撤销(Undo)”按钮将只显示数据网格中的预定撤消操作。它不会将更改保存到目标数据库中。
●对于所有“相同”记录和“仅目标”记录,将不启用MERGE/UNMERGE/UNDO。它将针对“仅源”记录和“不同”记录而启用。
●刷新(REFRESH)-获取源数据库和目标数据库两者在该时间点可用的最新数据,并重新加载相应的数据网格。
●EXCEL报告(EXCEL REPORT)-生成数据网格中显示的数据对象的Excel报告。
●删除和替换(DELETE AND REPLACE)-仅对不支持选择性数据合并的少数数据对象可用。它将用该对象的源数据库数据替换目标数据库中的所有数据。
详细信息视图(Details View)并排显示针对选定行的源数据库与目标数据库之间特性值的差异。详细信息视图中提供的一些功能包括:
●所有“相同”记录将被显示而没有任何彩色背景。
●所有“不同”记录将以橙色背景显示。
●所有“仅源”记录和“仅目标”记录将以绿色背景显示。
●LMOD(上次修改日期)、User(修改用户)和Int_Rev(修改序号)特性不用于比较,但是这些值之间的差异将以橙色背景显示。
●用户可以通过点击工具中的“自动隐藏”固定按钮来隐藏/取消隐藏此详细信息视图。一旦它被隐藏,该工具将显示为“详细信息(DETAILS)”,其中在右侧顶角距有自动隐藏按钮。
页脚针对在“对象层次结构”视图中选择的对象显示下列内容:
■源数据库和目标数据库两者中的总记录的计数。
■在应用任何数据过滤器的情况下,示出/显示记录的计数。
■选择和合并的记录的计数。
页脚还包含以下控件:
●显示依赖关系(SHOW DEPENDENCIES)
●保存到数据库(SAVE TO DATABASE)
SHOW DEPENDENCIES控件允许用户查看针对所选择的数据节点将数据从源数据库合并到目标数据库的依赖关系项列表。如果针对要被保存到目标数据库的所选择的数据存在任何依赖关系,则所有这样的依赖关系将通过按下该按钮而被列出,例如,商品代码将在表格详细信息、组和部分上具有依赖关系。针对叶节点将不存在依赖关系;对于这种情况,仅显示所选择的记录而没有任何依赖关系。当用户点击SHOW DEPENDENCIES按钮时,将显示具有适用于所选择的数据的依赖对象(dependent object)的树结构层次结构的弹出窗口。页脚显示要合并且选择的记录数的计数以用于显示依赖关系。关闭按钮用于关闭依赖关系窗口并继续合并。
SAVE TO DATABASE控件将合并的数据保存到目标数据库中。
页眉(Header)包括以下选项:
●帮助(Help):此选项允许用户访问关于如何使用SDB合并工具的“详细用户指南”。
●关于(About):“SDB合并工具”的版本详细信息。
●注销(Logout):一旦用户完成从源数据库到目标数据库的数据合并,就退出SDB合并工具的选项。
当用户点击Excel Report按钮时,两个网格中当前显示的数据节点的数据将被导出到Excel文件中,并被保存在导出文件夹中。Excel中的数据以这种方式排列,即,源数据和目标数据两者以及特性名并排放置,以便更好地理解。用户可以在任何时间点在Excel中过滤特定的记录集,以查看要合并的确切内容。以下是Excel Report功能的概要:
●当用户点击EXCEL REPORT时,将显示询问确认继续导出的消息。当用户点击“是”时,将显示进度条。
●完成导出后,将使用按钮显示完成对话框以下载文件。当用户点击“下载”时,将在浏览器特定的下载文件夹路径中下载生成的Excel文件。
●即使用户不下载Excel文件,所生成的Excel文件也将存在于托管的合并工具物理路径内可用的“Exports”文件夹中。
●不考虑所选择的数据过滤器,源数据库和目标数据库两者中的所有数据都将被写入Excel文件。
●在用于组件管理(Component Management)的CMS模块中,将显示新的弹出窗口用于选择类层次结构。只将与所选择的类层次结构相关的数据导出到Excel工作簿中。
●对于在将数据保存到目标数据库的同时选中了“保存直接子节点(Save DirectChildren)”复选框的所有数据节点,Excel Report将在Excel报告工作薄中将其子节点数据连同父数据一起导出,例如,当导出商品规则时:还将一次性导出商品规则连同商品规则详细信息、关键字和布局。
合并工具导出处理是高度资源密集型的作业;基于所选择的数据库中的记录数和可用的***资源,推荐不要同时运行多个Excel导出作业。
以下是如何在合并工作流中使用Excel报表的示例性处理。
1.当用户想要对包含大量数据的数据节点执行合并操作时,用户需要首先使用“Excel Report”选项生成该数据节点的Excel报告。
2.在所生成的Excel报告上,针对仅源记录和仅不同记录应用过滤器。
3.检查用户想要合并到其(客户)数据库的数据。
4.选择并对这些记录执行合并。
5.点击“保存到数据库(SAVE TO DATABASE)”按钮将所选择的记录保存到目标数据库。
6.在合并已标识的数据之后,再次重新生成Excel报告,并验证所需更改已保存到目标数据库中。
对于SDB合并工具中的几个屏幕(screens),将启用删除和替换功能,例如,如果用户想要合并规范项/商品代码详细信息以将数据从源数据库合并到目标数据库,则需要首先删除目标数据库中的数据,然后用整个源数据进行替换,以避免数据中的重复和不一致。对于所有这些情况,将启用此选项。删除和替换适用于以下数据节点:
a.商品代码详细信息(Commodity Code Details)
b.规范项(Specification Items)
c.规范页眉几何信息(Specification Header Geometrics)
d.规范页眉详细信息(Specification Header Details)
点击“保存到数据库(Save to Database)”按钮将显示相关的父层次结构,并将所选择的记录保存到目标数据库。一旦用户将数据网格中的数据从源合并到目标,将启用此按钮。功能包括:
■当用户点击Save to Database按钮时,将显示弹出窗口,该弹出窗口具有用于合并的依赖对象的树结构层次结构,以及与在各行左角处进行选择的复选框一起显示的各个对象特定的唯一值。
■页脚上的计数指定被示作已选择的要合并且选择用于保存的记录数。
■下面显示的注释指定了在执行合并之后要检查的所有强制依赖关系,并且在任何适用的情况下显示需要合并的其它事项的完整数据视图的推荐。
■右下方的“取消”按钮用于关闭保存窗口。
■右下角的“保存”按钮有助于在目标数据库中保存所选择的合并记录。
■合并工具兑现在目标数据库上定义的控制状态值。如果控制状态不是1,则不会编辑/修改目标数据库中的记录。
●当用户在数据网格中合并数据时,将启用显示依赖关系(Show Dependency)按钮和保存到数据库(Save to Database)按钮。
当用户点击以使用复选框选择将记录保存到目标数据库(保存仅源数据的直接子项)时,合并工具将一次性地自动保存商品代码连同相应商品代码的所有子项记录,即,商品代码详细信息、标识、标签号、商品布局、商品几何信息。此功能将仅适用于“仅源”记录。对于其它情况,用户需要通过导航到相应屏幕来检查和合并所需的数据。
在数据比较视图的源网格和目标网格中的所有可用列上提供排序函数。如果用户在源网格或目标网格中的任何列上应用排序函数,则它将被应用于两个网格上,以确保网格行将是同步的并且彼此可比较。默认排序顺序基于相同、仅源、不同、仅目标的顺序。当用户点击列标题时,数据将按升序排序(排序后的列将被显示带有与标题列名称相邻的向上箭头)。当用户再次点击相同的列标题时,数据将以降序排序(排序后的列将被显示带有与标题列名称相邻的向下箭头)。用户可以CTRL+点击多个列,用于按照列的选择顺序对数据进行排序。(排序顺序将以与列标题名称相邻的编号显示)。用户也可以按对一列进行升序和对多列进行降序的顺序进行排序。数字列将按数字升序或降序顺序进行排序。其余所有字符串列将根据字母升序或降序的顺序进行排序。当用户从源网格切换到目标网格以对列进行排序时,将禁用应用于两个网格上的所有先前排序,因为此功能适用于两个网格。
提供过滤功能以允许用户基于给定的过滤条件来过滤所需的列值。当用户点击列标题名附近的过滤器按钮时,将显示具有列名标题的弹出窗口。需要在文本字段中输入要搜索的值,然后点击“过滤器(FILTER)”按钮来应用过滤器。所应用的过滤器将被应用于源网格和目标网格两者,并且按照所应用的过滤器来显示数据。可以使用“与(AND)”条件将过滤器应用于两列,例如,指定需要考虑的两个条件并且然后应用过滤器。为了考虑许多定义的过滤器条件中的任何一个,可以使用“或(OR)”条件。
搜索条件需要根据用户要求来选择。例如,以下是使用字符串列过滤器(StringColumns Filter)进行过滤的概要:
■如果用户知道要过滤的数据子字符串,则可以使用“包含(Contains)”搜索条件。
■当用户想要过滤在列值中没有指定子字符串的列值时,需要选择“不包含(Doesnot Contain)”。
■当用户想要准确地过滤指定的列值时,需要选择“等于(Is equal to)”。
■当用户想要准确地不过滤指定的列值时,需要选择“不等于(Is not equalto)”。
■当将过滤器应用于以指定输入开始的列值时,需要选择“以……开始(Startswith)”。
■当将过滤器应用于不以指定输入开始的列值时,需要选择“不以……开始(Doesnot start with)”。
■当将过滤器应用于以指定输入结束的列值时,需要选择“以……结束(Endswith)”。
■当将过滤器应用于不以指定输入结束的列值时,需要选择“不以……结束(Doesnot end with)”。
■当将过滤器应用于具有空值的列值时,需要选择“空(Is empty)”。
●当将过滤器应用于具有非空值的列值时,需要选择“非空(Is not empty)”。
以下是使用数字列过滤器(Numeric Column Filter)进行过滤的概要:
●当将过滤器应用于具有空白值的列值时,需要选择“空白(Is blank)”。
■当将过滤器应用于具有非空白值的列值时,需要选择“非空白(Is notblank)”。
■当用户想要准确地过滤指定的数字列值时,需要选择“等于(Is equal to)”。
■当用户想要准确地不过滤指定的数字列值时,需要选择“不等于(Is not equalto)”。
■当将过滤器应用于具有大于一些值的列值时,需要选择“大于(Is greaterthan)”。
■当将过滤器应用于具有大于或等于一些值的列值时,需要选择“大于或等于(Isgreater than or equal)”。
■当将过滤器应用于具有小于一些值的列值时,需要选择“小于(Is lessthan)”。
■当将过滤器应用于具有小于或等于一些值的列值时,需要选择“小于或等于(Isless than or equal)”。
合并工作流
此模块实现以下合并步骤:
1)用户根据需要选择仅源和/或不同记录。
2)该工具将所选择的记录合并到合并UI的目标网格。
3)该工具显示所选择的合并记录的依赖关系。
4)该工具将所选择的合并记录保存到目标数据库。
管理(Administration)
此模块涵盖以下管理相关对象和相应子节点的合并:
■语言
■标准
■学科
■单位相关对象(单位***、单位集、单位组、单位类型和单位到单位)
■接口
■接口相关单位
■参数
■接口设置
■项目/项目规则默认值
用户应遍历各个对象下的所有数据节点以选择所需的行并将它们合并到目标。用户只需要验证并选择所需的数据用于合并处理。
文档管理(Document Management)模块涵盖以下文档管理相关对象和相应子节点的合并:
■文档
■工具版本管理
■符号库管理
当用户合并“仅源”的文档时,则文档文件(符号DLL)将作为附加依赖关系而自动合并。要合并“仅源”记录的子数据,要确保在“保存”窗口中选中“保存仅源的子依赖关系”复选框。当用户在商品代码级别上合并数据而不首先合并适用的文档时,则文档和仅像PDB文档、符号库和符号这样的所依赖的父数据将被合并,而像文档文件、PDB文档视图这样的其它附加依赖关系将不被自动合并。用户需要手动合并这些对象,以便在使用SRD传输作业屏幕导出商品代码时获得符号DLL和gif文件。
特性管理模块允许用户将特性组和相应的子节点合并为该对象的一部分。用户必须在可应用的各个级别分别验证和合并所需的特性组、特性和特性值。附加子依赖关系的合并不适用于这些数据节点。
表管理(Table Management)模块涵盖以下表管理相关对象和相应子节点的合并:
●表类型(针对详细信息)。该节点用于合并表和相应的表详细信息。此模块下存在表类型的三种类型(商品代码表、接口表和规范表)。
●表类型(全部)-表特性。该节点用于将表和用于创建几何信息的相应表属性进行合并。由于表管理模块下存在大量数据,推荐使用Excel报告功能来确定需要合并的所需数据。
几何信息管理模块涵盖以下几何信息管理相关对象与相应子节点的合并:
●所有类型的几何信息表。该节点用于合并所有几何信息相关数据(商品几何信息、过滤器几何信息、其它几何信息、其它特殊几何信息、分级几何信息、标准几何信息和壁厚几何信息)。
●标称尺寸。此节点用于合并规范中使用的标称尺寸表。
●外径。此节点用于合并外径(Outer Diameter)表。
●分支。此节点用于合并规范中使用的分支(Branch)表。
●调度(Schedules)。此节点用于合并外径表。
●标称缩减器(Nominal Reducer)。此节点用于合并标称缩减器表。
●公制/英制等值(Metric/English Equivalence)。此节点用于将英制合并到公制等值表。
如果选择了“存储仅源数据的直接子项(Save direct children for sourceonly data)”复选框,则合并“仅源”几何信息表的合并将自动合并相应的表详细信息/特性。对于“仅目标”记录,用户需要验证该数据是否将在目标数据库中创建任何副本并采取适当的行动。
商品/标识管理(Commodity/Ident Management)模块涵盖以下商品/标识管理相关对象与相应子节点的合并:
●商品规则。此节点用于合并商品规则及其子项详细信息。
●商品组/零件/商品代码。此节点用于按顺序的次序合并商品组、零件、商品代码和相应的子项详细信息。针对商品代码详细信息实现删除和替换功能,因为商品代码完全取决于商品代码详细信息。并且商品代码详细信息的部分合并将导致客户数据库中的数据不正确。
实现删除和替换功能,使得即使用户选择单个记录进行合并,该节点下的所有数据也将自动合并到客户数据库。
●对象参数。此节点用于合并对象参数及其子项详细信息。
●零件对象参数。此节点用于合并与各零件链接的对象参数。
●具有表组的零件和具有表详细信息的零件。这些节点用于合并与零件链接的表组和表详细信息。
●具有SP3D短代码的零件。此节点用于合并在零件级分配的S3D短代码。
几何规则模块用于合并几何规则和相应的子项详细信息。如果选择了“存储仅源数据的直接子项(Save direct children for source only data)”复选框,则“仅源”几何规则的合并将自动合并相应的规则定义。针对仅目标/不同记录,用户需要验证数据并采取适当的行动。
规范(Specification)模块包括以下规范相关对象和相应子节点的合并:
●短代码管理。此节点用于合并SRD短代码和相应的子项详细信息。
●说明。此节点用于合并规范说明。
●规范规则。此节点用于合并规范规则和相应的子项详细信息。
●规范类型。此节点用于合并规范类型和相应的子项详细信息。
●功能规范设置。此节点用于合并功能规范设置和相应的子项详细信息。
●规范。此节点用于合并所有规范相关数据和相应的子项详细信息。针对规范页眉几何信息、规范详细信息和规范项来实现删除和替换功能,因为与这些节点相关的数据的部分合并将导致客户数据库中不正确的数据。实现删除和替换功能,使得即使用户选择单个记录进行合并,该节点下的所有数据也将自动合并到客户数据库。
智能3D/CADWorx集成模块涵盖以下智能3D/CADWorx集成相关对象和相应子节点的合并:
●配置(Configuration)。此节点用于合并所有Smart3D/CADWorx配置相关数据(数据表、Smart 3D特性、传输类型、检索源、程序、数据表配置、模板、数据表映射和特性映射)和相应的子项详细信息。
●传输作业(Transfer Jobs)。此节点用于合并所有Smart3D/CADWorx传输作业相关数据(常规配置、目标、目录结构和传输作业)以及相应的子项详细信息。
SPIso集成(SPIso Integration)模块涵盖以下SPIso集成相关对象和相应子节点的合并:
●主数据(Master Data)。此节点用于合并配置SPIso集成所需的所有SPIso主数据和相应的子项详细信息。
●SPIso SKEY映射。此节点用于合并配置SPIso集成所需的SKEY映射和相应子项记录。
●导出(Export)。此节点用于合并SPIso导出相关数据和相应的子项记录。
CMS(组件管理***)模块涵盖以下CMS相关对象和相应子节点的合并:
●管理类***(Manage Class System)。此节点用于合并CMS类相关数据和相应的子项详细信息。
●组件管理器(Component Manager)。此节点用于合并CMS组件相关数据和相应的子项详细信息。
CMS模块下的所有合并操作都应只使用Project SDB和英语语言来执行。在合并CMS组件数据之前,需要为现有类属性在源数据库上设定唯一的关键详细信息。
图29是示出根据示例性实施方式的针对S3D信息的示例数据比较窗口的带注释的屏幕截图。窗口的主要部分按从上到下的顺序显示相同的记录(未突出显示)、仅源或仅目标的记录(以绿色突出显示)以及不同的记录(以橙色突出显示)。屏幕右手侧是窗口,该窗口显示所选择行的差异(在本例中,是绿色突出显示部分中的第二行)。标识过滤器按钮。
图30是示出根据示例性实施方式的用于传输作业信息的示例数据比较窗口的屏幕截图。如图29所示,屏幕的主要部分按照从上到下的顺序显示相同的记录(未突出显示)、仅源或仅目标的记录(以绿色突出显示)和不同的记录(以橙色突出显示)。屏幕右手侧是窗口,该窗口显示所选择行的差异(在本例中,是绿色突出显示部分中的第二行)。
图31是示出根据示例性实施方式的用于说明信息的示例数据比较窗口的屏幕截图。此处,“相同”过滤器被关闭,从而仅显示仅源、仅目标和不同记录。
图32是示出根据示例性实施方式的示例数据比较窗口的屏幕截图,其中所有显示的记录在两个数据库中是相同的。
图33是示出根据示例性实施方式的四个活动SDB合并工具窗口的屏幕截图。
图34是示出根据示例性实施方式的示例对象依赖关系层次结构窗口的屏幕截图。从该窗口中,用户可以选择对象并将其合并到包括所有强制依赖关系的目标数据库中。用户可以展开对象以查看其所有强制依赖关系。
图35是示出根据示例性实施方式的第一格式下的“导出到Excel(Export toExcel)”窗口的屏幕截图,其中记录是按照相同、仅源、仅目标和不同来排序的。
图36是示出根据示例性实施方式的第二格式下的“导出到Excel”窗口的屏幕截图,其中突出显示了个体差异。此处,例如,一个特定对象在源数据库中被列为“双向锻造(Wrought)”,并且在目标数据库中被列为“万向锻造(Forged)”。这种不同用橙色突出显示。仅源和仅目标的记录以绿色突出显示。
杂项
应当注意,以上使用的标题是为了方便,而不应被解释为以任何方式限制本发明。
应当注意,在附图中可以使用箭头来表示涉及两个或更多个实体的通信、传输或其它活动。双端箭头通常指示活动可在两个方向上发生(例如,在一个方向上的命令/请求与在另一方向上的相应回复,或由任一实体发起的对等通信),但在一些情况下,活动未必在两个方向上发生。单端箭头通常仅指示或主要指示在一个方向上活动,尽管应注意在某些情况下,此类定向活动实际上可涉及两个方向上的活动(例如,从发送者到接收者的消息及从接收者返回到发送者的确认,或在传输之前建立连接以及在传输之后终止连接)。因此,在特定附图中用于表示特定活动的箭头的类型是示例性的,并且不应当被视为限制性的。
应注意,逻辑流可在本文中被描述以说明本发明的各个方面,且不应被解释为将本发明限于任何特定逻辑流或逻辑实现。所描述的逻辑可被划分成不同的逻辑块(例如,程序、模块、函数或子例程),而不改变总体结果或以其它方式脱离本发明的真实范围。通常,逻辑元件可以被添加、修改、省略、以不同的顺序执行或者使用不同的逻辑结构(例如,逻辑门、循环原语、条件逻辑和其它逻辑结构)来实现,而不改变总体结果或以其它方式脱离本发明的真实范围。
本发明可以以许多不同的形式实施,包括但不限于,与处理器(例如,微处理器、微控制器、数字信号处理器或通用计算机)一起使用的计算机程序逻辑、与可编程逻辑器件(例如,现场可编程门阵列(FPGA)或其它PLD)一起使用的可编程逻辑、离散组件、集成电路(例如,专用集成电路(ASIC))或包括其任何组合的任何其它装置。实现所描述的功能中的一些或全部功能的计算机程序逻辑通常被实现为一组计算机程序指令,这些计算机程序指令被转换成计算机可执行形式,被存储在计算机可读介质中,并在操作***的控制下由微处理器执行。实现部分或全部所述功能的基于硬件的逻辑可以使用一个或更多个适当配置的FPGA来实现。
实现本文先前描述的全部或部分功能的计算机程序逻辑可以以各种形式实现,包括但不限于,源代码形式、计算机可执行形式和各种中间形式(例如,由汇编程序、编译器、链接器或***生成的形式)。源代码可以包括以各种编程语言(例如,目标代码、汇编语言或诸如Fortran、C、C++、JAVA或HTML等高级语言)中的任一种实现的一系列计算机程序指令,以与各种操作***或操作环境一起使用。源代码可定义并使用各种数据结构和通信消息。源代码可以是计算机可执行形式(例如,经由解释器),或者源代码可以被转换(例如,经由翻译器、汇编器或编译器)为计算机可执行形式。
实现本文先前描述的全部或部分功能的计算机程序逻辑可以在单个处理器上在不同时间执行(例如,并发地),或者可以在多个处理器上在相同或不同时间执行,并且可以在单个操作***进程/线程或不同操作***进程/线程下运行。因此,术语“计算机处理”一般是指一组计算机程序指令的执行,而不管不同的计算机进程是在相同还是不同的处理器上执行,也不管不同的计算机进程是在相同的操作***进程/线程还是不同的操作***进程/线程下运行。
计算机程序可以以任何形式(例如,源代码形式、计算机可执行形式或中间形式)永久地或暂时地固定在有形存储介质中,例如半导体存储器设备(例如,RAM、ROM、PROM、EEPROM或闪存可编程RAM)、磁存储器设备(例如,磁盘或固定盘)、光存储器设备(例如,CD-ROM)、PC卡(例如,PCMCIA卡)或其它存储器设备。计算机程序可以以任何形式固定在信号中,可以使用各种通信技术中的任何一种将该信号传输到计算机,这些通信技术包括但不限于模拟技术、数字技术、光学技术、无线技术(例如蓝牙)、联网技术和网间技术。计算机程序可以以任何形式作为具有附带印刷或电子文档(例如,收缩包装软件)的可移动存储介质来分发、被预加载有计算机***(例如,在***ROM或固定盘上)或者通过通信***(例如,因特网或万维网)从服务器或电子公告板来分发。
实现本文先前描述的全部或部分功能的硬件逻辑(包括与可编程逻辑设备一起使用的可编程逻辑)可以使用传统人工方法来设计,或者可以使用各种工具(诸如计算机辅助设计(CAD)、硬件描述语言(例如VHDL或AHDL)或PLD编程语言(例如PALASM、ABEL或CUPL))来电子地设计、捕获、模拟或记录。
可编程逻辑可以永久地或暂时地固定在有形存储介质中,诸如半导体存储器设备(例如,RAM、ROM、PROM、EEPROM或闪存可编程RAM)、磁存储器设备(例如,磁盘或固定盘)、光存储器设备(例如,CD-ROM)或其它存储器设备。可编程逻辑可以固定在信号中,可以使用各种通信技术中的任何一种将该信号传输到计算机,这些通信技术包括但不限于模拟技术、数字技术、光学技术、无线技术(例如蓝牙)、联网技术和网间技术。计算机逻辑可以作为具有附带印刷或电子文档(例如,收缩包装软件)的可移动存储介质来分发、被预加载有计算机***(例如,在***ROM或固定盘上)或者通过通信***(例如,因特网或万维网)从服务器或电子公告板来分发。当然,本发明的一些实施方式可以被实现为软件(例如,计算机程序产品)和硬件两者的组合。本发明的其它实施方式被实现为完全硬件或完全软件。
重要的是,应注意,本发明的实施方式可以采用常规组件(例如,常规计算机(例如,现货供应的PC、主机、微处理器))、常规可编程逻辑设备(例如,现货供应的FPGA或PLD)或常规硬件组件(例如,现货供应的ASIC或离散硬件组件),其在经编程或配置以执行本文所描述的非常规方法时产生非常规设备或***。因此,本文所描述的本发明并不是常规的,因为即使当使用常规组件来实现实施方式时,所得到的设备和***(例如,本文所描述的SDB合并工具)也必然是非常规的,因为缺少特定编程或配置,常规组件并不固有地执行所描述的非常规方法。
在不脱离本发明的真实范围的情况下,本发明可以以其它特定形式实施,且基于本文的教示,所属领域的技术人员将明白许多变型和修改。对“本发明”的任何引用旨在表示本发明的示例性实施方式,并且不应当被解释为指本发明的所有实施方式,除非上下文另有要求。所描述的实施方式在所有方面仅被认为是说明性的而非限制性的。
Claims (21)
1.一种将对象从源数据库合并到目标数据库的方法,所述对象与存储在所述源数据库中的多个关系数据库表中的数据相关联,所述方法包括以下步骤:
获得所述对象的主键;
使用所述对象的所述主键查询所述源数据库,以从第一关系数据库表中获得主键值;
标识与所述对象相关联的父对象,所述父对象与第二关系数据库表相关联;
获得所述父对象的父键;
使用所述父键查询所述源数据库,以从所述第二关系数据库获得父键值;
使用所述父键值查询所述目标数据库,以确定所述父键值是否存在于所述目标数据库中的父对象记录中;
当所述父键值未存在于所述目标数据库中的父对象记录中时,将包括所述父键值的所述父对象记录添加到所述目标数据库;以及
将包括所述主键值和对所述父键记录中的所述父键值的引用的对象记录添加到所述目标数据库。
2.根据权利要求1所述的方法,其中,使用所述父键查询所述源数据库,以从所述第二关系数据库获得父键值的步骤包括:
连接所述第一关系数据库表和所述第二关系数据库表。
3.根据权利要求1所述的方法,其中,将包括所述父键值的所述父对象记录添加到所述目标数据库的步骤包括:
为所述父键值分配标识符,其中,所述标识符在所述目标数据库内是唯一的,并且与所述源数据库中的所述父键值的对应标识符不同。
4.根据权利要求3所述的方法,其中,对所述父键值的所述引用包括为所述父键值分配的唯一的标识符。
5.根据权利要求1所述的方法,其中,将所述对象记录添加到所述目标数据库的步骤包括:
为所述主键值分配标识符,其中,所述标识符在所述目标数据库内是唯一的,并且与所述源数据库中的所述主键值的对应标识符不同。
6.根据权利要求5所述的方法,其中,当所述父键值存在于所述目标数据库中的父对象记录中时,对所述父键值的所述引用包括与现有父键值相关联的标识符。
7.根据权利要求1所述的方法,所述方法还包括以下步骤:
维护配置文件,所述配置文件描述存储在所述多个关系数据库表中的数据,所述配置文件包括所述对象的所述主键和所述多个关系数据库表之间的关系,其中,所述对象的所述主键、所述父对象的标识和所述父键是从所述配置文件中获得的。
8.一种数据库***,所述数据库***包括:
多个关系数据库表;以及
具有程序代码的合并工具,当所述程序代码由所述数据库***的至少一个处理器执行时,使得所述数据库***执行计算机处理,所述计算机处理包括以下步骤:
获得所述对象的主键;
使用所述对象的所述主键查询源数据库,以从第一关系数据库表中获得主键值;
标识与所述对象相关联的父对象,所述父对象与第二关系数据库表相关联;
获得所述父对象的父键;
使用所述父键查询所述源数据库,以从所述第二关系数据库获得父键值;
使用所述父键值查询所述目标数据库,以确定所述父键值是否存在于所述目标数据库中的父对象记录中;
当所述父键值未存在于所述目标数据库中的父对象记录中时,将包括所述父键值的所述父对象记录添加到所述目标数据库;以及
将包括所述主键值和对所述父键记录中的所述父键值的引用的对象记录添加到所述目标数据库。
9.根据权利要求8所述的数据库***,其中,使用所述父键查询所述源数据库,以从所述第二关系数据库获得父键值的步骤包括:
连接所述第一关系数据库表和所述第二关系数据库表。
10.根据权利要求8所述的数据库***,其中,将包括所述父键值的所述父对象记录添加到所述目标数据库的步骤包括:
为所述父键值分配标识符,其中,所述标识符在所述目标数据库内是唯一的,并且与所述源数据库中的所述父键值的对应标识符不同。
11.根据权利要求10所述的数据库***,其中,对所述父键值的所述引用包括为所述父键值分配的唯一的标识符。
12.根据权利要求8所述的数据库***,其中,将所述对象记录添加到所述目标数据库的步骤包括:
为所述主键值分配标识符,其中,所述标识符在所述目标数据库内是唯一的,并且与所述源数据库中的所述主键值的对应标识符不同。
13.根据权利要求12所述的数据库***,其中,当所述父键值存在于所述目标数据库中的父对象记录中时,对所述父键值的所述引用包括与现有父键值相关联的标识符。
14.根据权利要求8所述的数据库***,所述数据库***还包括:
维护配置文件,所述配置文件描述存储在所述多个关系数据库表中的数据,所述配置文件包括所述对象的所述主键和所述多个关系数据库表之间的关系,其中,所述对象的所述主键、所述父对象的标识和所述父键是从所述配置文件中获得的。
15.一种计算机程序产品,所述计算机程序产品包括有形的、非暂时性的计算机可读介质,所述计算机可读介质中包含有程序代码,当所述程序代码由数据库***的至少一个处理器执行时,使得所述数据库***执行计算机处理,所述计算机处理包括以下步骤:
获得所述对象的主键;
使用所述对象的所述主键查询所述源数据库,以从第一关系数据库表中获得主键值;
标识与所述对象相关联的父对象,所述父对象与第二关系数据库表相关联;
获得所述父对象的父键;
使用所述父键查询所述源数据库,以从所述第二关系数据库获得父键值;
使用所述父键值查询所述目标数据库,以确定所述父键值是否存在于所述目标数据库中的父对象记录中;
当所述父键值未存在于所述目标数据库中的父对象记录中时,将包括所述父键值的所述父对象记录添加到所述目标数据库;以及
将包括所述主键值和对所述父键记录中的所述父键值的引用的对象记录添加到所述目标数据库。
16.根据权利要求15所述的计算机程序产品,其中,使用所述父键查询所述源数据库,以从所述第二关系数据库获得父键值的步骤包括:
连接所述第一关系数据库表和所述第二关系数据库表。
17.根据权利要求15所述的计算机程序产品,其中,将包括所述父键值的所述父对象记录添加到所述目标数据库的步骤包括:
为所述父键值分配标识符,其中,所述标识符在所述目标数据库内是唯一的,并且与所述源数据库中的所述父键值的对应标识符不同。
18.根据权利要求17所述的计算机程序产品,其中,对所述父键值的所述引用包括为所述父键值分配的唯一的标识符。
19.根据权利要求15所述的计算机程序产品,其中,将所述对象记录添加到所述目标数据库的步骤包括:
为所述主键值分配标识符,其中,所述标识符在所述目标数据库内是唯一的,并且与所述源数据库中的所述主键值的对应标识符不同。
20.根据权利要求19所述的计算机程序产品,其中,当所述父键值存在于所述目标数据库中的父对象记录中时,对所述父键值的所述引用包括与现有父键值相关联的标识符。
21.根据权利要求15所述的计算机程序产品,所述计算机程序产品还包括:
维护配置文件,所述配置文件描述存储在所述多个关系数据库表中的数据,所述配置文件包括所述对象的所述主键和所述多个关系数据库表之间的关系,其中,所述对象的所述主键、所述父对象的标识和所述父键是从所述配置文件中获得的。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201841022589 | 2018-06-16 | ||
IN201841022589 | 2018-06-16 | ||
US16/104,361 US11120025B2 (en) | 2018-06-16 | 2018-08-17 | System and method for comparing and selectively merging database records |
US16/104,361 | 2018-08-17 | ||
PCT/US2019/037227 WO2019241656A1 (en) | 2018-06-16 | 2019-06-14 | System and method for comparing and selectively merging database records |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112654976A true CN112654976A (zh) | 2021-04-13 |
Family
ID=68839803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980052833.3A Pending CN112654976A (zh) | 2018-06-16 | 2019-06-14 | 比较并选择性地合并数据库记录的***和方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11120025B2 (zh) |
EP (1) | EP3807776A1 (zh) |
KR (1) | KR20210041554A (zh) |
CN (1) | CN112654976A (zh) |
WO (1) | WO2019241656A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113885802A (zh) * | 2021-09-30 | 2022-01-04 | 杭州贝嘟科技有限公司 | 数据传输方法、装置、电子装置和存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11151194B2 (en) * | 2019-05-09 | 2021-10-19 | Sap Se | Data collection and integration system |
US12038909B2 (en) * | 2019-06-28 | 2024-07-16 | Dennis Flanagan | Systems and methods for scalable database technology |
US20210272465A1 (en) * | 2020-02-28 | 2021-09-02 | Ge Aviation Systems Llc | Directing and communicating data to a flight management system |
US11334235B2 (en) * | 2020-02-28 | 2022-05-17 | Ge Aviation Systems Llc | Comparison interface for navigation data |
US11385821B1 (en) * | 2020-04-02 | 2022-07-12 | Massachusetts Mutual Life Insurance Company | Data warehouse batch isolation with rollback and roll forward capacity |
US11321285B2 (en) * | 2020-10-01 | 2022-05-03 | Bank Of America Corporation | Automatic database script generation for copying data between relational databases |
US20230062781A1 (en) * | 2021-08-27 | 2023-03-02 | GE Precision Healthcare LLC | Methods and systems for implementing and using digital imaging and communications in medicine (dicom) structured reporting (sr) object consolidation |
US20230315737A1 (en) * | 2022-03-30 | 2023-10-05 | Reltio, Inc. | Entity id lineage persistence and cross-tenant durability |
US20230342341A1 (en) * | 2022-04-21 | 2023-10-26 | Dell Products L.P. | Automatic sequencing of database objects |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040143606A1 (en) * | 1999-10-14 | 2004-07-22 | Sap Aktiengesellschaft | Integrated composite data base system |
US20070112834A1 (en) * | 2005-11-17 | 2007-05-17 | Farr James A | Database consolidation tool |
WO2012130489A1 (en) * | 2011-04-01 | 2012-10-04 | Siemens Aktiengesellschaft | Method, system, and computer program product for maintaining data consistency between two databases |
CN104462169A (zh) * | 2013-09-16 | 2015-03-25 | 西门子公司 | 将数据导入到数据库表中的方法和*** |
CN106033436A (zh) * | 2015-03-13 | 2016-10-19 | 中国石油化工股份有限公司 | 一种数据库的合并方法 |
US20160335274A1 (en) * | 2015-05-14 | 2016-11-17 | Oracle Financial Services Software Limited | Facilitating application processes defined using application objects to operate based on structured and unstructured data stores |
CN106462643A (zh) * | 2014-06-27 | 2017-02-22 | 微软技术许可有限责任公司 | 外键到主键的基于规则的联结 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090150451A1 (en) * | 2007-12-07 | 2009-06-11 | Roche Diagnostics Operations, Inc. | Method and system for selective merging of patient data |
US20100223231A1 (en) * | 2009-03-02 | 2010-09-02 | Thales-Raytheon Systems Company Llc | Merging Records From Different Databases |
US20120130489A1 (en) * | 2010-05-19 | 2012-05-24 | Chernomorsky Ary S | Methods and apparatus for in situ formation of surgical implants |
US8607217B2 (en) * | 2011-04-25 | 2013-12-10 | Microsoft Corporation | Incremental upgrade of entity-relationship systems |
US9720972B2 (en) * | 2013-06-17 | 2017-08-01 | Microsoft Technology Licensing, Llc | Cross-model filtering |
US10635718B1 (en) * | 2016-10-13 | 2020-04-28 | Jpmorgan Chase Bank, N.A. | Method and system for implementing a data compare tool |
US10826986B2 (en) * | 2017-03-14 | 2020-11-03 | Ricoh Company, Ltd. | Information processing apparatus, merge method, and computer program product |
US11182394B2 (en) * | 2017-10-30 | 2021-11-23 | Bank Of America Corporation | Performing database file management using statistics maintenance and column similarity |
US11334599B2 (en) * | 2018-01-23 | 2022-05-17 | Computer Projects of Illinois, Inc. | Systems and methods for electronic data record synchronization |
US11126755B2 (en) * | 2018-01-30 | 2021-09-21 | Hewlett Packard Enterprise Development Lp | Object signatures in object stores |
US10963423B2 (en) * | 2018-02-06 | 2021-03-30 | Bank Of America Corporation | Generating and identifying distinct portions of a merged file |
-
2018
- 2018-08-17 US US16/104,361 patent/US11120025B2/en active Active
-
2019
- 2019-06-14 KR KR1020217001489A patent/KR20210041554A/ko unknown
- 2019-06-14 WO PCT/US2019/037227 patent/WO2019241656A1/en unknown
- 2019-06-14 CN CN201980052833.3A patent/CN112654976A/zh active Pending
- 2019-06-14 EP EP19737335.0A patent/EP3807776A1/en active Pending
-
2021
- 2021-08-04 US US17/394,146 patent/US20210365447A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040143606A1 (en) * | 1999-10-14 | 2004-07-22 | Sap Aktiengesellschaft | Integrated composite data base system |
US20070112834A1 (en) * | 2005-11-17 | 2007-05-17 | Farr James A | Database consolidation tool |
WO2012130489A1 (en) * | 2011-04-01 | 2012-10-04 | Siemens Aktiengesellschaft | Method, system, and computer program product for maintaining data consistency between two databases |
CN104462169A (zh) * | 2013-09-16 | 2015-03-25 | 西门子公司 | 将数据导入到数据库表中的方法和*** |
CN106462643A (zh) * | 2014-06-27 | 2017-02-22 | 微软技术许可有限责任公司 | 外键到主键的基于规则的联结 |
CN106033436A (zh) * | 2015-03-13 | 2016-10-19 | 中国石油化工股份有限公司 | 一种数据库的合并方法 |
US20160335274A1 (en) * | 2015-05-14 | 2016-11-17 | Oracle Financial Services Software Limited | Facilitating application processes defined using application objects to operate based on structured and unstructured data stores |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113885802A (zh) * | 2021-09-30 | 2022-01-04 | 杭州贝嘟科技有限公司 | 数据传输方法、装置、电子装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20190384847A1 (en) | 2019-12-19 |
US11120025B2 (en) | 2021-09-14 |
KR20210041554A (ko) | 2021-04-15 |
US20210365447A1 (en) | 2021-11-25 |
EP3807776A1 (en) | 2021-04-21 |
WO2019241656A1 (en) | 2019-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112654976A (zh) | 比较并选择性地合并数据库记录的***和方法 | |
CA2669479C (en) | Generating end-user presentations from structured data | |
CA2610559C (en) | Integrated system, tools, and methods for designing automated business process applications | |
US7734619B2 (en) | Method of presenting lineage diagrams representing query plans | |
US6742054B1 (en) | Method of executing a data transformation specification | |
US9811233B2 (en) | Building applications for configuring processes | |
US7865820B2 (en) | Generating a business document model | |
US6321229B1 (en) | Method and apparatus for using an information model to organize an information repository into a hierarchy of information | |
US20050203869A1 (en) | Hierarchical database apparatus, components selection method in hierarchical database, and components selection program | |
US10866935B2 (en) | File management method | |
KR20060067812A (ko) | 복합 데이터 액세스 | |
US11556702B2 (en) | Orchestration of crud operations for a hierarchical web service data model in a spreadsheet | |
US20070198987A1 (en) | API for obtaining unambiguous representation of objects in a relational database | |
US20070157074A1 (en) | System for and method of providing overview of a worksheet in an electronic report | |
US11113264B2 (en) | Conflict resolution for database file merge | |
US20080244520A1 (en) | Device and method for automatically configuring software | |
WO2018038065A1 (ja) | 情報管理装置並びにファイル管理方法 | |
US6345277B1 (en) | Method and apparatus for using an information model to organize an information repository into an extensible hierarchy of information | |
WO2013049906A1 (en) | Dynamically generated ui for a relational database and method thereof | |
CN116108015A (zh) | 基于表单模型的数据绑定方法 | |
Collins | Implementing a. NET Assembly Connector | |
Fouché et al. | Reporting Tools | |
Peake et al. | Oracle Application Express End User's Guide, Release 4.2 E35124-04 | |
Rodrigues et al. | Control Flow Basics | |
Gilmore | Practical Database Queries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230308 Address after: Swiss Hull Brugger Applicant after: HEXAGON TECHNOLOGY CENTER GmbH Address before: Swiss Hull Brugger Applicant before: HEXAGON TECHNOLOGY CENTER GmbH Applicant before: S. S. Horta |
|
TA01 | Transfer of patent application right |