KR20210041554A - 데이터베이스 레코드들을 비교하고 선택적으로 병합하기 위한 시스템 및 방법 - Google Patents

데이터베이스 레코드들을 비교하고 선택적으로 병합하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20210041554A
KR20210041554A KR1020217001489A KR20217001489A KR20210041554A KR 20210041554 A KR20210041554 A KR 20210041554A KR 1020217001489 A KR1020217001489 A KR 1020217001489A KR 20217001489 A KR20217001489 A KR 20217001489A KR 20210041554 A KR20210041554 A KR 20210041554A
Authority
KR
South Korea
Prior art keywords
parent
database
key value
target
target database
Prior art date
Application number
KR1020217001489A
Other languages
English (en)
Inventor
사티쉬 수브라만야 호타
프라딥 레디 보발라
스리니바스 말레팔리
Original Assignee
헥사곤 테크놀로지 센터 게엠베하
사티쉬 수브라만야 호타
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 헥사곤 테크놀로지 센터 게엠베하, 사티쉬 수브라만야 호타 filed Critical 헥사곤 테크놀로지 센터 게엠베하
Publication of KR20210041554A publication Critical patent/KR20210041554A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/14Merging, 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)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시예들은 논리적으로 관련된 데이터가 고려되고 병합되는 반면에 관련없는 차이들(예를 들어, 객체 식별자들)을 무시하고 관계형 데이터베이스 표들에 걸친 모든 종속성들이 고려되고 병합되는 방식으로 소스 데이터베이스와 타겟 데이터베이스가 비교되고 병합되는 것을 가능하게 한다. 일부 예시적인 실시예들은 인터그래프 사의 인터그래프 스마트™ 참조 데이터 제품에 대한 표준 데이터베이스(SDB)와 같은 데이터베이스들을 참조하여 본 명세서에서 논의되며, 일반적으로 "SDB 병합 툴"로서 지칭되지만, 개시된 개념들은 다른 유형들의 데이터베이스들에 더 일반적으로 적용될 수 있다.

Description

데이터베이스 레코드들을 비교하고 선택적으로 병합하기 위한 시스템 및 방법
관련 출원(들)에 대한 상호참조
본 출원은 2018년 6월 16일자로 인도에서 출원되었고 발명의 명칭이 "데이터베이스 레코드들을 비교하고 선택적으로 병합하기 위한 시스템 및 방법(SYSTEM AND METHOD FOR COMPARING AND SELECTIVELY MERGING DATABASE RECORDS)"인 인도 특허 출원 제201841022589호 및 2018년 8월 17일자로 출원되었고 발명의 명칭이 "데이터베이스 레코드들을 비교하고 선택적으로 병합하기 위한 시스템 및 방법(SYSTEM AND METHOD FOR COMPARING AND SELECTIVELY MERGING DATABASE RECORDS)"인 미국 특허 출원 제16/104,361호로부터 우선권을 주장하며, 이에 따라 양 출원은 그 전체가 본 명세서에 참조로 통합된다.
발명의 분야
본 발명은 일반적으로 데이터베이스 시스템에 관한 것으로, 특히 소스 데이터베이스로부터의 데이터베이스 레코드들을 제2 데이터베이스와 비교하고 선택적으로 병합하는 것에 관한 것이다.
데이터베이스들은 다양한 객체들에 대한 데이터를 저장한다. 일부 데이터베이스들에서, 특정 객체와 연관된 데이터는 다수의 관계형 데이터베이스 표들(relational database tables)에 걸쳐 분산될 수 있으며, 하나의 관계형 데이터베이스 표는 하나 이상의 다른 관계형 데이터베이스 표들(본 명세서에서는 편의상 부모 표(parent table) 또는 종속성(dependency)으로 지칭됨)에 대해 상호 참조할 수 있다.
본 발명의 일 실시예에 따르면, 방법, 데이터베이스 시스템, 및 컴퓨터 프로그램 제품은 소스 데이터베이스로부터의 객체를 타겟 데이터베이스에 병합하는 것을 가능하게 하며, 객체는 소스 데이터베이스 내의 복수의 관계형 데이터베이스 표에 저장된 데이터와 연관된다. 이러한 병합은 객체에 대한 기본 키(primary key)를 획득하는 단계; 객체에 대한 기본 키를 사용하여 소스 데이터베이스에 질의(query)하여 제1 관계형 데이터베이스 표로부터 기본 키 값을 획득하는 단계; 객체와 연관된 부모 객체(parent object, 상위 객체)를 식별하는 단계 - 부모 객체는 제2 관계형 데이터베이스 표와 연관됨 -; 부모 객체에 대한 부모 키를 획득하는 단계; 부모 키를 사용하여 소스 데이터베이스에 질의하여 제2 관계형 데이터베이스로부터 부모 키 값을 획득하는 단계; 부모 키 값을 사용하여 타겟 데이터베이스에 질의하여 부모 키 값이 타겟 데이터베이스 내의 부모 객체 레코드에 존재하는지 여부를 결정하는 단계; 부모 키 값이 타겟 데이터베이스 내의 부모 객체 레코드에 존재하지 않을 때, 부모 키 값을 포함하는 부모 객체 레코드를 타겟 데이터베이스에 추가하는 단계; 및 기본 키 값 및 부모 키 레코드 내의 부모 키 값에 대한 참조를 포함하는 객체 레코드를 타겟 데이터베이스에 추가하는 단계를 포함한다.
다양한 대안적인 실시예들에서, 부모 키를 사용하여 소스 데이터베이스에 질의하여 제2 관계형 데이터베이스로부터 부모 키 값을 획득하는 단계는 제1 및 제2 관계형 데이터베이스 표들을 연결하는 단계를 포함할 수 있다. 부모 키 값을 포함하는 부모 객체 레코드를 타겟 데이터베이스에 추가하는 단계는 부모 키 값에 대한 식별자(identifier)를 할당하는 단계를 포함할 수 있으며, 식별자는 타겟 데이터베이스 내에서 고유하고, 소스 데이터베이스 내의 부모 키 값에 대한 대응하는 식별자와 상이하며, 이 경우에 부모 키 값에 대한 참조는 부모 키 값에 대해 할당된 고유 식별자를 포함할 수 있다. 객체 레코드를 타겟 데이터베이스에 추가하는 단계는 기본 키 값에 대한 식별자를 할당하는 단계를 포함할 수 있고, 식별자는 타겟 데이터베이스 내에서 고유하고, 소스 데이터베이스 내의 기본 키 값에 대한 대응하는 식별자와 상이하며, 부모 키 값이 타겟 데이터베이스 내의 부모 객체 레코드에 존재할 때, 부모 키 값에 대한 참조는 기존의 부모 키 값과 연관된 식별자를 포함할 수 있다.
전술한 실시예들 중 임의의 실시예에서, 병합은 객체에 대한 기본 키를 포함하는 복수의 관계형 데이터베이스 표에 저장된 데이터 및 복수의 관계형 데이터베이스 표 사이의 관계들을 설명하는 구성 파일(configuration file)을 유지하는 단계를 포함할 수 있고, 객체에 대한 기본 키, 부모 객체의 식별, 및 부모 키는 구성 파일로부터 획득된다. 추가적인 실시예들이 개시되고 청구될 수 있다.
본 특허 또는 출원 파일은 컬러로 실행되는 적어도 하나의 도면을 포함한다. 컬러 도면(들)을 갖는 본 특허 또는 모 특허 출원 공개의 사본들은 신청 및 필요한 수수료의 지불 시에 특허청에 의해 제공될 것이다.
실시예들의 전술된 특징들은 첨부 도면들을 참조하여 이루어지는 이하의 상세한 설명을 참조함으로써 더욱 용이하게 이해될 것이다. 도면들에서:
도 1은 통화(CURRENCY)라고 하는 단위 그룹과 연관된 다양한 단위들의 표현들을 나타내는 예시적인 GUI 프론트엔드 디스플레이를 도시한다.
도 2는 하나의 예시적인 실시예에 따른, 통화, 무게 등과 같은 다양한 단위들을 정의하는 M_UNITS로 명명된 예시적인 표를 도시한다.
도 3은 하나의 예시적인 실시예에 따른, M_UNIT_GROUPS라고 명명된 예시적인 단위 그룹 표이다.
도 4는 예시적인 실시예에 따른, UNIT_ID 값들의 불일치를 포함하는 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 5는 예시적인 실시예에 따른, 부모 종속성들을 포함하는 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 6은 예시적인 실시예에 따른, UG_ID 값들의 불일치를 포함하는 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 7은 예시적인 실시예에 따른, UG_CODE 값들의 불일치를 포함하는 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 8은 예시적인 실시예에 따른, 소스 데이터베이스 내의 객체가 타겟 데이터베이스에 존재하지 않는 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 9는 예시적인 실시예에 따른, 타겟 데이터베이스 내의 객체가 소스 데이터베이스에 존재하지 않는 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 10은 예시적인 실시예에 따른, 소스 데이터베이스 내의 객체가 타겟 데이터베이스에 존재하지 않는 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 11은 예시적인 실시예에 따른, 도 10의 소스 및 타겟 데이터베이스들에 대한 연결 동작들(join operations)의 결과들을 도시한다.
도 12는 예시적인 실시예에 따른, 도 10-11의 데이터베이스 상태들에 기초하여 타겟 데이터베이스에 UG_CODE=WEIGHT를 추가할 때의 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 13은 예시적인 실시예에 따른, 도 12의 데이터베이스 상태들에 기초하여 타겟 데이터베이스에 UNIT_CODE=kg를 추가할 때의 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 14-16은 예시적인 실시예에 따른, 도 10-13을 참조하여 설명된 병합 프로세스를 위한 흐름도를 공동으로 형성한다.
도 17은 예시적인 실시예에 따른, UG_CODE=WEIGHT가 타겟 데이터베이스에 존재하지만 UNIT-CODE=kg가 타겟 데이터베이스에 존재하지 않는 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 18은 예시적인 실시예에 따른, 도 17의 데이터베이스 상태들에 기초하여 타겟 데이터베이스에 UNIT_CODE=kg를 추가할 때의 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 19는 예시적인 실시예에 따른, 베이스 표(base table) M_UNITS 내의 단일 베이스 레코드가 확장 표(extension table) 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=WEIGHT를 추가할 때의 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 25는 예시적인 실시예에 따른, 도 24의 데이터베이스 상태들에 기초하여 타겟 데이터베이스에 UNIT_CODE=kg를 추가할 때의 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 26은 예시적인 실시예에 따른, 객체가 동일한 레벨에서 다수의 종속성을 갖는 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 27은 예시적인 실시예에 따른, 도 26의 데이터베이스 상태들에 기초하여 타겟 데이터베이스에 X_CODE=PHYSICAL 및 UG_CODE=WEIGHT를 추가할 때의 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 28은 예시적인 실시예에 따른, 도 27의 데이터베이스 상태들에 기초하여 타겟 데이터베이스에 UNIT_CODE=kg를 추가할 때의 예시적인 소스 및 타겟 데이터베이스 상태들을 도시한다.
도 29는 예시적인 실시예에 따른, S3D 정보에 대한 예시적인 데이터 비교 윈도우를 보여주는 주석이 달린 스크린샷이다.
도 30은 예시적인 실시예에 따른, 전송 작업 정보(Transfer Jobs information)에 대한 예시적인 데이터 비교 윈도우를 보여주는 스크린샷이다.
도 31은 예시적인 실시예에 따른, 노트 정보에 대한 예시적인 데이터 비교 윈도우를 보여주는 스크린샷이다.
도 32는 예시적인 실시예에 따른, 모든 디스플레이된 레코드들이 양쪽 데이터베이스에서 동일한 예시적인 데이터 비교 윈도우를 보여주는 스크린샷이다.
도 33은 예시적인 실시예에 따른, 4개의 활성 SDB 병합 툴(Merge Tool) 윈도우를 보여주는 스크린샷이다.
도 34는 예시적인 실시예에 따른, 예시적인 객체 종속성 계층구조(Object Dependency Hierarchy) 윈도우를 보여주는 스크린샷이다.
도 35는 예시적인 실시예에 따른, 레코드들이 동일(Identical), 소스 전용(Source-only), 타겟 전용(Target-only) 및 상이(Different)에 의해 순서화되는 제1 포맷의 액셀로 내보내기 윈도우(Export to Excel window)를 보여주는 스크린샷이다.
도 36은 예시적인 실시예에 따른, 개별 차이들이 강조되는 제2 포맷의 액셀로 내보내기 윈도우를 보여주는 스크린샷이다.
전술한 도면들 및 그 안에 도시된 요소들은 반드시 일관된 스케일로 또는 임의의 스케일로 도시되지는 않는다는 점에 유의해야 한다. 문맥이 달리 시사하지 않는 한, 유사한 요소들은 유사한 번호들로 표시된다.
본 발명의 실시예들은, 논리적으로 관련된 데이터가 고려되고 병합되는 반면에 관련없는 차이들(예를 들어, 이 맥락에서 데이터베이스 표의 시퀀스 번호/식별자(ID)를 지칭하는 객체 식별자들)을 무시하고, 관계형 데이터베이스 표들에 걸친 모든 종속성들이 고려되고 병합되는 방식으로, 소스 데이터베이스와 타겟 데이터베이스가 비교되고 병합되는 것을 가능하게 한다. 일부 예시적인 실시예들은 인터그래프 사의 인터그래프 스마트™ 참조 데이터 제품에 대한 표준 데이터베이스(SDB)와 같은 데이터베이스들을 참조하여 본 명세서에서 논의되며, 일반적으로 "SDB 병합 툴"로서 지칭되지만, 개시된 개념들은 다른 유형들의 데이터베이스들에 더 일반적으로 적용될 수 있다.
본 발명의 기초가 되는 기술적 과제는 2개의 데이터베이스를 자동으로 비교하고, 2개의 데이터베이스 간의 차이를 식별하고, 불일치된 데이터를 하나의 데이터베이스(본 명세서에서 "소스" 데이터베이스로 지칭됨)로부터 다른 데이터베이스(본 명세서에서 "타겟" 데이터베이스로 지칭됨)에 병합하는 방법을 제공하는 것으로 간주될 수 있다. 종종, 논리적(비즈니스) 객체들과 연관된 데이터는 데이터베이스 내의 다수의 관계형 데이터베이스 표에 걸쳐 분산될 것이며(때때로 "정규화(normalization)"라고 함), 따라서 기초적인 데이터베이스 구조 및 설계를 이해하지 못하는 사용자들에게 특정한 논리적(비즈니스) 객체를 하나의 레코드로서 제시하기 위해 다수의 표가 액세스되거나 병합될 필요가 있다. 따라서, 예시적인 실시예들은 논리적 비즈니스 객체와 연관된 표들뿐만 아니라 표들 사이의 관계들을 열거하는 구성 파일에서 각각의 논리적(비즈니스) 객체들을 정의한다. 특정한 논리적(비즈니스) 엔티티의 레코드는 구성 파일에서 제공된 정보를 사용하여, 예를 들어 관련 표들을 식별하고 표들에 액세스하거나 표들을 연결하여 레코드에 필요한 모든 데이터를 획득함으로써 형성될 수 있다. 그 후, 하나의 데이터베이스로부터의 이 레코드는 다른 데이터베이스와 비교될 수 있다. 그래픽 사용자 인터페이스는 2개의 데이터베이스를 어떻게 비교할지(예를 들어, 차이들을 일반적으로 또는 특정 유형의 차이들에 관하여 식별할지)를 나타내기 위해 제공될 수 있다. 차이들은 예를 들어 데이터 그리드 뷰(data grid view)에서 나란히 보여질 수 있다. 이러한 그래픽 사용자 인터페이스로부터, 사용자들은, 예를 들어, 그리드 내의 불일치된 레코드를 선택하고 레코드를 타겟 데이터베이스에 저장함으로써, 소스 데이터베이스로부터의 데이터가 타겟 데이터베이스에 병합되게 할 수 있다. 중요하게, 소스 데이터베이스로부터 타겟 데이터베이스로의 데이터의 이러한 병합은 관계형 데이터베이스 표들에 걸쳐 모든 종속성들을 유지한다.
SDB 병합 툴은 2개의 표준 데이터베이스(SDB) 데이터베이스를 관찰/비교하고 사용자 직관적(user intuitive) 데이터 그리드 인터페이스에서 차이를 제공하는 기능을 제공하는 웹 기반 툴이다. 사용자는 나란한 데이터 그리드(side-by-side data grid)에서 차이들을 살펴보고, 병합될 필요가 있는 데이터를 선택하고, 데이터를 데이터베이스에 저장할 수 있다. 툴은 요구된 콘텐츠를 하나의 데이터베이스로부터 다른 데이터베이스에 선택적으로 병합하고 저장하는 유연성을 제공한다.
예시적인 SDB 병합 툴의 일부 특징들은 다음을 포함한다:
ㆍ 나란한 데이터 그리드에서 차이들을 관찰하고, 요구된 데이터를 하나의 SDB 데이터베이스로부터 다른 SDB 데이터베이스에 병합하기 위한 직관적 웹 기반 사용자 인터페이스.
ㆍ 소스 및 타겟 그리드들 둘 다의 동기 수평 및 수직 스크롤, 필터, 정렬(Sort), 열 크기 조절.
ㆍ 선택된 데이터를 타겟 데이터베이스에 병합하는 데 필요한 필수 부모 종속성들을 자동으로 식별하는 능력. 자식(child, 하위) 비즈니스 객체가 저장되는 경우, 필수 부모 비즈니스 객체도 그가 타겟 데이터베이스에 이미 존재하지 않는 경우에는 타겟 데이터베이스에 저장된다.
ㆍ 하이 레벨 비즈니스 객체들을 선택하고 그의 자식 종속 데이터와 함께 타겟 데이터베이스에 병합하는 능력.
ㆍ 데이터 모델에 기초하여 비즈니스 객체 계층 구조 트리를 구성하는 능력.
ㆍ 데이터베이스들 둘 다로부터의 데이터를 액셀 파일로 보고하는 능력. 사용자는 노드(node)를 클릭하고 해당 객체에 관련된 데이터를 보고할 수 있다. 데이터는 각각의 속성 값에 대해 나란히 보고된다. 이것은 데이터 차이들을 쉽게 비교할 수 있게 한다.
예시적인 SDB 시스템
통상적으로, SDB 시스템은 데이터가 다양한 관계형 데이터베이스 표들에 저장되는 관계형 데이터베이스 백엔드 및 사용자들이 데이터를 시각화 및 조작할 수 있게 하는 그래픽 사용자 인터페이스(GUI) 프론트엔드를 포함할 것이다. 종종, GUI 프론트엔드는 관계형 데이터베이스 표들에 저장된 데이터의 상세들 중 다수를 숨긴다. 예를 들어, 특정한 논리적(비즈니스) 객체(예를 들어, 파이프 등의 제품)는 다수의 관계형 데이터베이스 표에 걸쳐 분산되는 데이터(예를 들어, 제조자, 재료, 길이, 내경, 외경, 스레딩(threading), 비용, 무게 등)에 기초할 수 있지만, GUI 프론트엔드는 통상적으로 사용자가 기초적인 표들(underlying tables)에 관한 어떤 것 또는 데이터가 표들에 저장되는 방식을 알 필요없이 사용자가 객체에 관한 정보를 보고 조작할 수 있게 해준다.
예를 들어, 특정 SDB 시스템은 논리적(비즈니스) 객체(예를 들어, 호주 달러 및 캐나다 달러와 같은 통화, 킬로그램 및 파운드와 같은 무게, 제곱미터 및 제곱피트와 같은 면적의 단위 등)를 지정하는 데 사용하기 위한 다양한 단위들을 정의할 수 있다. SDB 백엔드 내에서, 단위들은 관계형 데이터베이스 표(예를 들어, 본 명세서에서 "단위(Unit)" 표라고 지칭됨)에 저장될 수 있다. SDB 백엔드는 별개의 관계형 데이터베이스 표(예를 들어, 본 명세서에서 "단위 그룹" 표로 지칭됨)에서 다양한 단위 그룹들(예를 들어, "통화", "무게", "면적" 등으로 명명된 단위 그룹들)을 정의할 수 있다. 다양한 단위들 및 단위 그룹들은 SDB 내의 고유 식별자들(예를 들어, 숫자 식별자들)을 할당받을 수 있다. 단위 표 내의 각각의 단위는 예를 들어 각각의 단위에 대해 단위 그룹 표로부터의 연관된 단위 그룹의 식별자를 단위 표 내에 저장함으로써 단위 그룹 표 내의 단위 그룹들 중 하나와 연관될 수 있다(예를 들어, 단위 호주 달러 및 캐나다 달러는 "통화"라고 하는 단위 그룹과 연관될 수 있고, 단위 킬로그램 및 파운드는 "무게"라고 하는 단위 그룹과 연관될 수 있고, 단위 제곱미터 및 제곱피트는 "면적"이라고 하는 단위 그룹과 연관될 수 있고, 기타 등등이다).
도 1은 통화(CURRENCY)라고 하는 단위 그룹과 연관된 다양한 단위들의 표현들을 나타내는 예시적인 GUI 프론트엔드 디스플레이를 도시한다. 여기서, 각각의 단위는 사용자가 볼 수 있는 다양한 특성들을 가지며, 다음을 포함한다:
Figure pct00001
단위 그룹
Figure pct00002
단위
Figure pct00003
짧은 설명(Short Desc)
Figure pct00004
설명(Description)
Figure pct00005
정밀도(Precision)
이들 특성은 SDB 백엔드 내의 다양한 관계형 데이터베이스 표들에 다른 데이터와 함께 저장된다.
도 2는 하나의 예시적인 실시예에 따른, 통화들, 무게들 등과 같은 다양한 단위들을 정의하는 M_UNITS로 명명된 예시적인 표를 도시한다. 여기서, M_UNITS 표는 다음의 열들을 포함한다:
Figure pct00006
UNIT_ID: 기본 키. 이것은 시퀀스의 값이다.
Figure pct00007
UG_ID: 상이한 표에 유지되는 단위 그룹의 ID.
Figure pct00008
UNIT_CODE: 직접 특성(Direct Property). 단위
Figure pct00009
USR_ID: 직접 특성. 최종 수정된 사용자
Figure pct00010
LMOD: 직접 특성. 최종 수정된 시간
Figure pct00011
INT_REV: 직접 특성. 갱신 횟수
Figure pct00012
PRECISION: 직접 특성. 정밀도
Figure pct00013
SDB_INFO: 직접 특성. SDB Info - 사용자들은 이 필드에 커스텀 데이터를 추가할 수 있다.
열 UG_ID는 개별 단위 그룹 표(도시되지 않음)에 대한 참조들을 포함한다는 점에 유의한다. 구체적으로, 단위 kg/m 및 kg/1000pc는 5012의 단위 그룹 ID(UG_ID)를 갖는 단위 그룹과 연관되고, 단위 도(deg)는 5008의 단위 그룹 ID(UG_ID)를 갖는 단위 그룹과 연관되고, 단위 m2/UOM은 5000의 단위 그룹 ID(UG_ID)를 갖는 단위 그룹과 연관되며, 단위 AED 및 AUD는 5007의 단위 그룹 ID(UG_ID)를 갖는 단위 그룹과 연관된다.
M_UNITS 표는 단위 그룹 특성들에 대한 데이터를 갖지 않는다. 따라서, 단위 그룹 특성들에 대한 데이터는 단위 그룹 표와 연결함으로써 획득될 필요가 있다. 도 3은 하나의 예시적인 실시예에 따른 M_UNIT_GROUPS라고 명명된 예시적인 단위 그룹 표이다. M_UNITS 표에서와 같이, M_UNIT_GROUPS 표는 통상적으로 예를 들어 다음을 포함하는 추가적인 열들(편의상 도시되지 않음)을 포함할 것이다:
Figure pct00014
최종 수정된 사용자
Figure pct00015
갱신 횟수
Figure pct00016
최종 수정된 시간
M_UNIT_GROUPS 표에 필요한 데이터의 일부는 하나 이상의 다른 표와 연결함으로써 획득되어야 할 수 있다는 것이 가능하다.
또한, M_UNITS 표는 도 1의 GUI 프론트엔드 디스플레이에 디스플레이되는 짧은 설명 및 설명 필드들에 대한 데이터를 갖지 않으며, 따라서 이 데이터는 하나 이상의 다른 표와 연결함으로써 획득될 필요가 있을 것이다(예를 들어, M_UNITS 표의 UNIT_ID 필드를 사용하여 액세스됨).
도 1의 GUI 프론트엔드 디스플레이는 기초적인 관계형 데이터베이스 표들 및 데이터가 표들에 어떻게 저장되는지에 관한 정보를 숨긴다는 점에 유의해야 한다. 따라서, 사용자들은 객체 레벨에서 작업할 수 있는 반면, SDB 시스템은 장면들 뒤에서 모든 관계형 데이터베이스 동작들을 처리한다.
소스 및 타겟 SDB 데이터베이스들의 비교
때때로, 2개의 SDB 데이터베이스를 비교하는 것이 필요하거나 바람직할 수 있다. 이와 관련하여, SDB 병합 툴은 예를 들어 객체 식별자들보다는 데이터의 의미를 비교할 필요가 있고, 관계형 데이터베이스 표들에 걸쳐 확장되는 종속성들을 고려할 필요가 있다. 예를 들어, 소스 및 타겟 데이터베이스들이 도 4에 도시된 엔트리들을 포함한다고 가정한다. 소스 데이터베이스는 UNIT_ID=5440을 UNIT_CODE=kg/m와 연관시키는 반면, 타겟 데이터베이스는 UNIT_ID=5440을 UNIT_CODE=deg와 연관시킨다는 점에 유의한다. 따라서, 이 객체와 관련하여 2개의 데이터베이스가 일치하지 않는 것으로 보일 것이다. 그러나, 예시적인 실시예들에서, SDB 병합 툴이 UNIT_ID와 UNIT_ID가 아니라 UNIT_CODE와 UNIT_CODE를 비교하기 때문에, 이러한 식별자 불일치는 2개의 데이터베이스 사이의 불일치로 간주되지 않는다. 따라서, 이 예에서, SDB 병합 툴은 (UNIT_CODE=kg/m, UNIT_ID=5440)을 (UNIT_CODE=deg, UNIT_ID=5440)과 비교하고 부적절하게 불일치를 식별하는 대신에 (UNIT_CODE=kg/m, UNIT_ID=5440)을 (UNIT_CODE=kg/m, UNIT_ID=5304)와 비교하고 일치를 식별한다.
예시적인 실시예들에서, 특히 객체들이 위의 예에서 M_UNITS 표 내의 단위들과 M_UNIT_GROUPS 표 내의 단위 그룹들 사이의 종속성과 같은 관계형 데이터베이스 표들에 걸친 종속성들을 가질 때, SDB 병합 툴은 2개의 데이터베이스를 비교하기 위해 더 진행해야 한다. 이제, 소스 및 타겟 데이터베이스들이 도 5에 도시된 엔트리들을 포함한다고 가정한다. 여기서, SDB 병합 툴은 UNIT_CODE=kg/m이 데이터베이스들 둘 다에 존재할 뿐만 아니라 각각의 데이터베이스가 UNIT_CODE=kg/m을 UG_CODE=WEIGHT를 갖는 단위 그룹과 연관시킨다고 결정할 수 있다. 따라서, SDB 병합 툴은 2개의 데이터베이스가 이 객체에 대해 일치한다고 결정할 수 있다.
유사하게, SDB 병합 툴은 데이터베이스들 둘 다에 UNIT_CODE=deg가 존재할 뿐만 아니라 각각의 데이터베이스가 UNIT_CODE=deg를 UG_CODE=TEMPERATURE를 갖는 단위 그룹과 연관시킨다고 결정할 수 있다. 따라서, SDB 병합 툴은 2개의 데이터베이스가 이 객체에 대해 일치한다고 결정할 수 있다.
이러한 비교들을 수행하기 위해, SDB 병합 툴은 적절한 표들을 연결함으로써 각각의 논리적(비즈니스) 객체와 연관된 논리 데이터를 획득해야 한다. 위의 예에서, 예를 들어, 단위 kg/m 및 deg와 연관된 논리 데이터를 얻기 위해, SDB 병합 툴은 M_UNITS 및 M_UNIT_GROUPS 표들을 연결해야 한다.
단위 kg/m에 대한 UNIT_ID들이 2개의 데이터베이스에서 일치하지 않는 위의 상황과 유사하게, 단위 그룹에 대한 UG_ID들이 일치하지 않을 가능성이 있다. 소스 및 타겟 데이터베이스들이 도 6에 도시된 엔트리들을 포함한다고 가정한다. 여기서, 타겟 데이터베이스의 WEIGHT 및 TEMPERATURE에 대한 단위 그룹 식별자들이 소스 데이터베이스의 단위 그룹 식별자들과 일치하지 않더라도, SDB 병합 툴은 양쪽 데이터베이스 모두에 UNIT_CODE=kg/m이 존재할 뿐만 아니라 각각의 데이터베이스가 UNIT_CODE=kg/m을 UG_CODE=WEIGHT를 갖는 단위 그룹과 연관시킨다고 결정할 수 있는데, 그 이유는 SDB 병합 툴이 단위 식별자들보다는 단위 코드들을 비교하기 때문이다. 따라서, SDB 병합 툴은 2개의 데이터베이스가 이 객체에 대해 일치한다고 결정할 수 있다.
유사하게, SDB 병합 툴은 양쪽 데이터베이스 모두에 UNIT_CODE=deg가 존재할 뿐만 아니라 각각의 데이터베이스가 UNIT_CODE=deg를 UG_CODE=TEMPERATURE을 갖는 단위 그룹과 연관시킨다고 결정할 수 있는데, 그 이유는 SDB 병합 툴이 단위 식별자들보다는 단위 코드들을 비교하기 때문이다. 따라서, SDB 병합 툴은 2개의 데이터베이스가 이 객체에 대해 일치한다고 결정할 수 있다.
또한, 특정 단위가 2개의 데이터베이스에서 일치하지만, 부모 종속성들(즉, 이 예에서는 단위 그룹)은 일치하지 않을 가능성이 있다. 소스 및 타겟 데이터베이스들이 도 7에 도시된 엔트리들을 포함한다고 가정한다. 여기서, UNIT_CODE=deg를 갖는 단위는 양쪽 데이터베이스 모두에 존재하지만, 소스 데이터베이스의 단위 그룹 TEMPERATURE 및 타겟 데이터베이스의 단위 그룹 ANGLE과 연관된다. SDB 병합 툴이 그의 종속성들 모두를 포함하는 객체를 비교하기 때문에, SDB 데이터베이스는 UNIT_CODE=deg를 갖는 단위에 대한 사용자 그룹들을 비교할 때 불일치를 식별할 수 있다.
물론, 소스 데이터베이스 내의 객체가 타겟 데이터베이스에 존재하지 않을 가능성도 있다. 소스 및 타겟 데이터베이스들이 도 8에 도시된 엔트리들을 포함한다고 가정한다. 여기서, 타겟 데이터베이스는 UNIT_CODE=deg를 갖는 단위를 포함하지 않는다. SDB 병합 툴은 UNIT_CODE=deg를 갖는 단위에 대해 타겟 데이터베이스에서 검색할 때 이러한 불일치를 식별할 수 있다.
유사하게, 타겟 데이터베이스 내의 객체가 소스 데이터베이스에 존재하지 않을 가능성도 있다. 소스 및 타겟 데이터베이스들이 도 9에 도시된 엔트리들을 포함한다고 가정한다. 여기서, 소스 데이터베이스는 UNIT_CODE=deg를 갖는 단위를 포함하지 않는다. SDB 병합 툴은 타겟 데이터베이스로부터 UNIT_CODE=deg를 갖는 단위에 대해 소스 데이터베이스에서 검색할 때, 또는 소스 데이터베이스로부터의 객체들을 타겟 데이터베이스와 비교할 때 액세스되지 않은 타겟 데이터베이스 내의 임의의 객체들을 다른 방식으로 식별함으로써 이러한 불일치를 식별할 수 있다.
따라서, 2개의 데이터베이스의 비교 동안, 각각의 논리적(비즈니스) 객체는 다음의 차이 카테고리들 중 하나로 분류될 수 있다:
Figure pct00017
동일 - 객체는 소스 데이터베이스 및 타겟 데이터베이스 둘 다에 존재하고, 모든 특성들은 양쪽 데이터베이스 모두에서 일치하고 있다.
Figure pct00018
소스 전용(Source Only) - 객체는 소스 데이터베이스에 존재하지만 타겟 데이터베이스에는 존재하지 않는다.
Figure pct00019
타겟 전용(Target Only) - 객체는 타겟 데이터베이스에 존재하지만 소스 데이터베이스에는 존재하지 않는다.
Figure pct00020
상이 - 객체는 소스 데이터베이스 및 타겟 데이터베이스 둘 다에 존재하지만, 특성들은 거의 일치하지 않는다.
구성 파일들
위에서 언급된 바와 같이, 데이터베이스들이 비교될 수 있도록 각각의 논리적(비즈니스) 객체와 연관된 논리적 데이터를 획득하기 위해, SDB 병합 툴은 다수의 표를 연결해야 할 수 있다. 통상적인 SDB 데이터베이스들에서는, SQL 질의들을 기록하고 유지하여 SDB 데이터베이스와 연관된 모든 논리적 객체들을 비교하는 것은 비현실적일 것이다. 따라서, 예시적인 실시예들에서, SDB 병합 툴은 논리적 종속성들을 포함하는 SDB 데이터베이스의 논리적 객체 구조들을 정의하는 구성 파일들을 유지한다. SDB 병합 툴은 데이터베이스 객체들을 비교하고 복사하기 위해 동적 삽입 및 갱신 스크립트들의 형태의 실행가능한 질의들을 구성 파일들로부터 생성한다.
예시적인 실시예에서, 각각의 논리적(비즈니스) 객체는 객체의 이름, 데이터베이스로부터 데이터를 인출(fetching)하기 위한 베이스 표, 및 사용자 인터페이스에서 보여줄 선택적인 디스플레이 이름을 포함하는 BODefinition 요소에 의해 정의된다. 이것은 또한 특성들의 리스트들, 기본 키 및 고유 특성들을 정의한다.
다음은 예시적인 실시예에 따른 예시적인 BODefinition 정의이다.
Name: 논리적 객체의 이름을 정의하는 속성. 이것은 전체 구성에 대해 고유하다.
BaseTable: 객체 데이터가 정의되는 데이터베이스 내의 기본 표(primary table)를 정의하는 속성.
DisplayName: 사용자 인터페이스에 표시될 이름을 정의하는 선택적인 속성. 정의되지 않은 경우, Name의 값이 사용된다.
PrimaryKey: 논리적 객체의 기본 키를 정의하는 요소.
UniqueKey: 논리적 객체의 고유 키를 정의하는 요소.
Properties: 논리적 객체의 특성들을 정의하는 요소.
다음은 예시적인 실시예에 따른 예시적인 PrimaryKey 정의이다:
PrimaryKey: 베이스 표의 기본 키를 정의하는 요소. 이것은 기본 키의 일부인 열들의 리스트를 포함한다.
PrimaryKeyColumn: 기본 열을 정의하는 요소.
PrimaryKeyColumn의 Column: 열 이름을 정의하는 속성.
PrimaryKeyColumn의 Sequence: 다음 값을 얻는 데 사용되는 시퀀스를 정의하는 속성. 이것은 열이 부모 표에서 기본 키로서 정의되는 경우에는 선택적이다.
다음은 예시적인 실시예에 따른 예시적인 UniqueKey 정의이다:
UniqueKey: 논리적 객체의 고유 키의 일부인 특성들을 정의하는 요소. 이는 고유 키의 일부인 특성들의 리스트를 포함한다.
UniqueProperty: 고유 특성을 정의하는 요소.
UniqueProperty의 Name: 고유 특성의 이름을 정의하는 속성.
다음은 예시적인 실시예에 따른 예시적인 Properties 정의이다:
Properties: 논리적 객체의 특성들을 정의하는 요소. 이는 특성 요소들의 리스트를 포함한다.
Property: 논리적 객체의 개별 특성을 정의하는 요소.
Property의 Name: 특성의 이름을 정의하는 속성.
Property의 Dbcolumn: 특성에 대한 데이터가 정의되는 데이터베이스 열을 정의하는 속성.
Property의 UseForComparison: 논리적 객체의 비교를 위해 특성이 사용되어야 하는지를 정의하는 속성.
Property의 ExtensionColumn: 데이터가 정의되는 확장 표의 열 이름을 정의하는 속성.
Property의 ExtensionTable: 베이스 표 이외의 논리적 객체의 추가 정보를 포함하는 표의 이름을 정의하는 속성. 이것은 확장 표를 연결하기 위해 열만이 요구되고 확장 표 및 베이스 표 둘 다에서의 열 이름이 동일할 때 확장 표 관계들을 정의하는 데 사용될 수 있다. 그렇지 않으면 확장 요소를 사용한다.
Property의 ParentName: 데이터가 정의되는 부모 객체 내의 열의 이름을 정의하는 속성.
Property의 ParentBO: 부모 논리적 객체의 이름을 정의하는 속성. 여기서 실제 데이터가 정의된다. 이것은 1 레벨 부모 계층구조만이 요구되고 부모 표 및 베이스 표 둘 다의 열 이름이 동일할 때를 정의하는 데 사용될 수 있다. 그렇지 않으면 부모 요소를 사용한다. 이것은 부모 관계의 약칭(short hand) 정의를 가능하게 한다.
다음은 예시적인 실시예에 따른 예시적인 Join 정의이다:
Join: 2개의 표를 연결하는 방법을 정의하는 요소.
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가 디폴트 값으로서 사용되는 예를 도시한다.
예시적인 구성 파일 스키마(SCHEMA)
다음은 예시적인 실시예에 따른 구성 xml에 대한 예시적인 구성 파일 스키마이다:
Figure pct00021
Figure pct00022
Figure pct00023
Figure pct00024
예시적인 구성 파일
다음은 도 1-9를 참조하여 도시되고 설명된 예들에서 사용되는 관계형 데이터베이스 표들의 유형들에 대한 예시적인 구성 파일이다:
Figure pct00025
Figure pct00026
Figure pct00027
Figure pct00028
이하의 필드들은 이 구성 파일에서 비교 목적들을 위해 사용되지 않는다는 점에 유의한다(즉, 모두는 UseForComparison="false"를 갖는다):
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"/>
Column will be bt.UG_CODE UG_CODE
사례 2: 열에 의해 연결된 부모 표에 의해 정의된 값을 갖는 속성들. 예를 들어:
예를 들어,
<Property Name="UG_CODE" ParentName="UG_CODE">
<Parent ParentBO="UnitGroup">
<Join Column="UG_ID" JoinColumn="UG_ID"/>
</Parent>
</Property>
(select UG_CODE from M_UNIT_GROUPS where bt.UG_ID= UG_ID) UG_CODE
ParentName 값은 베이스 표 및 부모 표로부터의 열들을 연결함으로써 ParentBO의 베이스 표로부터 선택된다. Name 값이 가명으로 사용된다.
다수의 부모가 존재하는 경우, 이들은 특성에 대한 값을 얻기 위해 연결된다. 예를 들어:
<Property Name="UG_CODE" ParentName="UG_CODE">
<Parent ParentBO="Unit">
<Join Column="UNIT_ID" JoinColumn="UNIT_ID"/>
</Parent>
<Parent ParentBO="UnitGroup">
<Join Column="UG_ID" JoinColumn="UG_ID"/>
</Parent>
</Property>
(select UG_CODE from M_UNIT_GROUPS
where (UG_ID) in
(select UG_ID from M_UNITS where bt.UNIT_ID=UNIT_ID)
) UG_CODE
사례 3: 확장 표들에 정의되는 특성들. 확장 열은 베이스 표 및 확장 표들의 열들을 연결함으로써 확장 표로부터 선택된다. Name 값이 가명으로서 사용된다. 예를 들어:
<Property Name="SHORT_DESC" ExtensionColumn="SHORT_DESC">
<Extension ExtensionTable="M_UNIT_NLS">
<Join Column="UNIT_ID" JoinColumn="UNIT_ID"/>
<Join Column="NLS_ID" JoinColumn="NLS_ID" DefaultValue="1"/>
</Extension>
</Property>
(select SHORT_DESC from M_UNIT_NLS where bt.UNIT_ID= UNIT_ID and NLS_ID=1) SHORT_DESC
합집합(union), 교집합(intersect) 및 마이너스(minus)의 데이터베이스 기능을 사용하여 데이터를 비교하고 논리적 객체들을 분류한다. 구체적으로, 하나의 데이터베이스를 다른 데이터베이스에(즉, 소스를 타겟에 그리고 타겟을 소스에) 접속하기 위해 데이터베이스 링크들이 생성된다. 표들에 질의하는 동안, 접미사 또는 접두사가 표 이름, 예를 들어 table@remote_link, remote_link.table에 추가될 수 있다.
이하의 표기법은 다양한 차이 카테고리들(difference categories)에 대한 이하의 "골격(skeleton)" 질의들에서 사용된다:
Figure pct00029
all_properties는 모든 특성들을 포함하는 열 리스트이다.
Figure pct00030
compare_properties는 비슷한 특성들을 포함하는 열 리스트이다.
Figure pct00031
unique_properties는 고유 키의 일부인 특성들을 포함하는 열 리스트이다.
Figure pct00032
null_columns는 널 값들을 정의하는 열 리스트이다. 이것은 합집합 질의의 모든 하위 질의들(sub queries) 내의 열들의 수와 일치시키는 데 사용된다.
동일 질의
Select all_properties from table
Where (compare_properties) in
(
Select compare_ properties from table
intersect
Select compare_ properties from remote_table)
소스 전용 질의
Select all_properties from table
Where (unique_properties) in
(
Select unique_ properties from table
minus
Select unique_ properties from remote_table)
타겟 전용 질의
Select null_columns from remote_table
Where (unique_properties) in
(
Select unique_ properties from remote_table
minus
Select unique_ properties from table)
차이 질의
Select all_properties from table
Where (unique_properties) in
(
(select unique_ properties from table
intersect
Select unique _ properties from remote_table)
Minus
(select compare_ properties from table
intersect
Select compare_ properties from remote_table)
)
모든 카테고리들의 레코드들을 얻기 위해, 모든 위의 질의들은 합집합을 사용하여 조합될 수 있거나 개별 카테고리 결과들이 질의될 수 있다. 관계형 데이터베이스 관리 시스템들에 기초하여, 질의들은 변형들을 가질 수 있고, 더 나은 성능을 위해 튜닝될 수 있다.
다음은 소스 SDB 데이터베이스로부터 데이터를 비교하고 인출하기 위한 예시적인 질의이다:
Figure pct00033
Figure pct00034
Figure pct00035
Figure pct00036
Figure pct00037
Figure pct00038
Figure pct00039
Figure pct00040
Figure pct00041
Figure pct00042
Figure pct00043
Figure pct00044
예 - 객체 및 부모를 타겟에 병합
다음은 소스 데이터베이스에 존재하지만 타겟 데이터베이스에 존재하지 않는 객체를 병합하는 예이다. 소스 및 타겟 데이터베이스들이 도 10에 도시된 엔트리들을 포함한다고 가정하자. 여기서, 소스 데이터베이스는 타겟 데이터베이스에 존재하지 않는 UNIT_CODE=kg를 갖는 단위를 포함한다. 간소화를 위해, 고유 특성들 및 기본 키 데이터만이 도시된다. 전술한 바와 같이, 이 불일치는 그래픽 사용자 인터페이스를 통해 사용자에게 제시될 수 있다. 사용자는 소스 데이터베이스로부터의 객체를 타겟 데이터베이스에 저장하도록 선택할 수 있으며, 이 경우에 SDB 병합 툴은 소스 데이터베이스로부터의 관련 데이터를 타겟 데이터베이스에 병합한다.
예시적인 실시예에서, SDB 병합 툴은 먼저 구성 파일들에 기초하여 적절한 표들에 연결한다. 도 11은 이 예에 따른 소스 및 타겟 데이터베이스들에 대한 연결 동작들의 결과들을 도시한다.
연결 동작들의 결과들에 기초하여, SDB 병합 툴은 UNIT_CODE=kg를 갖는 단위가 소스 데이터베이스에 존재하지만 타겟 데이터베이스에 존재하지 않음을 인식할 수 있다. SDB 병합 툴은 또한 UNIT_CODE=kg을 갖는 단위가 UG_CODE=WEIGHT를 갖는 단위 그룹 표 내의 부모를 갖지만 타겟 데이터베이스는 UG_CODE=WEIGHT를 갖는 단위 그룹을 갖지 않음을 인식할 수 있다. 따라서, SDB 병합 툴은 UG_CODE=WEIGHT를 갖는 단위 그룹을 타겟 데이터베이스에 추가하여, 결과적으로 도 12에 도시된 데이터베이스 상태들을 유발한다. UG_CODE=WEIGHT를 갖는 단위 그룹에는 22의 단위 그룹 식별자(UG_ID)가 추가되었으며, 이는 타겟 데이터베이스 내에서 고유하고 소스 데이터베이스에서 UG_CODE=WEIGHT에 사용되는 20의 UG_ID와는 상이하다는 점에 유의한다. 이것은 UG_ID=20이 이미 소정의 다른 단위 그룹과 연관하여 타겟 데이터베이스 내에서 사용 중일 수 있기 때문이다.
UG_CODE=WEIGHT를 갖는 단위 그룹을 타겟 데이터베이스에 추가한 후, SDB 병합 툴은 UNIT_CODE=kg를 갖는 단위를 타겟 데이터베이스에 추가하여, 도 13에 도시된 데이터베이스 상태들을 유발한다. UNIT_CODE=kg를 갖는 단위에 소스 데이터베이스로부터의 UNIT_ID=1003을 갖는 단위를 추가하는 것이 아니라 타겟 데이터베이스 내에서 고유한 UNIT_ID=1007을 추가했다는 점에 유의한다. 이것은 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=WEIGHT인 획득된 부모 고유 키 값을 사용하여 타겟 데이터베이스에 질의한다. 그 후, 블록 1416에서, SDB 병합 툴은 UG_CODE=WEIGHT 레코드가 타겟 데이터베이스에서 이용가능한지를 결정한다. 이 예에서, UG_CODE=WEIGHT 레코드는 타겟 데이터베이스에서 이용가능하지 않으며(즉, 블록 1416에서 아니오), 따라서 SDB 병합 툴은 블록 1408로 복귀하여 UG_CODE=WEIGHT 객체가 결국 임의의 부모 객체들을 갖는지를 체크한다. 이 예에서, UG_CODE=WEIGHT 객체는 어떠한 부모 객체도 갖지 않으며(블록 1408에서 아니오), 따라서 SDB 병합 툴은 블록 1418로 진행하며, 여기서 SDB 병합 툴은, 도 12에 도시된 바와 같이 UG_CODE=WEIGHT 블록을 UG_ID=22를 갖는 M_UNIT_GROUPS 표에 삽입한다. 그 후, 블록 1420에서, SDB 병합 툴은 기본 키에 대한 값(즉, UNIT_ID=1007)을 결정하고, 블록 1422에서 M_UNITS 표에 레코드를 추가하여, 도 13에 도시된 데이터베이스 상태들을 유발한다.
예 - 기존의 부모를 사용하여 객체를 타겟에 병합
위의 예의 변형으로서, 타겟 데이터베이스는 예를 들어 도 17에 도시된 바와 같이 UG_CODE=WEIGHT를 갖는 단위 그룹을 포함할 수 있다. 이 경우에, SDB 병합 툴은 UNIT_CODE=kg를 갖는 단위가 소스 데이터베이스에 존재하지만 타겟 데이터베이스에 존재하지 않는다는 것을 인식할 수 있다. SDB 병합 툴은 또한 UNIT_CODE=kg을 갖는 단위가 UG_CODE=WEIGHT를 갖는 단위 그룹 내의 부모를 갖는다는 것을 인식할 수 있고, 또한 UG_CODE=WEIGHT를 갖는 단위 그룹이 상이한 UG_ID를 갖더라도 타겟 데이터베이스에 존재한다는 것을 인식할 수 있다. 따라서, SDB 병합 툴은 UG_CODE=WEIGHT를 갖는 기존의 단위 그룹을 사용하여 UNIT_CODE=kg를 갖는 단위를 타겟 데이터베이스에 추가하여, 도 18에 도시된 데이터베이스 상태들을 유발할 수 있다.
다시 도 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=WEIGHT인 획득된 부모 고유 키 값을 사용하여 타겟 데이터베이스에 질의한다. 그 후, 블록 1416에서, SDB 병합 툴은 UG_CODE=WEIGHT 레코드가 타겟 데이터베이스에서 이용가능한지를 결정한다. 이 예에서, UG_CODE=WEIGHT 레코드는 타겟 데이터베이스에서 이용가능하고(즉, 블록 1416에서 예), 따라서 SDB 병합 툴은 블록 1420으로 진행하고, 여기서 SDB 병합 툴은 기본 키에 대한 값(즉, UNIT_ID=1007)을 결정하고, 블록 1422에서 레코드를 M_UNITS 표에 추가하여, 도 18에 도시된 데이터베이스 상태들을 유발한다.
예 - 종속성들의 다수의 레벨
도 22는 데이터베이스들의 비교 및 병합 둘 다를 위해 처리될 필요가 있는 종속성들의 다수의 레벨이 존재하는 예시적인 데이터베이스 상태들을 도시한다. 구체적으로, 이 예에서, M_UNITS 표는 M_UNIT_GROUPS 표에 종속하고, M_UNIT_GROUPS 표는 (간단히 예를 들어) 단위 그룹 AREA 및 WEIGHT를 공간 특성들로서 분류하고 단위 그룹 WEIGHT를 물리 특성으로서 분류하는 X 표에 종속한다. SDB 병합 툴은 타겟 데이터베이스가 UNIT_CODE=kg를 갖는 단위를 갖지 않음을 인식하고, 타겟 데이터베이스가 또한 UG_CODE=WEIGHT를 갖는 연관된 단위 그룹을 갖지 않음을 인식하고, 타겟 데이터베이스가 또한 X_CODE=PHYSICAL을 갖는 연관된 카테고리를 갖지 않음을 인식한다. 따라서, SDB 병합 툴은 먼저 타겟 데이터베이스에 X_CODE=PHYSICAL 및 X_ID=67을 갖는 카테고리를 추가하여, 도 23에 도시된 데이터베이스 상태들을 유발한다. 그 후, SDB 병합 툴은 타겟 데이터베이스에 UG_CODE=WEIGHT 및 UG_ID=69를 갖는 단위 그룹을 추가하여, 도 24에 도시된 데이터베이스 상태들을 유발한다. 그 후, 도 25에 도시된 바와 같이, SDB 병합 툴은 타겟 데이터베이스에 UNIT_CODE=kg 및 UNIT_ID=1007을 갖는 단위를 추가한다. 이러한 방식으로, 단위에는 그의 종속성들 모두가 추가되었다.
이 프로세스 및 도 14-16을 참조하여 설명된 프로세스들은 일반적으로 구성 파일로부터 획득된 객체에 대한 기본 키(예를 들어, 전술한 예와 관련하여, UNIT_CODE=kg를 갖는 단위 객체와 연관된 기본 키)로 초기에 호출된 다음의 의사코드(pseudocode)를 사용하는 재귀적 프로세스로서 표현될 수 있다는 점에 유의해야 한다.
Merge (Key)
{
Check if Key has one or more parents;
If Key has one or more parents, then, for each parent:
{
Get Parent Key from configuration file;
Call Merge (Parent Key)
}
When parent iteration(s) are complete:
{
Get value associated with Key;
Check if value associated with Key is in Target database;
If value associated with Key is not in Target database:
Add record for Key and key value into Target database;
}
}
따라서, 이 예에서, Merge 함수(function)는 초기에 UNIT_CODE=kg에 대한 키로 호출(call)될 것이다. Merge 함수의 이러한 제1 반복은 키가 부모(즉, UG_CODE=WEIGHT)를 갖는다고 결정할 것이고, 따라서 UG_CODE=WEIGHT에 대한 키로 Merge 함수를 호출(invoke)할 것이다. Merge 함수의 이러한 제2 반복은 키가 부모(즉, X_CODE=PHYSICAL)를 갖는다고 결정할 것이고, 따라서 X_CODE=PHYSICAL에 대한 키로 Merge 함수를 호출할 것이다. Merge 함수의 이러한 제3 반복은 키가 부모를 갖지 않는다고 결정할 것이다. 이어서, 제3 반복은 X_CODE=PHYSICAL이 타겟 데이터베이스에 존재하는지를 체크하고, 그렇지 않다면 X_CODE=PHYSICAL에 대한 레코드를 타겟 데이터베이스에 추가할 것이다. 아무튼, 제3 반복은 종료되고 제2 반복으로 되돌아갈 것이고, 제2 반복은 UG_CODE=WEIGHT가 타겟 데이터베이스에 존재하는지 알아보기 위해 체크하고, 그렇지 않다면 UG_CODE=WEIGHT에 대한 레코드를 타겟 데이터베이스에 추가할 것이다. 어쨌든, 제2 반복은 종료되고 제1 반복으로 되돌아갈 것이고, 제1 반복은 UNIT_CODE=kg가 타겟 데이터베이스에 존재하는지 체크하고, 그렇지 않다면 UNIT_CODE=kg에 대한 레코드를 타겟 데이터베이스에 추가할 것이다. 제1 반복의 종료 시에, 객체는 소스 데이터베이스로부터 타겟 데이터베이스에 병합되었다.
특정 객체가 동일한 레벨에서 다수의 종속성을 갖는 상황들에 유사한 처리 및 유사한 반복들이 적용될 수 있다. 예를 들어, 도 26은 데이터베이스들의 비교 및 병합 둘 다를 위해 처리될 필요가 있는 M_UNITS 표 내의 다수의 종속성이 있는 예시적인 데이터베이스 상태들을 도시한다. 구체적으로, 이 예에서, M_UNITS 표는 각각의 단위를 단위 그룹과 연관시키는 M_UNIT_GROUPS 표에 종속하고, (간단히 예를 들어) 각각의 단위를 공간 특성 또는 물리 특성으로서 분류하는 X 표에 종속한다. SDB 병합 툴은 타겟 데이터베이스가 UNIT_CODE=kg를 갖는 단위를 갖지 않음을 인식하고, 타겟 데이터베이스가 또한 UG_CODE=WEIGHT를 갖는 연관된 단위 그룹을 갖지 않음을 인식하고, 타겟 데이터베이스가 또한 X_CODE=PHYSICAL을 갖는 연관된 카테고리를 갖지 않음을 인식한다. 따라서, SDB 병합 툴은 먼저 타겟 데이터베이스에 X_CODE=PHYSICAL 및 X_ID=67을 갖는 카테고리를 추가하고, 또한 타겟 데이터베이스에 UG_CODE=WEIGHT 및 UG_ID=69를 갖는 단위 그룹을 추가하여, 도 27에 도시된 데이터베이스 상태들을 유발한다. 이어서, 도 28에 도시된 바와 같이, SDB 병합 툴은 타겟 데이터베이스에 UNIT_CODE=kg 및 UNIT_ID=1007을 갖는 단위를 추가한다. 이러한 방식으로, 단위에는 그의 종속성들 모두가 추가되었다.
이 예에서, Merge 함수는 초기에 UNIT_CODE=kg에 대한 키로 호출될 것이다. Merge 함수의 이러한 제1 반복은 키가 2개의 부모(즉, UG_CODE=WEIGHT 및 X_CODE=PHYSICAL)를 갖는다고 결정할 것이고, 따라서 UG_CODE=WEIGHT에 대한 키로 Merge 함수를 호출할 것이고, X_CODE=PHYSICAL에 대한 키로 Merge 함수를 호출할 것이다. Merge 함수의 이러한 반복들은 X_CODE=PHYSICAL 및 UG_CODE=WEIGHT에 대한 레코드들을 타겟 데이터베이스에 추가할 것이고, 제1 반복으로 복귀할 것이며, 제1 반복은 UNIT_CODE=kg가 타겟 데이터베이스에 존재하는지를 알아보기 위해 체크할 것이고, 그렇지 않다면 UNIT_CODE=kg에 대한 레코드를 타겟 데이터베이스에 추가할 것이다. 제1 반복의 종료 시에, 객체는 소스 데이터베이스로부터 타겟 데이터베이스에 병합되었다.
예시적인 SDB 병합 툴 사용자 인터페이스
예시적인 실시예에서, SDB 병합 툴은 2개의 인터그래프 스마트 참조 데이터(SDB) 데이터베이스들을 관찰/비교하고 사용자 직관적 데이터 그리드 인터페이스에서 차이들을 제공하는 기능을 제공하는 웹 기반 툴이다. 사용자는 차이들을 살펴보고, 병합될 필요가 있는 데이터를 선택하며, 데이터를 타겟 데이터베이스에 저장할 수 있다. 툴은 요구된 콘텐츠를 하나의 데이터베이스로부터 다른 데이터베이스에 선택적으로 병합하고 저장하는 유연성을 제공한다.
통상적으로, SDB 사용자들은 SDB의 릴리스된 버전에서 이용가능한 갱신들의 세트를 필요로 한다. SDB 병합 툴은 SDB 릴리스된 버전과 고객의 데이터베이스 사이의 차이들을 비교 및 관찰하는 기능을 제공하고, 또한 고객 데이터베이스 내의 어떠한 다른 콘텐츠도 방해하지 않고 SDB 릴리스된 버전으로부터 고객 데이터베이스에 선택적인 콘텐츠 세트를 병합 및 저장하는 유연성을 제공한다.
SDB 병합 툴의 능력들의 일부는 다음을 포함한다:
Figure pct00045
하나의 SDB 데이터베이스로부터 필요한 데이터를 선택하고, 보고, 다른 SDB 데이터베이스에 병합하기 위한 직관적 웹 기반 사용자 인터페이스.
Figure pct00046
SDB 병합 툴은 선택된 데이터를 병합하는 데 필요한 필수적인 부모(업스트림) 종속성들을 자동으로 식별한다.
Figure pct00047
사용자는 하나의 단계에서 레코드들의 세트를 선택하고, 모든 필요한 종속 데이터를 갖는 모든 선택된 레코드들을 타겟 데이터베이스에 병합할 수 있다.
Figure pct00048
툴은 양 데이터베이스들로부터의 데이터를 스프레드시트 파일(예를 들어, 이하에서 간단히 "액셀"로 지칭되는 Microsoft EXCEL™ 스프레드시트)로 보고하는 능력을 제공한다. 사용자는 노드를 클릭하고 해당 객체에 관련된 데이터를 보고할 수 있다. 데이터는 각각의 속성 값에 대해 나란히 보고된다. 이는 사용자가 데이터 차이들을 쉽게 비교할 수 있게 한다. 이 기능은 사용자가 필요한 변경들을 선택하여 타겟에 병합할 수 있도록 마이그레이션 프로세스 동안 정확한 SDB 업그레이드 변경들을 식별하는 데 도움이 된다.
따라서, 웹 기반 툴인 SDB 병합 툴을 사용함으로써, 사용자는 직관적인 방식으로 소스(예를 들어, SDB(2018)) 및 타겟(예를 들어, 고객) 데이터베이스들 사이의 모든 데이터 차이를 볼 수 있다. 이것은 사용자가 타겟 데이터베이스에 병합하기 위해 필요한 데이터만을 선택할 수 있게 한다. 이것은 웹 기반 툴이므로, 사용자는 호환가능한 브라우저를 갖는 동일한 네트워크 내의 임의의 기계로부터의 데이터의 병합을 행할 수 있다.
예시적인 실시예에서, SDB 병합 툴은 주로 헤더 및 푸터 뷰들에 대한 주요 기능들과 함께 3개의 뷰로 분리된다:
Figure pct00049
객체 계층구조 뷰
Figure pct00050
데이터 비교 뷰
Figure pct00051
상세 뷰
예시적인 실시예에서, SDB 병합 툴을 사용한 데이터의 병합은 소스 데이터베이스로부터 타겟 데이터베이스로만 가능하다. 모든 타겟 전용 레코드는 변경되지 않은 채로 남겨지며, 병합 프로세스에 영향을 받지 않을 것이다.
객체 계층구조 뷰는 사용자가 트리 노드들로 네비게이션하여 필요한 데이터를 선택하여 타겟 데이터베이스에 병합할 수 있는 모듈들의 계층구조로 구성된다. 객체 계층구조 뷰에서 제공되는 기능 중 일부는 다음을 포함한다:
Figure pct00052
객체 계층구조 상에서 확장/축소 버튼들(Expand/Collapse buttons)이 이용가능하다. 사용자는 키보드 화살표들 키들 (또는) 마우스 클릭들을 사용하여 상이한 노드들로 네비게이션할 수 있다.
Figure pct00053
한 번에 하나의 노드만이 선택될 수 있고, 선택된 노드는 청색으로 강조될 것이다.
Figure pct00054
모든 이름은 굵은 글꼴로 디스플레이되며, 이는 부모/계층구조 노드를 나타낸다.
Figure pct00055
모든 자식/리프(leaf) 노드는 정상 글꼴로 디스플레이될 것이다.
Figure pct00056
마우스가 트리 계층구조 위로 호버링될 때, 노드들은 밝은 청색으로 강조될 것이다.
Figure pct00057
사용자가 추가적인 자식 노드를 갖고 관련 데이터를 갖지 않는 계층구조 노드를 클릭할 때, "데이터를 보기 위해 자식 노드를 열라"라는 메시지가 사용자에게 디스플레이될 것이다.
Figure pct00058
사용자는 툴에서 "자동 숨기기" 핀 버튼을 클릭함으로써 객체 계층구조 뷰를 숨기고/숨김 해제할 수 있다. 계층구조가 숨겨지면, 툴은 좌측 상부 코너에 자동 숨기기 버튼을 갖는 "HIERARCHY"로서 디스플레이할 것이다.
Figure pct00059
소스 및 타겟 데이터베이스들 둘 다에서의 모든 동일 레코드는 어떤 배경 색도 없이 계층구조로 디스플레이된다.
Figure pct00060
객체 계층구조 뷰에 디스플레이된 모든 소스 전용 및 타겟 전용 레코드는 녹색 텍스트로 강조될 것이다.
Figure pct00061
소스 데이터베이스에만 레코드가 존재하는 경우, 그 레코드의 끝에는 (S) 태그가 첨부될 것이다.
Figure pct00062
타겟 데이터베이스에만 레코드가 존재하는 경우, 그 레코드의 끝에는 (T) 태그가 첨부될 것이다.
Figure pct00063
객체 계층구조 뷰에 디스플레이된 모든 차이 레코드는 오렌지색 텍스트로 디스플레이될 것이다.
데이터 비교 뷰는 소스 데이터베이스와 타겟 데이터베이스 사이에 데이터를 나란히 표시한다. 데이터 비교 뷰에서 제공되는 기능 중 일부는 소스 및 타겟 데이터 그리드들, 데이터 필터 제어들 및 병합 제어들을 포함한다.
다음은 소스 및 타겟 데이터 그리드들의 요약이다:
Figure pct00064
접속된 데이터베이스 상세들은 계층 구조 뷰 내의 선택된 부모 및 데이터 노드 상세들과 함께 중간 뷰 내의 소스 및 타겟 그리드들 위에 표시될 것이다.
Figure pct00065
사용자가 객체 계층 구조 뷰 내의 데이터 노드를 선택할 때, 소스 및 타겟 둘 다에서 그 노드에 대해 이용 가능한 데이터는 아래의 색 포맷을 갖는 데이터 비교 뷰에 디스플레이될 것이다.
Figure pct00066
강조된 모든 동일 레코드 행들은 어떠한 색도 갖지 않을 것이다.
Figure pct00067
모든 소스 전용 또는 타겟 전용 레코드 행들은 녹색 배경 색으로 강조될 것이다.
Figure pct00068
모든 차이 레코드 행들은 오렌지색 배경 색으로 디스플레이될 것이다.
Figure pct00069
양 데이터베이스 내의 동일한 데이터 레코드들은 데이터 그리드의 동일한 행에 표시된다.
Figure pct00070
사용자가 수평으로 또는 수직으로 스크롤할 때, 열 내의 비슷한 데이터가 양 그리드에서 나란히 보이도록 변화들이 양 그리드에서 동기적으로 반영될 것이다.
Figure pct00071
마우스 클릭 또는 키보드 업/다운 화살표를 사용하여 소스/타겟 그리드 행들 내의 행을 선택하는 것은 청색으로 강조된다.
Figure pct00072
마우스가 소스/타겟 그리드 위로 호버링(hover)될 때, 행들은 밝은 청색으로 강조될 것이다.
다음은 데이터 필터 제어들의 요약이다:
Figure pct00073
사용자는 디스플레이되고 있는 데이터를 필터링하기 위해 소스 및 타겟 데이터 그리드들의 상부에 표시될 수 있는 데이터 필터들(이하에서 논의됨)을 선택/선택 해제할 수 있다.
Figure pct00074
동일 체크 박스가 선택될 때, 소스 및 타겟 데이터베이스들 모두에 존재하고 값들에 차이가 없는 레코드들이 그리드에 디스플레이될 것이다.
Figure pct00075
상이 체크 박스가 선택될 때, 소스 및 타겟 데이터베이스 모두에 존재하고 값들의 차이들을 갖는 레코드들이 그리드에 디스플레이될 것이다.
Figure pct00076
소스 전용 체크 박스가 선택될 때, 소스 데이터베이스에 존재하지만 타겟 데이터베이스에는 존재하지 않는 레코드들이 그리드에 디스플레이될 것이다.
Figure pct00077
타겟 전용 체크 박스가 선택될 때, 타겟 데이터베이스에 존재하지만 소스 데이터베이스에는 존재하지 않는 레코드들이 그리드에 디스플레이될 것이다.
Figure pct00078
이들 데이터 필터의 조합을 선택/선택 해제하는 것은 선택된 데이터 필터에 따라 적절한 데이터를 디스플레이할 것이다.
다음은 병합 제어들의 요약이다:
Figure pct00079
MERGE - 사용자는 하나 이상의 레코드를 소스 그리드로부터 선택하여 타겟 그리드에 병합할 수 있다. 이 버튼은 적용 가능한 경우(적어도 하나의 소스 전용 또는 상이 레코드가 선택됨)에만 인에이블될 것이다. 병합 버튼을 사용하는 것은 데이터 그리드에 의도된 병합 동작만을 표시할 것이다. 그것은 변경들을 타겟 데이터베이스에 저장하지 않을 것이다.
Figure pct00080
UNMERGE - 사용자가 소스 데이터베이스로부터 타겟 데이터베이스에 데이터를 병합하고 병합해제를 클릭하면, 병합된 데이터는 병합 해제(한 단계 역방향(backward)으로 감)될 것이다. 병합 해제 버튼을 사용하는 것은 데이터 그리드에 의도된 병합 해제 동작만을 표시할 것이다. 그것은 변경들을 타겟 데이터베이스에 저장하지 않을 것이다.
Figure pct00081
UNDO - 임의의 수의 역방향 액션들에 적용 가능하다. 소스 대 타겟 병합 활동을 위한 "CTRL+Z" 기능과 유사하다. 실행 취소(Undo) 버튼을 사용하는 것은 데이터 그리드에 의도된 실행 취소 동작만을 표시할 것이다. 그것은 변경들을 타겟 데이터베이스에 저장하지 않을 것이다.
Figure pct00082
모든 동일 및 타겟 전용 레코드들에 대해, MERGE/UNMERGE/UNDO는 인에이블되지 않을 것이다. 그것은 소스 전용 레코드 및 차이 레코드에 대해서만 인에이블될 것이다.
Figure pct00083
REFRESH - 소스 및 타겟 데이터베이스들 모두에 대해 이용가능한 시점에 최신 데이터를 얻고, 각각의 데이터 그리드를 다시 로딩한다.
Figure pct00084
EXCEL REPORT - 데이터 그리드에 표시된 데이터 객체의 액셀 보고서를 생성한다.
Figure pct00085
DELETE AND REPLACE - 이것은 데이터의 선택적 병합이 지원되지 않는 소수의 데이터 객체에 대해서만 이용가능하다. 이것은 타겟 데이터베이스 내의 모든 데이터를 그 객체에 대한 소스 데이터베이스 데이터로 대체할 것이다.
상세 뷰는 선택된 행에 대한 소스 데이터베이스와 타겟 데이터베이스 사이의 속성들에 대한 값들의 차이들을 나란히 표시한다. 상세 뷰에서 제공되는 일부 기능은 다음을 포함한다:
Figure pct00086
모든 동일 레코드는 어떠한 색의 배경도 없이 표시될 것이다.
Figure pct00087
모든 상이 레코드는 오렌지색 배경으로 표시될 것이다.
Figure pct00088
모든 소스 및 타겟 전용 레코드는 녹색 배경으로 표시될 것이다.
Figure pct00089
LMOD(최종 수정된 날짜), User(수정된 사용자) 및 Int_Rev(개정 번호) 속성들은 비교를 위해 사용되지 않지만, 이 값들 간의 차이들은 오렌지색 배경으로 표시될 것이다.
Figure pct00090
사용자는 툴에서 "자동 숨기기" 핀 버튼을 클릭함으로써 이 상세 뷰를 숨기고/숨김 해제할 수 있다. 상세 뷰가 숨겨지면, 툴은 우측 상부 코너에 자동 숨기기 버튼을 갖는 "DETAILS"로서 디스플레이할 것이다.
푸터(Footer)는 객체 계층구조 뷰에서 선택된 객체에 대해 다음을 디스플레이한다:
Figure pct00091
소스 및 타겟 데이터베이스들 모두 내의 전체 레코드들의 카운트.
Figure pct00092
임의의 데이터 필터들이 적용되는 경우에 레코드들을 표시하고/디스플레이하는 카운트.
Figure pct00093
선택되고 병합된 레코드들의 카운트.
푸터는 또한 다음과 같은 제어들을 포함한다.
Figure pct00094
SHOW DEPENDENCIES
Figure pct00095
SAVE TO DATABASE
SHOW DEPENDENCIES 제어는 사용자가 선택된 데이터 노드에 대해 소스 데이터베이스로부터 타겟 데이터베이스에 데이터를 병합하기 위해 종속성들의 리스트를 보는 것을 허용한다. 선택된 데이터가 타겟 데이터베이스에 저장되기 위한 임의의 종속성이 존재하는 경우, 모든 이러한 종속성은 이 버튼을 누름으로써 열거될 것인데, 예를 들어 상품 코드(Comodity Code)는 표 상세, 그룹 및 부분에 대한 종속성을 가질 것이다. 리프 노드들에 대한 종속성들은 없을 것이며, 그러한 경우에, 선택된 레코드만이 어떠한 종속성도 없이 표시될 것이다. 사용자가 SHOW DEPENDENCIES 버튼을 클릭할 때, 선택된 데이터에 대해 적용가능한 종속 객체들의 트리 구조 계층구조를 갖는 팝업이 디스플레이될 것이다. 푸터는 종속성들을 표시하기 위해 병합되고 선택될 레코드들의 수의 카운트를 표시한다. 닫기 버튼이 종속성 윈도우를 닫고 병합을 진행하는 데 사용된다.
SAVE TO DATABASE 제어는 병합된 데이터를 타겟 데이터베이스에 저장한다.
헤더는 다음과 같은 옵션들을 포함한다:
Figure pct00096
Help: 이 옵션은 사용자가 SDB 병합 툴을 사용하는 방법에 대한 "상세한 사용자 가이드"에 액세스할 수 있게 한다:
Figure pct00097
About: "SDB 병합 툴"의 버전 상세.
Figure pct00098
Logout: 사용자가 소스로부터 타겟 데이터베이스로의 데이터의 병합을 완료하면 SDB 병합 툴로부터 로그아웃하기 위한 옵션.
사용자가 액셀 보고서 버튼을 클릭할 때, 그리드들 둘 다 내의 현재 디스플레이된 데이터 노드에 대한 데이터는 액셀 파일로 내보내지고 내보내기 폴더에 저장될 것이다. 액셀 내의 데이터는 소스 데이터 및 타겟 데이터 둘 다가 속성 이름과 함께 더 나은 이해를 위해 나란히 배치되는 방식으로 배열된다. 사용자는 병합할 정확한 것들을 보기 위해 액셀에서 임의의 시점에 특정 레코드 세트를 필터링할 수 있다. 다음은 액셀 보고서 기능의 기능성(functionality)의 요약이다.
Figure pct00099
사용자가 EXCEL REPORT를 클릭할 때, 내보내기를 진행하기 위한 확인을 요청하는 메시지가 디스플레이될 것이다. 사용자가 "예"를 클릭하면, 진행 바가 디스플레이될 것이다.
Figure pct00100
내보내기의 완료 시에, 파일을 다운로드하기 위한 버튼과 함께 완료 다이얼로그가 디스플레이될 것이다. 사용자가 "다운로드"를 클릭하면, 생성된 액셀 파일은 브라우저 특정 다운로드 폴더 경로에 다운로드될 것이다.
Figure pct00101
사용자가 액셀 파일을 다운로드하지 않더라도, 생성된 액셀 파일은 호스팅된 병합 툴 물리 경로 내에서 이용가능한 "내보내기(Exports)" 폴더에 존재할 것이다.
Figure pct00102
선택된 데이터 필터들과 무관하게, 소스 및 타겟 데이터베이스들 모두 내의 모든 데이터가 액셀 파일에 기록될 것이다.
Figure pct00103
컴포넌트 관리를 위한 CMS 모듈에서, 클래스 계층구조를 선택하기 위해 새로운 팝업이 디스플레이될 것이다. 선택된 클래스 계층구조와 관련된 데이터만이 액셀 워크북으로 내보내질 것이다.
Figure pct00104
데이터를 타겟 데이터베이스에 저장하는 동안 직접 자식 저장(Save Direct Children) 체크박스를 체크한 모든 데이터 노드들에 대해, 액셀 보고서는, 예를 들어, 상품 규칙들이 내보내질 때: 상품 규칙 상세들, 키들 및 레이아웃들과 함께 상품 규칙이 또한 한꺼번에 내보내질 때, 액셀 보고서 워크북에서 그들의 자식 노드 데이터를 부모 데이터와 함께 내보낼 것이다.
병합 툴 내보내기 프로세스는 매우 자원 집약적인 작업이며; 선택된 데이터베이스 내의 레코드 수 및 이용가능한 시스템 자원들에 기초하여, 다수의 액셀 내보내기 작업을 동시에 실행하는 것이 추천되지 않는다.
다음은 병합 작업흐름에서 액셀 보고서가 사용될 수 있는 방법의 예시적인 절차이다:
1. 사용자가 거대한 양의 데이터를 포함하는 데이터 노드에 대해 병합 동작을 수행하기를 원할 때, 사용자는 먼저 "액셀 보고서" 옵션을 사용하여 그 데이터 노드의 액셀 보고서를 생성할 필요가 있다.
2. 생성된 액셀 보고서에서, 소스 전용 및 상이 전용 레코드들에 대해 필터를 적용한다.
3. 사용자가 그들의 (고객) 데이터베이스에 병합하기를 원하는 데이터를 검토한다.
4. 이 레코드들에 대한 병합을 선택하고 수행한다.
5. "데이터베이스에 저장(SAVE TO DATABASE)" 버튼을 클릭함으로써 선택된 레코드들을 타겟 데이터베이스에 저장한다.
6. 식별된 데이터를 병합한 후, 액셀 보고서를 다시 재생성하고, 필요한 변경들이 타겟 데이터베이스에 저장된 것을 검증한다.
SDB 병합 툴 내의 몇 개의 스크린에 대해 삭제 및 대체(Delete and Replace) 기능이 인에이블될 것이고, 예를 들어, 사용자가 소스 데이터베이스로부터 타겟 데이터베이스에 데이터를 병합하기 위해 사양(spec) 아이템/상품 코드 상세들을 병합하기를 원하는 경우, 데이터의 중복들 및 모순들을 피하기 위해 타겟 데이터베이스 내의 데이터가 먼저 삭제된 다음에 전체 소스 데이터로 대체될 필요가 있다. 모든 이러한 시나리오들에 대해, 이 옵션이 인에이블될 것이다. 다음의 데이터 노드들에 대해 삭제 및 대체가 적용 가능하다:
a. 상품 코드 상세들
b. 사양 아이템들(Specification Items)
c. 사양 헤더 기하구조들(Specification Header Geometrics)
d. 사양 헤더 상세들
데이터베이스에 저장(Save to Database) 버튼을 클릭하는 것은 종속 부모 계층구조를 표시할 것이고, 선택된 레코드들을 타겟 데이터베이스에 저장한다. 이 버튼은 사용자가 소스로부터 타겟에 데이터 그리드 내의 데이터를 병합하면 인에이블될 것이다. 기능은 다음을 포함한다:
Figure pct00105
사용자가 데이터베이스에 저장 버튼을 클릭할 때, 병합을 위한 종속 객체들의 트리 구조 계층 구조를 갖는 팝업이 디스플레이될 것이고, 각각의 행의 좌측 코너에서 선택할 체크 박스와 함께 각각의 객체 특정 고유 값들이 디스플레이될 것이다.
Figure pct00106
푸터 상의 카운트는 병합되어 저장을 위해 선택되는 레코드들의 수가 선택된 것으로 표시되는 것을 지정한다.
Figure pct00107
아래에 디스플레이된 노트는 병합이 수행된 후에 체크할 모든 필수적인 종속성들을 지정하고, 어떤 다른 것들이 병합될 필요가 있는지에 대한 완전한 데이터 뷰에 대한 추천이 적용 가능한 어디에나 디스플레이된다.
Figure pct00108
우하의 취소 버튼은 저장 윈도우를 닫기 위해 사용된다.
Figure pct00109
우하 코너의 저장 버튼은 선택된 병합 레코드들을 타겟 데이터베이스에 저장하는 것을 돕는다.
Figure pct00110
병합 툴은 타겟 데이터베이스 상에 정의된 제어 상태 값들을 존중한다. 이것은 제어 상태가 1이 아닌 경우에 타겟 데이터베이스 내의 레코드들을 편집/수정하지 않을 것이다.
Figure pct00111
사용자가 데이터 그리드 내의 데이터를 병합할 때 종속성 표시(Show Dependency) 및 데이터베이스에 저장 버튼들이 인에이블될 것이다.
사용자가 체크 박스 선택(소스 전용 데이터에 대한 직접 자식 저장)을 이용하여 타겟 데이터베이스에 레코드들을 저장하기 위해 클릭할 때, 병합 툴은 각각의 상품 코드들의 모든 자식 레코드들, 즉 상품 코드 상세들, 식별자들, 태그 번호들, 상품 레이아웃들, 상품 기하구조들과 함께 상품 코드를 한꺼번에 자동으로 저장할 것이다. 이 기능은 소스 전용 레코드에 대해서만 적용 가능할 것이다. 다른 경우들에서, 사용자는 각각의 스크린들로 내비게이션함으로써 요구되는 데이터를 체크하고 병합할 필요가 있다.
데이터 비교 뷰의 소스 및 타겟 그리드에서 이용가능한 모든 열들에 대해 정렬(sort) 기능이 제공된다. 사용자가 소스 또는 타겟 그리드 내의 임의의 열에 정렬 기능을 적용하면, 정렬 기능은 양 그리드에 적용되어 그리드 행들이 동기화되고 서로 동등한 것을 보장할 것이다. 디폴트 정렬 순서는 동일, 소스 전용, 상이, 타겟 전용 순서에 기초한다. 사용자가 열 헤더를 클릭할 때, 데이터는 오름차순으로 정렬될 것이다(정렬된 열은 헤더 열 이름에 인접한 상향 화살표로 디스플레이될 것이다). 사용자가 동일한 열 헤더를 다시 클릭할 때, 데이터는 내림차순으로 정렬될 것이다(정렬된 열은 헤더 열 이름에 인접한 하향 화살표로 디스플레이될 것이다). 사용자는 데이터를 열들의 선택 순서로 정렬하기 위해 다수의 열들을 CTRL+ 클릭할 수 있다. (정렬 순서는 열 헤더 이름에 인접한 번호로 디스플레이될 것이다). 사용자는 또한 하나의 열을 오름차순으로 그리고 다수의 열을 내림차순으로 정렬할 수 있다. 숫자 열들은 숫자 오름차순 또는 내림차순으로 정렬될 것이다. 나머지 모든 스트링 열들은 알파벳 오름차순 또는 내림차순에 기초하여 정렬될 것이다. 사용자가 소스 그리드로부터 타겟 그리드로 전환하여 열들을 정렬할 때, 양 그리드에 적용된 모든 이전 정렬들이 디스에이블될 것인데, 그 이유는 이 기능이 양 그리드에 적용가능하기 때문이다.
사용자가 주어진 필터 조건에 기초하여 필요한 열 값들을 필터링할 수 있게 하기 위해 필터 기능이 제공된다. 사용자가 열 헤더 이름에 인접한 필터 버튼을 클릭할 때, 열 이름 헤딩을 갖는 팝업이 디스플레이될 것이다. 검색될 값들은 텍스트 필드에 입력될 필요가 있고, 필터는 "FILTER" 버튼을 클릭함으로써 적용될 것이다. 적용되는 필터는 소스 그리드 및 타겟 그리드 모두에 적용될 것이고, 데이터는 적용된 필터에 따라 디스플레이된다. "AND" 조건을 사용하여, 예를 들어 고려될 필요가 있는 양 조건을 지정한 다음 필터를 적용함으로써 2개의 열에 필터들이 적용될 수 있다. 다수의 정의된 필터 조건 중 임의의 것을 고려하기 위해, "OR" 조건이 사용될 수 있다.
검색 조건들은 사용자 요구들에 기초하여 선택될 필요가 있다. 예를 들어, 다음은 스트링 열 필터들을 사용하는 필터링의 요약이다:
Figure pct00112
사용자가 필터링될 데이터의 서브스트링을 아는 경우, "포함함(Contains)" 검색 조건이 사용될 수 있다.
Figure pct00113
사용자가 열 값 내에 특정 서브스트링이 없는 열 값들을 필터링하기를 원할 때, "포함하지 않음(Does not Contain)"이 선택될 필요가 있다.
Figure pct00114
사용자가 지정된 열 값을 정확히 필터링하기를 원할 때, "동일함(Is equal to)"이 선택될 필요가 있다.
Figure pct00115
사용자가 지정된 열 값을 정확히 필터링하기를 원하지 않을 때, "동일하지 않음(Is not equal to)"이 선택될 필요가 있다.
Figure pct00116
필터가 특정 입력으로 시작하는 열 값들에 적용될 때, "~로 시작함(Starts with)"이 선택될 필요가 있다.
Figure pct00117
필터가 특정 입력으로 시작하지 않는 열 값들에 적용될 때, "~로 시작하지 않음(Does not start with)"이 선택될 필요가 있다.
Figure pct00118
필터가 특정 입력으로 끝나는 열 값들에 적용될 때, "~로 끝남(Ends with)"이 선택될 필요가 있다.
Figure pct00119
필터가 특정 입력으로 끝나지 않는 열 값들에 적용될 때, "~로 끝나지 않음(Does not end with)"이 선택될 필요가 있다.
Figure pct00120
필터가 빈 값들을 갖는 열 값들에 적용될 때, "비어 있음(Is empty)"이 선택될 필요가 있다.
Figure pct00121
필터가 비어 있지 않은 값들을 갖는 열 값들에 적용될 때, "비어 있지 않음(Is not empty)"이 선택될 필요가 있다.
다음은 숫자 열 필터들을 사용하는 필터링의 요약이다:
Figure pct00122
필터가 공백 값들을 갖는 열 값들에 적용될 때, "공백임(Is blank)"이 선택될 필요가 있다.
Figure pct00123
필터가 공백이 아닌 값들을 갖는 열 값들에 적용될 때, "공백이 아님(Is not blank)"이 선택될 필요가 있다.
Figure pct00124
사용자가 지정된 숫자 열 값을 정확히 필터링하기를 원할 때, "동일함"이 선택될 필요가 있다.
Figure pct00125
사용자가 지정된 숫자 열 값을 정확히 원하지 않을 때, "동일하지 않음"이 선택될 필요가 있다.
Figure pct00126
필터가 더 큰 값들을 갖는 열 값들에 적용될 때, "~보다 큼(Is greater than)"이 선택될 필요가 있다.
Figure pct00127
필터가 같거나 더 큰 값들을 갖는 열 값들에 적용될 때, "~ 이상임(Is greater than or equal)"이 선택될 필요가 있다.
Figure pct00128
필터가 더 작은 값들을 갖는 열 값들에 적용될 때, "~보다 작음(Is less than)"이 선택될 필요가 있다.
Figure pct00129
필터가 같거나 더 작은 값들을 갖는 열 값들에 적용될 때, "~ 이하임(Is less than or equal)"이 선택될 필요가 있다.
병합 작업 흐름들
이 모듈은 다음의 병합 단계들을 구현한다:
1) 사용자는 필요에 따라 소스 전용 및/또는 상이 레코드들을 선택한다.
2) 툴은 선택된 레코드들을 병합 UI의 타겟 그리드에 병합한다.
3) 툴은 선택된 병합 레코드들에 대한 종속성을 표시한다.
4) 툴은 선택된 병합 레코드들을 타겟 데이터베이스에 저장한다.
관리
이 모듈은 아래의 관리 관련 객체들 및 각자의 자식 노드들의 병합을 커버한다:
Figure pct00130
언어들
Figure pct00131
표준들
Figure pct00132
규율들(Disciplines)
Figure pct00133
단위 관련 객체들(단위 시스템들, 단위 세트들, 단위 그룹들, 단위 유형들 및 단위 대 단위)
Figure pct00134
인터페이스들
Figure pct00135
인터페이스 종속 단위들
Figure pct00136
파라미터들
Figure pct00137
인터페이스 설정들
Figure pct00138
프로젝트/프로젝트 규율 디폴트들
사용자는 각각의 객체 아래의 모든 데이터 노드들을 탐색하여 필요한 행들을 선택하고 이들을 타겟에 병합해야 한다. 사용자는 병합 프로세스를 위해서만 필요한 데이터를 확인하고 선택할 필요가 있다.
문서 관리 모듈은 다음의 문서 관리 관련 객체들 및 각자의 자식 노드들의 병합을 커버한다:
Figure pct00139
문서들
Figure pct00140
툴 버전 관리(Tool version Management)
Figure pct00141
심볼 라이브러리 관리
사용자가 소스 전용인 문서들을 병합할 때, 문서 파일들(심볼 DLL)은 추가적인 종속성으로서 자동으로 병합될 것이다. 소스 전용 레코드들에 대한 자식 데이터를 병합하기 위해서는, 저장 윈도우에서, "소스 전용에 대한 자식 종속성 저장"을 위한 체크박스가 체크되어 있는지 확실히 한다. 사용자가 먼저 적용가능한 문서들을 병합하지 않고 상품 코드 레벨에서 데이터를 병합할 때, 문서들, 및 단지 종속 부모 데이터, 예를 들어 PDB 문서들, 심볼 라이브러리 및 심볼들이 병합되지만, 문서 파일들, PDB 문서 뷰들과 같은 다른 추가적인 종속성들은 자동으로 병합되지 않을 것이다. 사용자는 SRD 전송 작업 스크린을 사용하여 상품 코드들을 내보내기할 때 심볼 DLL들 및 gif 파일들을 얻기 위해 이들 객체를 수동으로 병합할 필요가 있다.
속성 관리 모듈은 사용자가 이 객체의 일부로서 속성 그룹과 각자의 자식 노드를 병합할 수 있게 해준다. 사용자는 필요한 속성 그룹, 속성 및 속성 값을 여전히 적용가능한 경우 각각의 레벨에서 개별적으로 검증하고 병합해야 한다. 추가적인 자식 종속성들의 병합은 이러한 데이터 노드들에 대해 적용가능하지 않다.
표 관리 모듈은 다음의 표 관리 관련 객체들 및 각자의 자식 노드들의 병합을 커버한다:
Figure pct00142
(상세들에 대한) 표 유형들. 이 노드는 표들과 각자의 표 상세들을 병합하는 데 사용된다. 이 모듈 아래에는 3가지 유형의 표 유형(상품 코드 표, 인터페이스 표 및 사양 표)이 있다.
Figure pct00143
표 유형들(전부) - 표 속성들. 이 노드는 기하구조들을 생성하는 데 사용되는 표들과 각자의 표 속성들을 병합하는 데 사용된다. 표 관리 모듈 아래에 거대한 데이터가 존재하므로, 병합될 필요가 있는 필요한 데이터를 식별하기 위해 액셀 보고서 기능을 사용하는 것이 권장된다.
기하학적 관리(Geometric Management) 모듈은 다음의 기하학적 관리 관련 객체들 및 각자의 자식 노드들의 병합을 커버한다:
Figure pct00144
모든 유형의 기하학적 표들. 이 노드는 모든 기하학적 관련 데이터(상품 기하구조, 필터 기하구조, 다른 기하구조, 다른 특수 기하구조, 등급(Rating) 기하구조, 표준 기하구조 및 벽 두께 기하구조)를 병합하는 데 사용된다.
Figure pct00145
공칭 크기들. 이 노드는 사양들에서 사용되는 공칭 크기 표들을 병합하는 데 사용된다.
Figure pct00146
외경들. 이 노드는 외경 표들을 병합하는 데 사용된다.
Figure pct00147
분기들(Branches). 이 노드는 사양들에서 사용되는 분기 표들을 병합하는 데 사용된다.
Figure pct00148
스케줄들. 이 노드는 외경 표들을 병합하는 데 사용된다.
Figure pct00149
공칭 축소기들(Nominal Reducers). 이 노드는 공칭 축소기 표들을 병합하는 데 사용된다.
Figure pct00150
메트릭/영어 등가. 이 노드는 영어를 메트릭 등가 표들에 병합하는 데 사용된다.
"소스 전용" 기하학적 표들의 병합은 "소스 전용 데이터에 대한 직접 자식 저장" 체크박스가 선택되는 경우에 각자의 표 상세들/속성들을 자동으로 병합할 것이다. 타겟 전용 레코드들의 경우, 사용자는 이 데이터가 타겟 데이터베이스 내에 임의의 중복들을 생성하는지를 검증하고 적절한 액션을 취할 필요가 있다.
상품/식별자 관리(Commodity/Ident Management) 모듈은 다음의 상품/식별자 관리 관련 객체들 및 각자의 자식 노드들의 병합을 커버한다:
Figure pct00151
상품 규칙들. 이 노드는 상품 규칙들 및 그들의 자식 상세들을 병합하는 데 사용된다.
Figure pct00152
상품 그룹/부분/상품 코드들. 이 노드는 상품 그룹, 부분, 상품 코드 및 각자의 자식 상세를 순차적으로 병합하는 데 사용된다. 상품 코드 상세에 대해, 상품 코드가 상품 코드 상세에 완전히 종속하기 때문에, 삭제 및 대체 기능이 구현된다. 그리고 상품 코드 상세들의 부분적인 병합은 고객 데이터베이스에서 부정확한 데이터를 유발할 것이다. 삭제 및 대체 기능은 사용자가 병합을 위해 단일 레코드를 선택하더라도 그 노드 아래의 모든 데이터가 고객 데이터베이스에 자동으로 병합되도록 구현된다.
Figure pct00153
객체 파라미터들. 이 노드는 객체 파라미터들 및 그들의 자식 상세들을 병합하는 데 사용된다.
Figure pct00154
부분(Part) 객체 파라미터들. 이 노드는 부분들과 링크된 객체 파라미터들을 병합하는 데 사용된다.
Figure pct00155
표 그룹들을 갖는 부분들 및 표 상세들을 갖는 부분들. 이들 노드는 부분들과 링크된 표 그룹들 및 표 상세들을 병합하는 데 사용된다.
Figure pct00156
SP3D 짧은 코드들을 갖는 부분들. 이 노드는 부분 레벨에서 할당된 S3D 짧은 코드들을 병합하는 데 사용된다.
기하학적 규칙 모듈은 기하학적 규칙들 및 각자의 자식 상세들을 병합하는 데 사용된다. "소스 전용" 기하학적 규칙들의 병합은 "소스 전용 데이터에 대한 직접 자식 저장" 체크박스가 선택되는 경우에 각자의 규칙 정의들을 자동으로 병합할 것이다. 타겟 전용/상이 레코드들의 경우, 사용자는 데이터를 확인하고 적절한 액션을 취할 필요가 있다.
사양 모듈은 다음의 사양 관련 객체들 및 각자의 자식 노드들의 병합을 커버한다:
Figure pct00157
짧은 코드 관리. 이 노드는 SRD 짧은 코드들 및 각자의 자식 상세들을 병합하는 데 사용된다.
Figure pct00158
노트들. 이 노드는 사양 노트들을 병합하는 데 사용된다.
Figure pct00159
사양 규칙들. 이 노드는 사양 규칙들 및 각자의 자식 상세들을 병합하는 데 사용된다.
Figure pct00160
사양 유형들. 이 노드는 사양 유형들 및 각자의 자식 상세들을 병합하는 데 사용된다.
Figure pct00161
기능 사양 셋업. 이 노드는 기능 사양 셋업 및 각자의 자식 상세들을 병합하는 데 사용된다.
Figure pct00162
사양들. 이 노드는 모든 사양 관련 데이터 및 각자의 자식 상세들을 병합하는 데 사용된다. 사양 헤더 기하구조들, 사양 상세들, 및 사양 아이템들에 대해, 이 노드들에 관련된 데이터의 부분적 병합이 고객 데이터베이스에서 부정확한 데이터를 유발할 것이기 때문에 삭제 및 대체 기능이 구현된다. 삭제 및 대체 기능은 사용자가 병합을 위해 단일 레코드를 선택하더라도, 그 노드 아래의 모든 데이터가 고객 데이터베이스에 자동으로 병합되도록 구현된다.
스마트 3D/CADWorx 통합 모듈은 다음의 스마트 3D/CADWorx 통합 관련 객체들 및 각자의 자식 노드들의 병합을 커버한다:
Figure pct00163
구성(configuration). 이 노드는 모든 스마트3D/CADWorx 구성 관련 데이터(데이터 표, 스마트 3D 속성, 전송 유형, 검색 소스, 절차, 데이터 표 구성, 템플릿, 데이터 표 매핑 및 속성 매핑) 및 각자의 자식 상세들을 병합하는 데 사용된다.
Figure pct00164
전송 작업들. 이 노드는 모든 스마트3D/CADWorx 전송 작업 관련 데이터(일반 구성, 목적지(Destinations), 카탈로그 구조 및 전송 작업) 및 각자의 자식 상세들을 병합하는 데 사용된다.
SPIso 통합 모듈은 다음의 SPIso 통합 관련 객체들 및 각각의 자식 노드들의 병합을 커버한다:
Figure pct00165
마스터 데이터. 이 노드는 SPIso 통합을 구성하는 데 필요한 모든 SPIso 마스터 데이터 및 각자의 자식 상세들을 병합하는 데 사용된다.
Figure pct00166
SPIso SKEY 매핑들. 이 노드는 SPIso 통합을 구성하는 데 필요한 SKEY 매핑들 및 각자의 자식 레코드들을 병합하는 데 사용된다.
Figure pct00167
내보내기. 이 노드는 SPIso 내보내기 관련 데이터와 각각의 자식 레코드들을 병합하는 데 사용된다.
CMS(컴포넌트 관리 시스템) 모듈은 다음의 CMS 관련 객체들 및 각자의 자식 노드들의 병합을 커버한다:
Figure pct00168
관리 클래스 시스템들. 이 노드는 CMS 클래스 관련 데이터 및 각자의 자식 상세들을 병합하는 데 사용된다.
Figure pct00169
컴포넌트 관리자. 이 노드는 CMS 컴포넌트 관련 데이터 및 각자의 자식 상세들을 병합하는 데 사용된다.
CMS 모듈 하의 모든 병합 동작들은 프로젝트 SDB 및 언어 영어만으로 수행되어야 한다. CMS 컴포넌트 데이터의 병합 전에 기존의 클래스 특성들에 대해 소스 데이터베이스 상에 고유 키 상세들이 설정될 필요가 있다.
도 29는 예시적인 실시예에 따른, S3D 정보에 대한 예시적인 데이터 비교 윈도우를 보여주는 주석이 달린 스크린샷이다. 윈도우의 주요 부분은 위에서 아래의 순서로 동일한 레코드들(강조되지 않음), 소스 전용 또는 타겟 전용인 레코드들(녹색으로 강조됨) 및 상이한 레코드들(오렌지색으로 강조됨)을 보여준다. 스크린의 우측에는 선택된 행(이 예에서는 녹색 강조 섹션 내의 제2 행)에 대한 차이들을 보여주는 윈도우가 있다. 필터 버튼들이 식별된다.
도 30은 예시적인 실시예에 따른, 전송 작업 정보에 대한 예시적인 데이터 비교 윈도우를 보여주는 스크린샷이다. 도 29에서와 같이, 스크린의 주요 부분은 위에서 아래의 순서로 동일한 레코드들(강조되지 않음), 소스 전용 또는 타겟 전용인 레코드들(녹색으로 강조됨), 및 상이한 레코드들(오렌지색으로 강조됨)를 보여준다. 스크린의 우측에는 선택된 행(이 예에서는 녹색 강조 섹션 내의 제2 행)에 대한 차이들을 보여주는 윈도우가 있다.
도 31은 예시적인 실시예에 따른, 노트 정보에 대한 예시적인 데이터 비교 윈도우를 보여주는 스크린샷이다. 여기서, "동일" 필터는 턴 오프되어, 소스 전용, 타겟 전용 및 차이 레코드들만이 표시된다.
도 32는 예시적인 실시예에 따른, 모든 디스플레이된 레코드들이 양 데이터베이스에서 동일한 예시적인 데이터 비교 윈도우를 보여주는 스크린샷이다.
도 33은 예시적인 실시예에 따른, 4개의 활성 SDB 병합 툴 윈도우를 보여주는 스크린샷이다.
도 34는 예시적인 실시예에 따른, 예시적인 객체 종속성 계층구조 윈도우를 보여주는 스크린샷이다. 이 윈도우로부터, 사용자는 객체를 선택하고 객체를 모든 필수적 종속성들을 포함하는 타겟 데이터베이스에 병합할 수 있다. 사용자는 객체의 필수 종속성들 모두를 보기 위해 객체를 확장할 수 있다.
도 35는 예시적인 실시예에 따른, 레코드들이 동일, 소스 전용, 타겟 전용 및 상이에 의해 순서화되는 제1 포맷의 액셀로 내보내기 윈도우를 보여주는 스크린샷이다.
도 36은 예시적인 실시예에 따른, 개별 차이들이 강조되는 제2 포맷의 액셀로 내보내기 윈도우를 보여주는 스크린샷이다. 여기서, 예를 들어, 하나의 특정 객체는 단련된(Wrought) 것으로서 소스 데이터베이스에 열거되고, 단조된(Forged) 것으로서 타겟 데이터베이스에 열거된다. 이 차이는 오렌지색으로 강조된다. 소스 전용 및 타겟 전용 레코드들은 녹색으로 강조된다.
기타
헤딩들이 위에서 편의를 위해 사용되었고, 본 발명을 어떤 식으로든 제한하는 것으로 해석되어서는 안된다는 점에 유의해야 한다.
도면들에서 화살표들은 둘 이상의 엔티티를 수반하는 통신, 전송, 또는 다른 활동을 나타내기 위해 사용될 수 있다는 점에 유의해야 한다. 양방향 화살표들은 일반적으로 활동이 양방향에서 발생할 수 있음을 나타내지만(예를 들어, 한 방향에서의 커맨드/요청과 다른 방향에서의 대응하는 응답, 또는 양쪽 엔티티에 의해 개시되는 피어-투-피어(peer-to-peer) 통신), 일부 상황에서는 활동이 반드시 양방향에서 발생하지는 않을 수 있다. 단방향 화살표들은 일반적으로 단지 또는 주로 하나의 방향에서의 활동을 나타내지만, 소정 상황들에서는 그러한 지향성 활동은 실제로는 양방향에서의 활동들(예를 들어, 송신기로부터 수신기로의 메시지 및 수신기로부터 송신기로의 확인 응답, 또는 전송 전의 접속의 확립 및 전송 후의 접속의 종료)을 포함할 수 있다는 점에 유의해야 한다. 따라서, 특정 활동을 표현하기 위해 특정 도면에서 사용되는 화살표의 유형은 예시적인 것이며 제한하는 것으로 간주되지 않아야 한다.
논리 흐름들이 본 발명의 다양한 양태들을 보여주기 위해 본 명세서에서 설명될 수 있으며, 본 발명을 임의의 특정 논리 흐름 또는 논리 구현으로 제한하는 것으로 해석되어서는 안된다는 점에 유의해야 한다. 설명된 논리는 전체 결과를 변경함이 없이 또는 본 발명의 진정한 범위를 벗어나지 않고 상이한 논리 블록들(예를 들어, 프로그램, 모듈, 함수 또는 서브루틴)으로 분할될 수 있다. 종종, 논리 요소들은 전체 결과를 변경함이 없이 또는 본 발명의 진정한 범위를 벗어나지 않고 상이한 순서로 부가, 수정, 생략될 수 있거나, 상이한 논리 구조들(logic constructs)(예를 들어, 논리 게이트, 루핑 프리미티브(looping primitive), 조건부 논리, 및 다른 논리 구조)을 사용하여 구현될 수 있다.
본 발명은 프로세서(예컨대, 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서 또는 범용 컴퓨터)와 함께 사용하기 위한 컴퓨터 프로그램 논리, 프로그래밍 가능 논리 디바이스(예를 들어, 필드 프로그래머블 게이트 어레이(FPGA) 또는 다른 PLD)와 함께 사용하기 위한 프로그래밍 가능 논리, 개별 컴포넌트들, 집적 회로(예를 들어, 주문형 집적회로(ASIC)), 또는 이들의 임의 조합을 포함하는 임의의 다른 수단을 포함하지만 이에 한정되지 않는 많은 상이한 형태로 구현될 수 있다. 설명된 기능의 일부 또는 전부를 구현하는 컴퓨터 프로그램 논리는 통상적으로 컴퓨터 실행가능 형태로 변환되고, 따라서 컴퓨터 판독가능 매체 내에 저장되고, 운영 체제의 제어 하에 마이크로프로세서에 의해 실행되는 컴퓨터 프로그램 명령어들의 세트로서 구현된다. 설명된 기능의 일부 또는 전부를 구현하는 하드웨어 기반 논리는 하나 이상의 적절하게 구성된 FPGA를 사용하여 구현될 수 있다.
본 명세서에서 앞서 설명된 기능의 전부 또는 일부를 구현하는 컴퓨터 프로그램 논리는 소스 코드 형태, 컴퓨터 실행가능 형태 및 다양한 중간 형태들(예를 들어, 어셈블러, 컴파일러, 링커 또는로케이터가 생성한 형태들)을 포함하지만 이에 한정되지 않는 다양한 형태들로 구현될 수 있다. 소스 코드는 다양한 운영 체제들 또는 운영 환경들과 함께 사용하기 위한 임의의 다양한 프로그래밍 언어(예를 들어, 객체 코드, 어셈블리 언어, 또는 FORTRAN, C, C++, JAVA 또는 HTML과 같은 하이 레벨 언어)로 구현되는 일련의 컴퓨터 프로그램 명령어들을 포함할 수 있다. 소스 코드는 다양한 데이터 구조들 및 통신 메시지들을 정의하고 사용할 수 있다. 소스 코드는 (예를 들어, 해석기를 통해) 컴퓨터 실행 가능 형태일 수 있거나, 소스 코드는 (예컨대, 번역기, 어셈블러 또는 컴파일러를 통해) 컴퓨터 실행 가능 형태로 변환될 수 있다.
본 명세서에서 이전에 설명된 기능의 전부 또는 일부를 구현하는 컴퓨터 프로그램 논리는 단일 프로세서 상에서 상이한 시간들에(예를 들어, 동시에) 실행될 수 있거나, 다수의 프로세서 상에서 동일하거나 상이한 시간들에 실행될 수 있고, 단일 운영 체제 프로세스/스레드 하에서 또는 상이한 운영 체제 프로세스들/스레드들 하에서 실행될 수 있다. 따라서, "컴퓨터 프로세스"라는 용어는 일반적으로 상이한 컴퓨터 프로세스들이 동일한 또는 상이한 프로세서들 상에서 실행되는지에 관계없이 그리고 상이한 컴퓨터 프로세스들이 동일한 운영 체제 프로세스/스레드 또는 상이한 운영 체제 프로세스들/스레드들 하에서 실행되는지에 관계없이 컴퓨터 프로그램 명령어들의 세트의 실행을 지칭한다.
컴퓨터 프로그램은 반도체 메모리 디바이스(예를 들어, RAM, ROM, PROM, EEPROM, 또는 플래시-프로그래밍 가능 RAM), 자기 메모리 디바이스(예를 들어, 디스켓 또는 고정 디스크), 광학 메모리 디바이스(예를 들어, CD-ROM), PC 카드(예를 들어, PCMCIA 카드), 또는 다른 메모리 디바이스와 같은 유형적인 저장 매체에 영구적으로 또는 일시적으로 임의 형태(예를 들어, 소스 코드 형태, 컴퓨터 실행가능 형태, 또는 중간 형태)로 고정될 수 있다. 컴퓨터 프로그램은 아날로그 기술, 디지털 기술, 광학 기술, 무선 기술(예컨대, 블루투스), 네트워킹 기술 및 인터네트워킹 기술을 포함하지만 이에 한정되지 않는 임의의 다양한 통신 기술을 사용하여 컴퓨터로 전송될 수 있는 신호 내에 임의 형태로 고정될 수 있다. 컴퓨터 프로그램은 첨부된 인쇄 또는 전자 문서(예를 들어, 축소 포장된(shrink wrapped) 소프트웨어)를 갖는 이동식 저장 매체로서 임의의 형태로 배포되거나, 컴퓨터 시스템에 (예를 들어, 시스템 ROM 또는 고정 디스크 상에) 사전 로딩되거나, 통신 시스템(예를 들어, 인터넷 또는 월드 와이드 웹)을 통해 서버 또는 전자 게시판으로부터 배포될 수 있다.
본 명세서에서 앞서 설명한 기능성의 전부 또는 일부를 구현하는 하드웨어 논리(프로그래밍 가능 논리 디바이스와 함께 사용하기 위한 프로그래밍 가능 논리를 포함함)는 전통적인 수동 방법들을 사용하여 설계될 수 있거나, CAD(Computer Aided Design), 하드웨어 기술 언어(예를 들어, VHDL 또는 AHDL), 또는 PLD 프로그래밍 언어(예를 들어, PALASM, ABEL, 또는 CUPL)과 같은 다양한 툴들을 사용하여 전자적으로 설계, 캡처, 시뮬레이션 또는 문서화될 수 있다.
프로그래밍 가능 논리는 반도체 메모리 디바이스(예를 들어, RAM, ROM, PROM, EEPROM, 또는 플래시-프로그래밍 가능 RAM), 자기 메모리 디바이스(예를 들어, 디스켓 또는 고정 디스크), 광학 메모리 디바이스(예를 들어, CD-ROM) 또는 다른 메모리 디바이스와 같은 유형적인 저장 매체에 영구적으로 또는 일시적으로 고정될 수 있다. 프로그래밍 가능 논리는 아날로그 기술, 디지털 기술, 광학 기술, 무선 기술(예컨대 블루투스), 네트워킹 기술 및 인터네트워킹 기술을 포함하지만 이에 한정되지 않는 임의의 다양한 통신 기술을 사용하여 컴퓨터로 전송될 수 있는 신호 내에 고정될 수 있다. 프로그래밍 가능 논리는 첨부된 인쇄 또는 전자 문서(예를 들어, 축소 포장된 소프트웨어)를 갖는 이동식 저장 매체로서 배포되거나, 컴퓨터 시스템에 (예를 들어, 시스템 ROM 또는 고정 디스크 상에) 사전 로딩되거나, 통신 시스템(예를 들어, 인터넷 또는 월드 와이드 웹)을 통해 서버 또는 전자 게시판으로부터 배포될 수 있다. 물론, 본 발명의 일부 실시예들은 소프트웨어(예를 들어, 컴퓨터 프로그램 제품)과 하드웨어의 조합으로서 구현될 수 있다. 본 발명의 또 다른 실시예들은 전체가 하드웨어로 또는 전체가 소프트웨어로 구현된다.
중요하게, 본 발명의 실시예들은 전통적인 컴퓨터들(예를 들어, 기성품 PC들, 메인프레임들, 마이크로프로세서들), 전통적인 프로그래밍 가능 논리 디바이스들(예를 들어, 기성품 FPGA들 또는 PLD들), 또는 본 명세서에 설명된 비전통적인 방법들을 수행하도록 프로그래밍되거나 구성될 때, 비전통적인 디바이스들 또는 시스템들을 생성하는 전통적인 하드웨어 컴포넌트들(예를 들어, 기성품 ASIC들 또는 개별 하드웨어 컴포넌트들)과 같은 전통적인 컴포넌트들을 사용할 수 있다는 점에 유의해야 한다. 따라서, 특수 프로그래밍 또는 구성이 없으면 전통적인 컴포넌트들은 설명된 비전통적인 방법들을 본질적으로 수행하지 않기 때문에, 실시예들이 전통적인 컴포넌트들을 사용하여 구현되는 경우에도, 결과적인 디바이스들 및 시스템들(예를 들어, 본 명세서에 설명된 SDB 병합 툴)은 반드시 비전통적이므로, 본 명세서에 설명된 발명들에 관한 어떠한 전통적인 것도 존재하지 않는다.
본 발명은 본 발명의 진정한 범위를 벗어나지 않고 다른 특정 형태들로 구현될 수 있으며, 다수의 변형 및 수정이 본 명세서의 교시에 기초하여 이 분야의 기술자들에게 명백할 것이다. "발명"에 대한 임의의 참조들은 본 발명의 예시적인 실시예들을 지칭하도록 의도되며, 문맥이 달리 요구하지 않는 한, 본 발명의 모든 실시예들을 지칭하는 것으로 해석되어서는 안된다. 설명된 실시예들은 모든 면에서 제한적이 아니라 단지 예시적인 것으로 간주되어야 한다.

Claims (21)

  1. 소스 데이터베이스로부터의 객체를 타겟 데이터베이스에 병합하는 방법으로서,
    상기 객체는 상기 소스 데이터베이스 내의 복수의 관계형 데이터베이스 표에 저장된 데이터와 연관되며, 상기 방법은,
    상기 객체에 대한 기본 키(primary key)를 획득하는 단계;
    제1 관계형 데이터베이스 표로부터 기본 키 값을 획득하기 위해 상기 객체에 대한 상기 기본 키를 사용하여 상기 소스 데이터베이스에 질의하는 단계;
    상기 객체와 연관된 부모 객체(parent object)를 식별하는 단계로서, 상기 부모 객체는 제2 관계형 데이터베이스 표와 연관된, 단계;
    상기 부모 객체에 대한 부모 키를 획득하는 단계;
    상기 제2 관계형 데이터베이스로부터 부모 키 값을 획득하기 위해 상기 부모 키를 사용하여 상기 소스 데이터베이스에 질의하는 단계;
    상기 부모 키 값이 상기 타겟 데이터베이스 내의 부모 객체 레코드에 존재하는지를 결정하기 위해 상기 부모 키 값을 사용하여 상기 타겟 데이터베이스에 질의하는 단계;
    상기 부모 키 값이 상기 타겟 데이터베이스 내의 부모 객체 레코드에 존재하지 않을 때, 상기 부모 키 값을 포함하는 상기 부모 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계; 및
    상기 기본 키 값 및 상기 부모 키 레코드 내의 상기 부모 키 값에 대한 참조를 포함하는 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제2 관계형 데이터베이스로부터 부모 키 값을 획득하기 위해 상기 부모 키를 사용하여 상기 소스 데이터베이스에 질의하는 단계는:
    상기 제1 관계형 데이터베이스 표와 상기 제2 관계형 데이터베이스 표를 연결하는 단계를 포함하는, 방법.
  3. 제1항에 있어서, 상기 부모 키 값을 포함하는 상기 부모 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계는:
    상기 부모 키 값에 대한 식별자를 할당하는 단계를 포함하며, 상기 식별자는 상기 타겟 데이터베이스 내에서 고유하고 상기 소스 데이터베이스 내의 상기 부모 키 값에 대한 대응하는 식별자와 상이한, 방법.
  4. 제3항에 있어서, 상기 부모 키 값에 대한 상기 참조는 상기 부모 키 값에 대해 할당된 상기 고유 식별자를 포함하는, 방법.
  5. 제1항에 있어서, 상기 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계는:
    상기 기본 키 값에 대한 식별자를 할당하는 단계를 포함하며, 상기 식별자는 상기 타겟 데이터베이스 내에서 고유하고 상기 소스 데이터베이스 내의 상기 기본 키 값에 대한 대응하는 식별자와 상이한, 방법.
  6. 제5항에 있어서, 상기 부모 키 값이 상기 타겟 데이터베이스 내의 부모 객체 레코드에 존재할 때, 상기 부모 키 값에 대한 상기 참조는 기존의 부모 키 값과 연관된 식별자를 포함하는, 방법.
  7. 제1항에 있어서,
    상기 객체에 대한 상기 기본 키를 포함하는 상기 복수의 관계형 데이터베이스 표에 저장된 상기 데이터 및 상기 복수의 관계형 데이터베이스 표 사이의 관계들을 설명하는 구성 파일을 유지하는 단계를 더 포함하며, 상기 객체에 대한 상기 기본 키, 상기 부모 객체의 식별, 및 상기 부모 키는 상기 구성 파일로부터 획득되는, 방법.
  8. 데이터베이스 시스템으로서,
    복수의 관계형 데이터베이스 표; 및
    상기 데이터베이스 시스템의 적어도 하나의 프로세서에 의해 실행될 때 상기 데이터베이스 시스템으로 하여금 컴퓨터 프로세스들을 수행하게 하는 프로그램 코드를 갖는 병합 툴을 포함하며, 상기 컴퓨터 프로세스들은:
    객체에 대한 기본 키를 획득하는 단계;
    제1 관계형 데이터베이스 표로부터 기본 키 값을 획득하기 위해 상기 객체에 대한 상기 기본 키를 사용하여 소스 데이터베이스에 질의하는 단계;
    상기 객체와 연관된 부모 객체를 식별하는 단계로서, 상기 부모 객체는 제2 관계형 데이터베이스 표와 연관된, 단계;
    상기 부모 객체에 대한 부모 키를 획득하는 단계;
    상기 제2 관계형 데이터베이스로부터 부모 키 값을 획득하기 위해 상기 부모 키를 사용하여 상기 소스 데이터베이스에 질의하는 단계;
    상기 부모 키 값이 타겟 데이터베이스 내의 부모 객체 레코드에 존재하는지를 결정하기 위해 상기 부모 키 값을 사용하여 상기 타겟 데이터베이스에 질의하는 단계;
    상기 부모 키 값이 상기 타겟 데이터베이스 내의 부모 객체 레코드에 존재하지 않을 때, 상기 부모 키 값을 포함하는 상기 부모 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계; 및
    상기 기본 키 값 및 상기 부모 키 레코드 내의 상기 부모 키 값에 대한 참조를 포함하는 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계를 포함하는, 데이터베이스 시스템.
  9. 제8항에 있어서, 상기 제2 관계형 데이터베이스로부터 부모 키 값을 획득하기 위해 상기 부모 키를 사용하여 상기 소스 데이터베이스에 질의하는 단계는:
    상기 제1 관계형 데이터베이스 표와 상기 제2 관계형 데이터베이스 표를 연결하는 단계를 포함하는, 데이터베이스 시스템.
  10. 제8항에 있어서, 상기 부모 키 값을 포함하는 상기 부모 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계는:
    상기 부모 키 값에 대한 식별자를 할당하는 단계를 포함하며, 상기 식별자는 상기 타겟 데이터베이스 내에서 고유하고 상기 소스 데이터베이스 내의 상기 부모 키 값에 대한 대응하는 식별자와 상이한, 데이터베이스 시스템.
  11. 제10항에 있어서, 상기 부모 키 값에 대한 상기 참조는 상기 부모 키 값에 대해 할당된 상기 고유 식별자를 포함하는, 데이터베이스 시스템.
  12. 제8항에 있어서, 상기 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계는:
    상기 기본 키 값에 대한 식별자를 할당하는 단계를 포함하며, 상기 식별자는 상기 타겟 데이터베이스 내에서 고유하고 상기 소스 데이터베이스 내의 상기 기본 키 값에 대한 대응하는 식별자와 상이한, 데이터베이스 시스템.
  13. 제12항에 있어서, 상기 부모 키 값이 상기 타겟 데이터베이스 내의 부모 객체 레코드에 존재할 때, 상기 부모 키 값에 대한 상기 참조는 기존의 부모 키 값과 연관된 식별자를 포함하는, 데이터베이스 시스템.
  14. 제8항에 있어서,
    상기 컴퓨터 프로세스들은, 상기 객체에 대한 상기 기본 키를 포함하는 상기 복수의 관계형 데이터베이스 표에 저장된 데이터 및 상기 복수의 관계형 데이터베이스 표 사이의 관계들을 설명하는 구성 파일을 유지하는 단계를 더 포함하며, 상기 객체에 대한 상기 기본 키, 상기 부모 객체의 식별, 및 상기 부모 키는 상기 구성 파일로부터 획득되는, 데이터베이스 시스템.
  15. 데이터베이스 시스템의 적어도 하나의 프로세서에 의해 실행될 때 상기 데이터베이스 시스템으로 하여금 컴퓨터 프로세스들을 수행하게 하는 프로그램 코드가 구현되어 있는 유형적인 비일시적 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로세스들은:
    객체에 대한 기본 키를 획득하는 단계;
    제1 관계형 데이터베이스 표로부터 기본 키 값을 획득하기 위해 상기 객체에 대한 상기 기본 키를 사용하여 소스 데이터베이스에 질의하는 단계;
    상기 객체와 연관된 부모 객체를 식별하는 단계로서, 상기 부모 객체는 제2 관계형 데이터베이스 표와 연관된, 단계;
    상기 부모 객체에 대한 부모 키를 획득하는 단계;
    상기 제2 관계형 데이터베이스로부터 부모 키 값을 획득하기 위해 상기 부모 키를 사용하여 상기 소스 데이터베이스에 질의하는 단계;
    상기 부모 키 값이 타겟 데이터베이스 내의 부모 객체 레코드에 존재하는지를 결정하기 위해 상기 부모 키 값을 사용하여 상기 타겟 데이터베이스에 질의하는 단계;
    상기 부모 키 값이 상기 타겟 데이터베이스 내의 부모 객체 레코드에 존재하지 않을 때, 상기 부모 키 값을 포함하는 상기 부모 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계; 및
    상기 기본 키 값 및 상기 부모 키 레코드 내의 상기 부모 키 값에 대한 참조를 포함하는 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계를 포함하는, 컴퓨터 프로그램 제품.
  16. 제15항에 있어서, 상기 제2 관계형 데이터베이스로부터 부모 키 값을 획득하기 위해 상기 부모 키를 사용하여 상기 소스 데이터베이스에 질의하는 단계는:
    상기 제1 관계형 데이터베이스 표와 상기 제2 관계형 데이터베이스 표를 연결하는 단계를 포함하는, 컴퓨터 프로그램 제품.
  17. 제15항에 있어서, 상기 부모 키 값을 포함하는 상기 부모 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계는:
    상기 부모 키 값에 대한 식별자를 할당하는 단계를 포함하며, 상기 식별자는 상기 타겟 데이터베이스 내에서 고유하고 상기 소스 데이터베이스 내의 상기 부모 키 값에 대한 대응하는 식별자와 상이한, 컴퓨터 프로그램 제품.
  18. 제17항에 있어서, 상기 부모 키 값에 대한 상기 참조는 상기 부모 키 값에 대해 할당된 상기 고유 식별자를 포함하는, 컴퓨터 프로그램 제품.
  19. 제15항에 있어서, 상기 객체 레코드를 상기 타겟 데이터베이스에 추가하는 단계는:
    상기 기본 키 값에 대한 식별자를 할당하는 단계를 포함하며, 상기 식별자는 상기 타겟 데이터베이스 내에서 고유하고 상기 소스 데이터베이스 내의 상기 기본 키 값에 대한 대응하는 식별자와 상이한, 컴퓨터 프로그램 제품.
  20. 제19항에 있어서, 상기 부모 키 값이 상기 타겟 데이터베이스 내의 부모 객체 레코드에 존재할 때, 상기 부모 키 값에 대한 상기 참조는 기존의 부모 키 값과 연관된 식별자를 포함하는, 컴퓨터 프로그램 제품.
  21. 제15항에 있어서,
    상기 컴퓨터 프로세스들은, 상기 객체에 대한 상기 기본 키를 포함하는 상기 복수의 관계형 데이터베이스 표에 저장된 데이터 및 상기 복수의 관계형 데이터베이스 표 사이의 관계들을 설명하는 구성 파일을 유지하는 단계를 더 포함하며, 상기 객체에 대한 상기 기본 키, 상기 부모 객체의 식별, 및 상기 부모 키는 상기 구성 파일로부터 획득되는, 컴퓨터 프로그램 제품.
KR1020217001489A 2018-06-16 2019-06-14 데이터베이스 레코드들을 비교하고 선택적으로 병합하기 위한 시스템 및 방법 KR20210041554A (ko)

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
KR20210041554A true KR20210041554A (ko) 2021-04-15

Family

ID=68839803

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217001489A KR20210041554A (ko) 2018-06-16 2019-06-14 데이터베이스 레코드들을 비교하고 선택적으로 병합하기 위한 시스템 및 방법

Country Status (5)

Country Link
US (2) US11120025B2 (ko)
EP (1) EP3807776A1 (ko)
KR (1) KR20210041554A (ko)
CN (1) CN112654976A (ko)
WO (1) WO2019241656A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11151194B2 (en) * 2019-05-09 2021-10-19 Sap Se Data collection and integration 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
CN113885802A (zh) * 2021-09-30 2022-01-04 杭州贝嘟科技有限公司 数据传输方法、装置、电子装置和存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1093061A1 (de) * 1999-10-14 2001-04-18 SAP Aktiengesellschaft Integriertes Datenbank-Verbundsystem
US9514163B2 (en) * 2005-11-17 2016-12-06 International Business Machines Corporation Database consolidation tool
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
BR112012029391A2 (pt) * 2010-05-19 2017-07-11 Transmed7 Llc métodos e aparelhos para formação in situ de implantes cirúrgicos
WO2012130489A1 (en) 2011-04-01 2012-10-04 Siemens Aktiengesellschaft Method, system, and computer program product for maintaining data consistency between two databases
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
EP2849091A1 (en) * 2013-09-16 2015-03-18 Siemens Aktiengesellschaft Method and system for merging data into a database table
US9916357B2 (en) * 2014-06-27 2018-03-13 Microsoft Technology Licensing, Llc Rule-based joining of foreign to primary key
CN106033436B (zh) * 2015-03-13 2020-05-22 中国石油化工股份有限公司 一种数据库的合并方法
US10042956B2 (en) * 2015-05-14 2018-08-07 Oracle Financial Services Software Limited Facilitating application processes defined using application objects to operate based on structured and unstructured data stores
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

Also Published As

Publication number Publication date
EP3807776A1 (en) 2021-04-21
US11120025B2 (en) 2021-09-14
US20210365447A1 (en) 2021-11-25
WO2019241656A1 (en) 2019-12-19
US20190384847A1 (en) 2019-12-19
CN112654976A (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
US20210365447A1 (en) System and method for comparing and selectively merging database records
US7734619B2 (en) Method of presenting lineage diagrams representing query plans
US10275776B1 (en) Techniques for compliance testing
CA2610559C (en) Integrated system, tools, and methods for designing automated business process applications
US20210334250A1 (en) Construction of database schema models for database systems and rest api&#39;s
AU2020260374B2 (en) Building reports
US20170091589A1 (en) Framework for data extraction by examples
CA2669479C (en) Generating end-user presentations from structured data
GB2414834A (en) Visual programming with automated features
US7818328B2 (en) API for obtaining unambiguous representation of objects in a relational database
JP6582819B2 (ja) データベース連携システムおよびデータベース連携用プログラム
US20070157074A1 (en) System for and method of providing overview of a worksheet in an electronic report
US10657152B2 (en) Synchronization of diagrams and associated structured data
US7933892B2 (en) Computer-readable medium storing program for automatically generating query window, apparatus for automatically generating query window, and method for automatically generating query window
WO2018038065A1 (ja) 情報管理装置並びにファイル管理方法
KR102111152B1 (ko) 컴포넌트-기반 소프트웨어 시스템 및 개발 방법
JPWO2017043664A1 (ja) 情報管理装置並びにファイル管理方法
JPH11102293A (ja) プログラム自動生成方法
EP1143357A2 (en) Method for defining iteration configuration in a data transformation specification
US20220156253A1 (en) Compact display of matching results
JPH0475135A (ja) プログラム開発装置
JPH0475136A (ja) プログラム開発装置
AU2014201362A1 (en) A Data Management System
JPH0475133A (ja) プログラム開発装置
WORKSPACE Match Widths OR Heights