KR101801865B1 - 관계형 데이터 전송 방법 - Google Patents

관계형 데이터 전송 방법 Download PDF

Info

Publication number
KR101801865B1
KR101801865B1 KR1020167032265A KR20167032265A KR101801865B1 KR 101801865 B1 KR101801865 B1 KR 101801865B1 KR 1020167032265 A KR1020167032265 A KR 1020167032265A KR 20167032265 A KR20167032265 A KR 20167032265A KR 101801865 B1 KR101801865 B1 KR 101801865B1
Authority
KR
South Korea
Prior art keywords
row
export
data
rows
identifier
Prior art date
Application number
KR1020167032265A
Other languages
English (en)
Other versions
KR20170015893A (ko
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 KR20170015893A publication Critical patent/KR20170015893A/ko
Application granted granted Critical
Publication of KR101801865B1 publication Critical patent/KR101801865B1/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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • G06F17/30595
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • G06F17/303
    • G06F17/30569

Abstract

하나의 관계형 데이터베이스로부터 또 다른 관계형 데이터베이스로 관계형 데이터를 전송하는 방법이 개시된다. 전송된 데이터는 전체 데이터베이스 내의 데이터의 서브셋일 수 있으며, 그리고 이러한 데이터의 루트 및 다른 데이터 엔티티들 간의 관계들은 타겟 데이터베이스에서 재구성할 수 있는 방식으로 보존된다. 이러한 보전 자체는 구성을 통해 추가 지시를 받으며, 충돌 없이, 게다가 원형의(original) 식별자들을 유지할 필요도 없이, 새로운 데이터 식별자들을 재생성할 수 있다.

Description

관계형 데이터 전송 방법 {Method for transporting relational data}
관련출원에 대한 상호 참조
본 출원은 2014년 5월 20일자 미국 출원 제14/282,387호에 대한 우선권을 함유하며, 그 임시출원의 전체 내용이 본원에 참고로 편입된다.
저작권에 관한 고지
ⓒ2015 IFWIZARD CORPORTION. 본 특허 문서 개시의 일부는 저작권 보호를 받는 자료를 포함한다. 저작권자는 특허청의 포대 또는 기록들에 나타나는 한, 본 특허 문서 또는 특허 개시를 어떤 사람이 팩시밀리로 복제하는 것에 대해 이의가 없다. 하지만, 그 외에는 모든 저작권을 유보한다. 37 CFR ㄷ1.71(d).
발명의 기술 분야
본 발명은 관계형 데이터를 전송하는 방법에 관한 것이다.
데이터베이스 관리 시스템(database management system; DBMS)들은 클라이언트 프로그램에 중앙 집중화된 구조 정보 서비스들을 제공한다. DBMS 내의 데이터는 데이터 모델로서 알려진 특정 기본 정보 저장 패턴에 따라 정의되고, 저장되고, 그리고 검색된다. 예를 들어, 계층적 데이터 모델을 사용하는 DBMS는 트리형 구조를 통해 그것 내의 데이터 엔티티들을, 하나의 "부모(parent)" 엔티티(또는 "루트(root)" 엔티티에 대해서는 "부모" 없음) 그리고 임의의 개수의 "자식(child)" 엔티티들을 갖는 각각의 엔티티와 관련시킬 것이다. 이러한 계층적 데이터 모델은 널리 사용되는 XML 데이터 형식에서, 그리고 XML 데이터베이스들을 위해 사용된다.
정교한 컴퓨터 정보에 대한 가장 일반적인 DBMS 데이터 모델은 관계형 데이터베이스 관리 시스템(relational database management system; RDBMS)에 의해 사용되는 관계형 데이터 모델이다. 관계형 데이터는 데이터 엔티티들을 나타내는 행들과 엔티티 속성들을 나타내는 열들을 갖는 2차원 데이터 테이블들의 집합으로서 이해될 수 있다. 통상적으로 행들은 각각의 행 또는 각각의 엔티티를 고유하게 식별하는 키 열을 갖는다. 이러한 키들은 대개 이후에 삽입되는 행마다 증가되는 양의 정수이다. 테이블 행들은 오로지 그것들의 키들을 통해서만 식별될 수 있기 때문에, 테이블 A의 행은 테이블 B로부터의 키를 갖는 열을 포함함으로써 테이블 B의 행과 "관계"될 수 있다.
테이블 간의 관계들을 위해 이러한 행 식별자들을 사용함으로써, 상기 행 식별자 그 자체 외에 행에 대한 모든 데이터는 복제될 필요가 없으며, 그리고 오직 그것의 정식 테이블(canonical table)에만 저장될 수 있다. 예를 들어, 고객들의 테이블에는 거리 주소 정보(street address information)가 들어있을 수 있다. 판매 주문 목록에서와 같이, 이 고객을 언급할 때, 전술한 바와 같이 오직 상기 고객 행 식별자만이 필요하다. 고객 주소는 상기 판매 주문의 고객 부분 내에 복제될 필요가 없다. 이러한 정규화된 테이블 내 관계들의 주요 이점 중 하나는 (즉, 판매 주문에서) 유지할 고객 주소를 중복해서 포함하지 않으므로 상기 고객 주소는 오직 상기 고객 테이블 내에서의 정보만을 변경함으로써 수정될 수 있다는 것이다.
통상적으로 행 식별자들은 RDBMS에 의해 1, 2, 3 등과 같은 단순한 증가하는 양수로 자동으로 생성된다. 이러한 식별자 시퀀스 생성기들이 상기 테이블들 자체와 구별되기 때문에, 두 개의 데이터베이스들이 동일한 유형의 테이블들 및 열들을 공유한다면, 상기 행 식별자들은 동일한 컨텐츠를 가지고 있음에도 불구하고 상기 두 개의 데이터베이스들 간에 서로 다를 수 있다. 이러한 차이는 테이블 행들의 순서, 개수 및 삭제 이력에서 발생할 수 있다. 예를 들어, 세 명의 고객들이 두 개의 데이터베이스들에서 반대 순서로 추가되었다면, 데이터베이스들 전체에 걸쳐 0일 가능성이 높지만 하나 이하의 행이 동일한 행 식별자들을 가질 것이다.
RDBMS는 감소된 저장 크기, 개선된 데이터 일관성, 그리고 일부 동작들에 대해, 더 높은 쿼리 성능의 이점들을 제공하지만, 그것의 데이터 모델은 행 식별자 키들의 올바르고 일관된 사용에 크게 의존한다. 데이터 중복이 감소되거나 심지어는 제거되었기 때문에, 올바른 행이 상기 행 식별자를 통해 관련되지 않는다면, 포함된 중복 데이터를 조사하여 올바른 행을 복구할 수 있는 방법이 없다. 예를 들어, 판매 주문은 오직 상기 고객 행 식별자만을 포함할 것이며, 그리고 상호 참조를 가능하게 할 그들의 이름 또는 거리 주소 같은 추가 고객 행들을 포함하지 않을 것이다. 뿐만 아니라, 잘못된 행 식별자들은 단지 다른 테이블의 누락된 행들을 참조할 뿐만 아니라, 현존하지만 올바르지 않은 행들과 관련될 수 있을 가능성이 높다.
DBMS는 일반적으로 단일 위치의 단일 서버에서 실행되지만, 때로는 더 은밀한 종류들(esoteric varieties)이 위치들 사이에서 투명하게 확산된다. RDBMS가 두 가지 주요 부분들 (1) 데이터구조를 설명하고 정의하는 데이터 테이블들 및 (2) 이렇게 기술된 모델에 따르는 데이터 행들을 포함함에 따라, 마찬가지로 서버는 정의하는 컨테이너 및 포함된 컨텐츠 둘 다로 볼 수 있다. 완전하게 구별되는 데이터베이스들(즉, 상기 테이블들 및 상기 데이터 모두 구별된다) 간의 상호 작용이 가능한 동안, 보유한 데이터가 동일하거나 다를 수 있지만 여러 RDBMS 서버들이 동일한 테이블 정의들로 작동하는 많은 상황들이 존재한다. 이러한 동일-정의 시나리오들에서, 상기 데이터베이스 서버들 간에 데이터를 전송할 필요가 있을 수 있다.
그러한 시나리오 중 하나는 다수의 데이터베이스 서버들을 통한 다수의 소프트웨어 설치들을 나타낸다. 예를 들어, 여러 위치들에 있는 저장소들은 모두 동일한 판매 추적 소프트웨어가 설치되어 있을 수 있지만, 각각 자신들의 로컬 판매 데이터를 추적하기 위해 자신만의 데이터베이스 서버를 가질 수 있다. 이 경우, 고객 및 주문 이력과 같은 그들의 관련 기록들 같은 부분 데이터를, 하나의 시설(installation)에서 다른 시설의 서버로 이동하려고 할 수 있다. 다른 시나리오는 지속적인 가용성과 보안을 가능하게 하기 위해, 아마 상이한 영역들에 위치한 여러 상이한 데이터베이스 서버들에서 동일한 데이터를 복제하는 것을 포함한다. 제3 시나리오는 하나의 데이터베이스 서버 내의 데이터를 다른 서버에서 새로운 데이터 삽입을 위해 템플릿으로 사용하는 것이다. 이 시나리오의 변형은 원래의 데이터베이스 서버 내에서 이러한 템플릿을 사용하는 것이다.
관계형 데이터베이스들에 관해 전술한 내용으로부터, RDBMS 사이에서 그리고 RDBMS 내에서 상기 표로 동일한(tabularly identical) 데이터 운송을 수행하는데 4가지 주요한 어려움이 있다 :
(1) 전송된 데이터 행 식별자는 기존 식별자들과의 충돌 및 누락된 관계들로 인해 새로운 데이터베이스에서 안전하게 사용될 수 없다.
(2) 전송된 행은 필요한 관계일 수 있거나 또는 전송되어야하는 추가 행들과의 관계를 요구할 수 있다. 예를 들어, 제품 행을 전송하려면, 공급 업체(제품에 대한 관계) 또는 지원 히스토리(제품으로부터의 관계) 행들이 필요할 수 있다.
(3) 이전 행 식별자는 안전하게 사용될 수 없으므로, 새로운 행 식별자들은 전송의 일부로서 할당되어야 한다.
(4) 이러한 새로운 서로 다른 행 식별자들이 주어지면, 기본 행과 함께 전송된 모든 필요한 관련 데이터는 새로운 행 식별자들을 사용하여 다시 연관되어야 한다.
이러한 어려움들 때문에, 관계형 데이터베이스들 간의 이동은 일반적으로 세 개의 시나리오들로 제한되며, 실제로 모두 제한적이다. 이러한 세 개의 시나리오들은 다음과 같다 :
(1) 데이터베이스는 제2 데이터베이스에 완전히 복제(duplicating)되거나 또는 복사(cloning)될 수 있다. 이는 상기 제2 데이터베이스의 모든 기존 데이터를 완전히 지워야하는 파괴적인 프로세스이다. 이는 데이터베이스가 백업되게 하고 복원되게 하는 일반적인 기술이다.
(2) 주문 프로그램(custom program)은 필요한 특정 행들을 수집하여 그것들을 상기 제2 데이터베이스에 삽입하도록 작성될 수 있다. 이 기술은 부분적 데이터 전송을 허용하지만, 의도된 애플리케이션, 데이터베이스 및 데이터의 섹션에서만 전적으로 적용된다. 왜냐하면, 이 기술은 전송되는 데이터의 각 섹션에 대해 고유한 프로그램을 필요로 하며, 그리고 테이블 정의 또는 의도에 대한 임의의 변경 사항들을 매칭하기 위해 동기식으로(synchronously) 유지 관리되어야 하기 때문이다.
(3) 경우에 따라, 데이터를 CSV(Comma Separated Value) 형식 같은 중간 형식으로 내보낸 다음 다시 가져올 수 있다. 상기 중간 형식은 일반적으로 관계들 및 의존성들의 완전한 표현이 부족하기 때문에, 이 시나리오는 관련이 없는 행들에 대해서와 같이 매우 간단한 데이터 전송을 제외하고는 제한적으로 사용된다.
이러한 시나리오들은 모두 특수성, 응용 또는 범위의 상당한 제한을 보여주기 때문에, 특히 RDBMS의 부분적 상호 연관된 서브셋들에 대한, 관계형 데이터의 운송을 위한 일반적인 해결책은 현재 존재하지 않는다.
다음은 몇몇 특징들 및 문맥에 대한 기본적인 이해를 제공하기 위한 본 개시 내용의 요약이다. 이 요약은 본 발명의 핵심/중요한 요소들을 식별하거나 본 발명의 범위를 기술하기 위한 것이 아니다. 이 요약의 유일한 목적은 후술되는 보다 상세한 설명의 서두로서 본 발명의 일부 개념들을 단순화된 형태로 제시하는 것뿐이다.
이에 따라, 본 개시서의 목적은 관계형 데이터베이스 내의 데이터를 전송하기 위한 일반적인 방법을 제공하는 것이다. 전송될 데이터는 임의의 행 식별자를 갖는 임의의 테이블 내의 임의의 행일 수 있다. 전송된 행에 의존하는 다른 모든 데이터뿐만 아니라 상기 전송된 행이 의존하는 다른 모든 데이터는 주어진 행과 함께 자동으로 결정되고 전송될 것이다. 추가로, 상기 방법은 테이블들의 옵션 사양이 전송 시 무시될 수 있게 하여, 비-필수적이거나 기능적으로 불필요한 데이터가 생략될 수 있도록 한다.
또한, 본 발명의 목적은 모든 연결된 관계들을 포함하는 상기 전송된 데이터의 완전한 재구성을 가능하게 하는 상기 전송된 데이터를 위한 중간 포맷을 제공하는 것이다. 이러한 전송 형식은 랜덤 키 암호(cipher)의 일관된 대체를 통해 원래의 행 식별자들의 보안 마스킹을 지원한다. 그 후, 이러한 임시 키들은 임포팅의 차후 재구성 중에 교체된다.
본 개시서에 따르면, 상기 중간 포맷은 새로운 데이터베이스 및 스톡(stock)에 상기 데이터를 이식(grafting)하면서 상기 원래의 내부 관계 아이덴티티를 보존하는 방식 및 시퀀스로 재구성된다. 이러한 임포팅 프로세스 동안, 상기 방법은 행-열 값들의 특정 대체를 허용하여, 재구성의 변경 및 명시적 분석 없이 새로운 데이터의 복잡한 통합을 허용한다.
본 발명은 소프트웨어(즉, 하나 이상의 컴퓨터 프로그램들, 루틴들, 함수들 등)로 구현되는 것으로 의도된다. 따라서 후술되는 바와 같이 본 발명은 컴퓨터, 또는 적어도 하나의 프로세서를 가지고 있고 메모리에 액세스할 수 있는 다른 장치와 같은 기계에서 실행되는 것이 가장 좋을 것이다. 따라서, 본 설명에서는 소프트웨어에서 구현되는 것이 바람직한 "컴포넌트", "서브시스템", "루틴" 등의 용어를 사용할 것이다.
본 발명의 추가 양상들 및 이점들은 첨부 도면들을 참조하여 진행되는 바람직한 실시예들에 대한 다음의 상세한 설명으로부터 명백해질 것이다.
본 개시서의 상기에 언급된 이점들 및 특징들, 그리고 다른 이점들 및 특징들이 얻어질 수 있는 방식을 설명하기 위해, 첨부된 도면들에 도시되어 있는 본 개시서의 특정 실시예들을 참조하여 더욱 자세한 설명이 이어진다. 이러한 도면들은 오직 본 발명의 전형적인 실시예들만을 묘사하는 것이며, 이에 따라 본 발명의 범위를 제한하는 것으로 간주되지 않는다는 것을 이해하며, 첨부된 도면을 사용하여 본 발명의 추가적인 특이성 및 세부내용이 기술되고 설명될 것이다.
도 1은 본 발명에 따른 기능적 구성요소들을 도시한다.
도 2는 도 1에 사용된 데이터 전송기의 기능적 하위 구성요소들을 도시한다.
도 3은 도 1의 데이터 익스포트(export) 단계 동안의 활동 흐름을 도시한다.
도 4는 데이터 익스포트 동안 데이터 행의 인코딩을 도시한다.
도 5는 종속 데이터가 데이터 익스포트 동안 결정되게 하는 프로세스를 도시한다.
도 6은 데이터 익스포트 동안의 이동 가능한(portable) 행 식별자 대체들의 생성을 도시한다.
도 7은 익스포트 데이터를 재구성 가능한 시퀀스로 배열하는 것을 도시한다.
도 8은 도 1의 데이터 전송을 위해 사용된 저장 포맷을 도시한다.
도 9는 데이터 임포트 동안 데이터 행들의 디코딩 및 재구성을 도시한다.
다음의 발명의 상세한 설명은 첨부 도면을 참조한다. 가능하면 도면 및 이하 설명에서는 동일한 참조 번호를 사용하여 동일 또는 유사한 구성요소들을 나타낸다. 명확성과 단순성을 위해 명세서에 실제적인 실시예의 모든 특성이 기재되어 있지는 않다. 하지만, 개발자의 특정한 목적을 달성하기 위해 실제적인 실시예들을 개발하는 단계에서 많은 실시예-특정 결정을 해야만 하는 것이 예상된다. 본 발명의 실시예들이 설명될 것이지만, 관련 기술 분야의 당업자는 본 발명의 기술적 사상 및 범위를 벗어나지 않으면서 변형, 개조 및 다른 구현들이 가능하다는 것을 인지할 것이다. 예를 들어, 도면에 도시된 요소들에 대체, 추가 또는 수정이 이루어질 수 있으며, 그리고 본원에 설명된 방법들은 개시된 방법들에 대해 단계들을 치환, 재정렬 또는 추가함으로써 변형될 수 있다. 따라서, 다음의 발명의 상세한 설명은 본 발명을 한정하지 않는다. 대신에, 본 발명의 적절한 범위는 첨부된 청구 범위에 의해 정의된다.
도 1은 본 방법의 본 실시예의 기능적 구성요소들을 도시한다. 상기 데이터 전송기 컴포넌트(100)는 동일하거나 상이한 기계들 상에서 실행되는 RDBMS 인스턴스들인 소스 데이터베이스(103) 및 타겟 데이터베이스(104) 간의 데이터 이동을 제공한다. 상기 데이터 전송기(100)를 통한 상기 소스 데이터베이스(103)로부터의 데이터 익스포트는 컴퓨터 애플리케이션, 프로그램 라이브러리 루틴, 또는 다른 기계 또는 시스템일 수 있는 소스 클라이언트(101)에 의해 개시되고 지시된다(directed). 이러한 익스포트된 데이터의 상기 타겟 데이터베이스(104)로의 임포트는, 마찬가지로 컴퓨터 애플리케이션, 프로그램 라이브러리 루틴, 또는 다른 기계 또는 시스템일 수 있는 타겟 클라이언트(102)에 의해 개시되고 지시된다. 예시적 실시예에서, 상기 데이터 전송기(100)는 공통 데이터베이스 연결 라이브러리를 통해 다양한 관계형 데이터베이스들과 함께 사용하기 위한 상기 소스 클라이언트(101) 및 타겟 클라이언트(102)로서의 컴퓨터 애플리케이션들에, 응용 프로그램 인터페이스(Application Programming Interface; API) 라이브러리를 통해, 접근 가능하다.
도 2는 도 1에 도시된 데이터 전송기(100)의 기능적 컴포넌트들을 도시한다. 상기 소스 클라이언트(101)는 상기 익스포트 인터페이스(200)로의 액세스를 갖고, 소스 데이터베이스(103) 연결 정보를 포함하여 필요한 파라미터들을 지정한다. 상기 소스 데이터베이스 연결(201)은 상기 소스 데이터베이스(103)와의 연결을 설정할 수 있으며, 그리고 익스포트 단계의 대부분이 이루어지는 상기 익스포트 서브시스템(202)으로의 액세스를 제공한다.
상기 익스포트 서브시스템(202)에 의해 생성된 내부 익스포트 표현을 사용하여, 전송 입력/출력 서브시스템(203)은 상기 소스 클라이언트(101)에게 상기 전송된 데이터를 나타내는 데이터 파일을 제공할 수 있다. 이러한 데이터 파일은 후에 상기 타겟 클라이언트(102)에 의해 임포트 인터페이스(204)를 경유하여 상기 전송 입/출력 서브시스템(203)에게 제공되어, 내부 표현으로 변환된다.
상기 타겟 클라이언트(102)는 상기 임포트 인터페이스(204)로의 액세스를 갖고, 상기 전송 입력/출력 서브시스템(203)에 의해 이전에 생성된 데이터 파일 및 상기 타겟 데이터베이스(104) 내의 재구성을 위해 필요한 파라미터들을 지정한다. 상기 타겟 데이터베이스 연결(205)은 상기 타겟 데이터베이스(104)로의 연결을 설정하며, 그리고 상기 임포트 서브시스템(206)은 상기 전송 입/출력 서브시스템(203)을 통해 형성된 데이터 파일의 내부 표현을 사용하여 상기 데이터를 상기 타겟 데이터베이스(104)에 재구성적으로 임포트하며, 상기 타겟 클라이언트(102)에게 이식 지점(graft point) 정보를 반환한다.
도 3은 데이터 익스포트(export) 단계 동안의 활동 흐름을 도시한다. 시작(300) 시, 상기 익스포트 서브시스템(202)은 초기화하여(301), 필요한 모든 데이터 작업들 및 구성 가능한 변수들을 저장하기 위한 내부 구조들을 형성한다. 예시적 실시예에서, 초기화(301)는 행 익스포트(303) 동안 사용하기 위한 고유 인코딩 키 및 메시지 다이제스트 서비스 생성을 포함한다. 초기화(301) 단계 후, 상기 소스 클라이언트(101)는 익스포트할 초기 행 식별자 및 테이블, 그리고 생략된 테이블들의 옵션의 리스트를 포함하는 파라미터들을 지정한다. 상기 익스포트 단계는 일반적으로 상기 소스 클라이언트(101)에 의한 동작에 응답하여 시작(300)하지만, 필요에 따라 서비스 또는 사용자 응용 프로그램으로서 작동하고 파라미터들을 입력함으로써(302) 능동적으로 익스포팅하지 않으면서 계속 이용 가능할 수 있다.
상기 익스포트 서브시스템(202)의 중앙 루프는 상기 파라미터들(302)에 지정된 초기 행을 익스포팅(303)함으로써 시작한다. 상기 익스포트 프로세스(303)가 익스포팅을 필요로 하는 행이 더 있다(304)고 판단하면, 상기 행 익스포트(303)는 더 이상 행을 익스포팅할 필요가 없어질 때까지 추가 행들에 대해 수행된다. 모든 행들이 익스포팅되면, 그 행들은 임포트 동안 그것들이 순차적으로(progressively) 재구성될 수 있게 할 시퀀스의 리스트로 배열된다(305).
상기 프로세스는 이러한 행 리스트가 외부 저장 포맷으로 변환될 때(306) 종료된다(307). 상기 전송 입력/출력 서브시스템(203)을 통한 이러한 변환은 상기 데이터 파일이 상기 소스 클라이언트(103)에게 제공될 수 있게 한다.
도 4는 상기 데이터 익스포트 프로세스(303) 동안 데이터 행의 인코딩을 도시한다. 인코딩이 시작할 때(400), 상기 행의 테이블 및 식별자(401)는 파라미터들로서 사용된다. 상기 테이블이 무시된다면(402), 상기 행의 익스포트는 생략된다(403). 상기 테이블 및 상기 원형(original) 행 식별자에 대해 추적 가능하고 고유한 부호화된 행 식별자 대체가 형성된다(404). 이러한 인코딩된 식별자가 이미 저장되어 있다면(405), 상기 행의 익스포트는 생략된다(406).
상기 행의 컬럼형 데이터(columnar data)를 상기 소스 데이터베이스(103)로부터 가져온다(407). 상기 행 식별자가 존재하지 않는 것으로 판명되면(408), 상기 행의 익스포트는 생략된다(409). 그렇지 않으면, 상기 컬럼형 데이터는 상기 전송 입/출력 서브시스템(203)을 위해 준비된 내부 표현으로 처리된다(410).
주어진 행과의 관계들이 결정되며(411), 그리고 상기 익스포팅하는 행에 의해 참조되는 각 행이 검사된다(412). 참조된 행이 무시된 테이블로부터 나온 것이라면(413), 더미 값(dummy value)은 임포트 동안 추후 검출을 위해 내부 표현으로 저장된다(414). 그렇지 않다면, 참조된 행은 익스포트되며, 그리고 그것의 결과물인 인코딩된 식별자(또는 그것이 이미 익스포팅되었다면 기존 인코딩된 식별자)는 내부 표현으로 저장된다. 더 많은 참조된 행들이 존재하면(416), 이것들 또한 검사된다(412).
상기 참조된 행 루프가 종료될 때, 그 후 상기 내부 표현은 기존 인코딩된 데이터 및 인코딩된 식별자들의 집합에 저장된다(417). 그 다음, 더 이상 참조하는 행을 익스포팅할 필요가 없을 때까지(420) 상기 익스포팅 행을 참조하는 행들은 검사되며(418), 그러한 참조하는 행들은 익스포팅된다(419). 이러한 프로세스는 참조된 행들의 내부 익스포팅(415) 동안 사용되는 인코딩된 식별자를 반환하며 종료한다(421).
도 5는 종속 데이터가 데이터 익스포트 프로세스(303) 동안 결정되게 하는 프로세스를 도시한다. 프로세스 시작(500) 시, 파라미터로서 테이블 이름이 수신된다(501). 상기 소스 데이터베이스(103)의 메타데이터에 액세스하여, 상기 행의 테이블에 의해 참조되는 모든 테이블들에 대한 관련 열들을 검색한다(502). 상기 참조된 테이블 열이 검사되며(503), 그리고 상기 테이블이 상기 내보내지는 행의 테이블과 동일하다면(504), 그것은 생략되며, 그렇지않다면, 상기 참조된 테이블 열은 종속물들 사이에 포함된다(505). 이 테스트- 및-포함 프로세스는 각각의 참조된 테이블 열에 대해 반복된다(506).
마찬가지로, 상기 내보내지는 테이블을 참조하는 열들은 상기 소스 데이터베이스(103)에서 검색된다(507). 각각의 열은 검사되며(508), 그것이 상기 내보내지는 행과 동일한 테이블의 것이라면 생략되며(509), 그리고 그렇지 않다면, 포함된다(510). 더 이상 남는 열이 없을 때까지 이 과정은 반복되며(511), 그리고 완료된다면 프로세스는 종료된다(512).
도 6은 데이터 익스포트 프로세스(303) 동안의 이동 가능한(portable) 행 식별자 대체들의 생성을 도시한다. 상기 프로세스는 시작하며(600), 그리고 의사-난수 생성기(pseudo random number generator; PRNG) 및 현재 타임스탬프를 사용하여 랜덤 인코딩 키를 생성한다(601). 이러한 인코딩 키는 익스포트 단계에서 모든 행들을 익스포팅하는 동안 유지되지만, 결코 익스포팅된 파일에 보관되거나 상기 임포트 단계로 전송되지 않는다.
인코딩될 행의 행 식별자 및 테이블 이름을 수신 시(602), 상기 테이블 이름, 인코딩 키, 그리고 행 식별자는 함께 결합된다(603). 결과물인 문자 스트링은 MD5 같은 메시지 다이제스트 알고리즘을 위한 입력으로서 사용되어 2진 메시지 다이제스트를 형성한다(604). 그 다음, 이 다이제스트는 Base64 같은 바이너리-대-텍스트 인코더를 사용하여 ASCII 텍스트 형식으로 변환되며(605), 이로써 상기 키 생성을 완료한다(606).
이 프로세스는 동일한 테이블 이름과 행 식별자와 일관되게 동일한 키들을 생성하며, 이로써, 기능적 비교가 가능하다. 그러나 상기 인코딩 키의 처분 시, 원래의 식별자들은 동시에 익스포팅된 많은 키들을 사용하더라도 판단하기가 매우 어렵다.
도 7은 익스포트 데이터를 재구성 가능한 시퀀스로 배열하는 것(305)을 도시한다. 상기 프로세스가 시작할 때(700), 익스포트된 행들은 테이블별로 이전에 누적되어 있으며, 익스포트된 행들을 포함하는 그러한 모든 테이블들은 큐에 부가된다(701). 상기 배열 루프 동안 감소되는 이러한 큐는 테이블들이 비어 있는지에 대해 테스트된다(702). 상기 큐가 비어져 있으면, 상기 배열 프로세스는 종료된다(703).
상기 큐가 비어져있지 않다면, 상기 테이블은 상기 큐로부터 추출되며, 그것에 의해 참조된 모든 테이블들은 새로운 리스트에 부가된다(704). 상기 테이블들의 리스트가 현재 상기 큐에 없는 테이블을 포함한다면, 상기 테이블들은 상기 리스트로부터 제거된다(705). 그 결과물인 리스트가 비어있지 않다면(706), 리스트 테스트는 상기 큐 내에 있는 다음 테이블에 대해 진행된다. 그러나, 상기 리스트가 비어 있다면, 상기 큐로부터의 테이블은 상기 큐로부터 제거되며(707), 그리고 그것의 행들은 결과 리스트 앞에 추가된다(708).
도 8은 도 1의 데이터 전송을 위해 사용된 저장 포맷을 도시한다. 데이터의 전송 표현은 인코딩된 행 식별자(801) 및 테이블 이름(802)을 속성들로서 포함한 데이터 행들(800)을 통해 제공된다. 추가적으로, 데이터 행(800)은 튜플(tuple)들의 세 개의 집합들을 포함한다.
그러한 집합 중 제1 집합은 "정수" 같은, 설명적인(descriptive) 열 유형에 대해 테이블 열 이름(804)을 매핑하는 데이터 열 유형들의 집합(803)이다. 제2 집합은 정수값 같은 원시 데이터(808)에 테이블 열 이름들(807)을 매핑하는 데이터 열들(806)이다. 최종 제3 집합은 도 6을 통해 생성된 인코딩된 행 식별자들(811)에 매핑된 테이블 열 이름들(810)을 포함하는 상기 참조 열들(809)이다.
이러한 데이터 행들(800)은 데이터 테이블들(812)로서 알려진 단순한 이름의 리스트들로 그들의 데이터베이스 테이블마다 함께 그룹화된다. 도 7에서 배열된 이것들의 데이터 테이블들(812)의 재구성 가능한 시퀀스들(305)은 상기 전송 입력/출력 서브시스템(203)에서 사용되는 전송 가능한 데이터 파일들의 기반이다. 예시적 실시예에서, 이러한 데이터 테이블들(812)은 이진 XML로 직렬화되며, 그리고 LZ77 및 Huffman 코딩을 사용하여 압축된다. 이러한 단계들은 상기 배열된 데이터 테이블들(812)을 재생성하기 위해 임포트 전에 순서가 뒤집어진다(reversed).
도 9는 데이터 임포트 단계 동안 동작의 흐름을 도시한다. 시작시(900), 상기 임포트 서브시스템(206)은 차후 매칭을 위해 이식(grafting) 루트 테이블뿐만 아니라, 임포트 동안 여러 "이식 지점들"을 연결하는데 사용될 (테이블-열-id 3요소로 저장된) 옵션의 교체 열 식별자들을 수용한다(901). 테이블들(812)의 배열된 리스트가 추출되며(902), 그리고 상기 제1 테이블이 검사된다(903). 상기 테이블의 행들은 열거되며, 그 다음, 각각의 행은 분석되어(904), 상기 타겟 데이터베이스(104)를 위한 적절한 SQL 데이터베이스 명령을 형성한다(905).
각각의 행렬이 검사되고(906) 그리고 열이 데이터 열(806)인지 여부에 대해 테스트된(907) 후, 상기 원시 값(808)은 상기 열 유형(805)에 따라 SQL 연산에 내장된다. 상기 열이 대신에 참조 열(809)일 때, 특정 열은 이전에 제공된(901) 교체 식별자와 일치하는지 검사되며(909), 발견된다면 상기 교체 식별자를 SQL에 내장한다(911). 그렇지 않다면, 상기 인코딩된 식별자는 상기 타겟 데이터베이스(104)에 의해 새롭게 생성된 행 식별자를 찾기 위해 매칭(디코딩)되며, 이러한 새로운 식별자는 SQL 명령에 내장된다(910).
상기 열을 위한 SQL을 준비한 후, 열들이 더 남아있다면 이 프로세스가 반복된다(912). 모든 열들에 대한 SQL이 준비된 후, 상기 SQL 문은 상기 타겟 데이터베이스(104)에 대해 실행되며, 그리고 결과로 새롭게 생성된 행 식별자는 그것들의 관계가 표시됨에 따라(910) 나중에 사용하기 위해 기록된다(914). 상기 데이터베이스 행 생성은 상기 테이블 내의 모든 행들에 대해 반복되며(915), 각각의 순차적 테이블에 대해 계속하여(916), 완전히 새로운 행 식별자들 세트를 사용하여 상기 소스 데이터베이스(103) 내 데이터를 재구성한다. 상기 프로세스는 참조번호 901에서 제공된 루트 테이블을 위한 새로운 행 식별자를 반환함으로써 종료한다(917).
컴퓨터 프로그램 저장
위에서 설명한 바와 같이, 바람직하게는, 본 발명은 컴퓨터 소프트웨어(또한 "컴퓨터 프로그램" 또는 "코드"로서도 알려짐; 우리는 이 용어들을 상호 교환적으로 사용함)에서 실행 또는 구현된다. 디지털 프로세서에 의해 판독될 수 있는 디지털 메모리에 저장될 때에는 프로그램 또는 코드가 가장 유용하다. 우리는 상기 유형의 메모리 뿐 만 아니라 장래에 개발될 수 있는 새로운 기술 모두 포함하기 위해 "컴퓨터 판독 가능 저장 매체" 란 용어 (또는 "기계 판독 가능 저장 매체"로 대체) 또는 그 밖에 다른 용어를 사용한다. 즉, 메모리는 컴퓨터 프로그램이나 다른 데이터 유형에 디지털 정보를 적어도 일시적으로라도 저장할 수 있으면 되고, 저장된 정보가 적절한 디지털 프로세서에 의해 "읽어"질 수 있는 방법이면 된다. "컴퓨터로 판독 가능"이란 용어로, 완성된 메인 프레임, 미니-컴퓨터, 데스크탑 또는 노트북 컴퓨터 등을 함축하기 위해 "컴퓨터"의 의미를 한정하지 않는다. 그보다 기억 매체가 디지털 프로세서 또는 디지털 컴퓨팅 시스템에 의해 판독 가능 한 것을 의미하는 뜻으로 "컴퓨터"를 사용한다. 이러한 매체는 컴퓨터 또는 프로세서에 의해 로컬 및/또는 원격으로 액세스 될 수 있는 임의의 이용 가능한 매체일 수 있으며, 비휘발성과 휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 경우에 따라, 예를 들어 단순한 텍스트 문서 또는 "플랫 파일"의 경우, 디지털 컴퓨팅 시스템은 파일을 이동시키고, 복사하고, 삭제하고, 이메일링하고, 바이러스를 위해 스캐닝하는 등의 관점에서만 상기 파일을 "읽을" 수 있을 것이다. 즉, 상기 파일은 특정 컴퓨팅 시스템에서 실행가능하지 않을 수 있다(그러나 상기 파일은 상이한 프로세서 또는 컴퓨팅 시스템 또는 플랫폼 상에서 실행 가능할 수 있다).
컴퓨터 프로그램 제품
프로그램이 컴퓨터 판독 가능한 기억 매체에 저장되어 있는 경우, 그 기억 매체를 컴퓨터 프로그램 제품으로서 지칭할 수 있다. 예를 들어, 휴대용 디지털 저장 매체는 컴퓨터 프로그램을 저장, 운반(transport)(전달, 구매, 판매, 라이센스) 하기 위한 편리한 수단으로 사용할 수 있다. 과거에 패키지(압축) 프로그램의 소매 판매를 위해 이 방법이 이루어졌다. 이러한 저장 매체는 CD-ROM 및 이와 유사한 것 등으로 제한하지 않는다. 컴퓨터 프로그램 제품의 예로, 저장된 컴퓨터 프로그램을 포함하는 CD-ROM을 들 수 있다.
본 발명의 근본적인 원리로부터 벗어나지 않고 전술한 실시예들의 세부사항을 변경할 수 있다는 것은 해당 분야 기술자에게 자명하다. 따라서 본 발명의 범위는 다음의 청구 범위에 의해 결정되어야 한다.

Claims (20)

  1. 소스 관계형 데이터베이스 관리 시스템(relational database management system; RDBMS) 내의 데이터 테이블에 액세스하는 단계;
    상기 테이블의 행을 선택하는 단계;
    익스포트를 위해 상기 행을 인코딩하는 단계로서,
    상기 행의 종속 데이터를 결정하는 단계;
    이동 가능한 행 식별자 대체들을 생성하는 단계; 및
    배제하도록 지정된 테이블에 저장된 종속 데이터를 제외하고, 상기 행에 참조된 상기 행 데이터 및 임의의 종속 데이터를 수집하여 익스포트 데이터를 형성하는 단계를 포함하는, 단계;
    원형 행 식별자들 대신에 상기 이동 가능한 행 식별자 대체들을 이용하여 상기 익스포트 데이터를 재구성 가능한 시퀀스로 배열하는 단계; 그리고 그 다음
    상기 시퀀스에 따라 상기 익스포트 데이터를 타겟 데이터베이스에 임포트하는 단계를 포함하되,
    상기 익스포트를 위해 상기 행을 인코딩하는 단계는 :
    익스포트를 위한 데이터 내 상기 원형 행 식별자들에 대응하는 이동 가능한 행 식별자들의 고유한 안전한 목록을 생성하는 단계;
    익스포트할 초기 행 식별자 및 테이블을 포함하여 소스 클라이언트로부터 파라미터들을 수신하는 단계;
    익스포트를 위한 상기 초기 행을 인코딩하는 단계;
    익스포트가 필요한 행이 더 이상 없을 때까지 추가 행들을 익스포팅하는 단계를 반복하는 단계로서, 참조되는 행과 참조하는 행이 바닥에 놓아지는, 단계;
    순차적 재구성을 위해 상기 익스포트된 행들을 순서대로 리스트에 정렬하는 단계; 및
    상기 행들의 리스트를 외부 저장 포맷으로 변환하는 단계를 포함하며,
    상기 익스포트를 위해 상기 행을 인코딩하는 단계는 :
    익스포트 매개변수들이 대응 테이블을 무시한다는 것을 나타내는 경우 상기 행의 익스포트를 건너뛰는 단계;
    상기 테이블 및 상기 원형(original) 행 식별자에 대해 추적 가능하고 고유한 부호화된 행 식별자를 형성하는 단계;
    상기 인코딩된 식별자가 사용되는 경우, 상기 행의 익스포트를 건너뛰는 단계;
    소스 데이터베이스로부터 상기 익스포트를 위한 행의 컬럼형 데이터(columnar data)를 가져오는 단계;
    상기 컬럼형 데이터를 내부 표현으로 처리하는 단계;
    상기 익스포트를 위한 행과의 관계들을 결정하는 단계;
    상기 익스포트를 위한 행에 의해 참조되는 각 행을 검사하고, 그리고 각각의 참조된 행에 대해, 참조된 행이 무시된 테이블로부터 나온 것이라면, 임포트 동안 추후 검출을 위해 더미 값(dummy value)을 내부 표현으로 저장하며, 그렇지 않다면, 상기 행을 익스포트하고 그리고 대응하는 인코딩된 행 식별자를 내부 표현으로 저장하는 단계;
    상기 익스포트를 위한 행을 참조하는 각 행을 검사하는 단계; 및
    상기 각각의 참조하는 행(referencing row)을 익스포팅하는 단계를 포함하는, 컴퓨터-구현 방법.
  2. 청구항 1에 있어서,
    상기 방법은 익스포트를 위한 종속 데이터를 결정하는 단계를 더 포함하며,
    상기 결정하는 단계는, 각각의 익스포트를 위한 행에 대해 :
    상기 익스포트를 위한 행의 테이블 이름을 파라미터로서 수신하는 단계;
    상기 익스포트를 위한 행의 테이블에 의해 참조되는 모든 테이블들에 대한 열들을 검색하기 위해 상기 소스 데이터베이스의 메타데이터에 액세스하는 단계;
    상기 참조된 테이블 열을 검사하고, 그리고 상기 테이블이 상기 익스포트를 위한 행의 테이블과 동일하다면 상기 열을 건너뛰며, 그렇지 않다면, 상기 열을 상기 종속 데이터 사이에 포함하는 단계를 포함하는, 컴퓨터-구현 방법.
  3. 청구항 2에 있어서,
    상기 익스포트를 위한 행의 테이블을 참조하는 모든 테이블들에 대한 선택된 열들을 검색하기 위해 상기 소스 데이터베이스의 메타데이터에 액세스하는 단계;
    각각의 참조하는 테이블 열에 대해, 상기 참조하는 테이블 열을 검사하고, 그리고 상기 테이블이 상기 익스포트를 위한 행의 테이블과 동일하다면, 상기 열을 건너뛰고, 그렇지 않다면, 상기 열을 상기 종속 데이터 사이에 포함하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  4. 청구항 1에 있어서,
    상기 이동 가능한 행 식별자 대체들을 생성하는 단계는 :
    인코딩 키를 생성하는 단계;
    상기 익스포트 단계에서 모든 행들을 익스포팅하는 동안 상기 인코딩 키를 영구적으로 유지하는 단계; 및
    보안을 위해 상기 익스포트된 파일에서 상기 인코딩 키를 제외시키는 단계를 포함하는, 컴퓨터-구현 방법.
  5. 청구항 4에 있어서,
    상기 인코딩 키는 의사-난수 생성기(pseudo random number generator; PRNG)를 사용하여 생성되는, 컴퓨터-구현 방법.
  6. 청구항 4에 있어서,
    상기 인코딩 키는 의사-난수 생성기(pseudo random number generator; PRNG) 및 현재 타임스탬프를 사용하여 생성되는, 컴퓨터-구현 방법.
  7. 청구항 3에 있어서,
    상기 익스포트를 위해 행을 인코딩하는 단계는 :
    상기 익스포트를 위한 행의 테이블 이름, 인코딩 키 및 행 식별자를 함께 결합하여 문자 스트링을 형성하는 단계; 및
    이진 메시지 다이제스트(binary message digest)를 형성하기 위해 메시지 다이제스트 프로세스에 대한 입력으로서 상기 문자 스트링을 사용하는 단계; 그리고 그 다음
    상기 키 생성을 완료하기 위해 바이너리-대-텍스트 인코더를 사용하여 상기 이진 메시지 다이제스트를 ASCII 텍스트 형식으로 변환하는 단계를 포함하는, 컴퓨터-구현 방법.
  8. 청구항 2에 있어서,
    상기 방법은 상기 타겟 데이터베이스 내 데이터의 상기 인코딩된 행들을 재구성하는 단계를 더 포함하는, 컴퓨터-구현 방법.


  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020167032265A 2014-05-20 2015-02-26 관계형 데이터 전송 방법 KR101801865B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/282,387 2014-05-20
US14/282,387 US9460174B2 (en) 2014-05-20 2014-05-20 Method for transporting relational data
PCT/US2015/017763 WO2015178985A1 (en) 2014-05-20 2015-02-26 Method for transporting relational data

Publications (2)

Publication Number Publication Date
KR20170015893A KR20170015893A (ko) 2017-02-10
KR101801865B1 true KR101801865B1 (ko) 2017-11-27

Family

ID=54554477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167032265A KR101801865B1 (ko) 2014-05-20 2015-02-26 관계형 데이터 전송 방법

Country Status (6)

Country Link
US (2) US9460174B2 (ko)
EP (1) EP3146436A4 (ko)
JP (2) JP6208385B2 (ko)
KR (1) KR101801865B1 (ko)
CA (1) CA2949482C (ko)
WO (1) WO2015178985A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102147528B1 (ko) 2019-10-31 2020-08-24 (주)케이아이티원 관계형 데이터베이스를 이용한 테이블, 속성, 관계의 동적 관리시스템 및 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460174B2 (en) 2014-05-20 2016-10-04 IfWizard Corporation Method for transporting relational data
CN109062883B (zh) * 2018-07-18 2022-07-26 平安科技(深圳)有限公司 数据表动态导出方法、装置、计算机设备及存储介质
KR102463665B1 (ko) * 2021-02-18 2022-11-09 (주)알투비솔루션 원격 dbms 테이블간 고성능 테이블 데이터 정합성 검증 시스템
CN113535962B (zh) * 2021-08-04 2024-02-02 城云科技(中国)有限公司 数据入库方法、装置、电子装置、程序产品及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130191650A1 (en) 2012-01-25 2013-07-25 Massachusetts Institute Of Technology Methods and apparatus for securing a database
US20140006342A1 (en) 2012-06-27 2014-01-02 Thomas Love Systems for the integrated design, operation and modification of databases and associated web applications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729730A (en) 1995-03-28 1998-03-17 Dex Information Systems, Inc. Method and apparatus for improved information storage and retrieval system
US6240428B1 (en) * 1997-10-31 2001-05-29 Oracle Corporation Import/export and repartitioning of partitioned objects
US6651074B1 (en) * 1999-12-20 2003-11-18 Emc Corporation Method and apparatus for storage and retrieval of very large databases using a direct pipe
US6490598B1 (en) * 1999-12-20 2002-12-03 Emc Corporation System and method for external backup and restore for a computer data storage system
US6968456B1 (en) 2000-08-08 2005-11-22 Novell, Inc. Method and system for providing a tamper-proof storage of an audit trail in a database
US7548898B1 (en) * 2001-02-28 2009-06-16 Teradata Us, Inc. Parallel migration of data between systems
JP2002351903A (ja) * 2001-05-22 2002-12-06 Toshiba Corp データベース保守装置
TW200500857A (en) 2003-04-09 2005-01-01 Netcell Corp Method and apparatus for synchronizing data from asynchronous disk drive data transfers
JP2005050149A (ja) * 2003-07-29 2005-02-24 Nec Soft Ltd データベース表データの管理方式と方法、データベースシステムとサーバ、端末、及びプログラム
US9058370B2 (en) 2007-02-27 2015-06-16 International Business Machines Corporation Method, system and program product for defining imports into and exports out from a database system using spread sheets by use of a control language
US20130268567A1 (en) * 2012-04-05 2013-10-10 Cover-All Technologies, Inc. System And Method For Updating Slowly Changing Dimensions
WO2013174452A1 (en) 2012-05-24 2013-11-28 Telefonaktiebolaget L M Ericsson (Publ) Meta model driven data export from a database and meta model driven data import to a database
US9460174B2 (en) 2014-05-20 2016-10-04 IfWizard Corporation Method for transporting relational data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130191650A1 (en) 2012-01-25 2013-07-25 Massachusetts Institute Of Technology Methods and apparatus for securing a database
US20140006342A1 (en) 2012-06-27 2014-01-02 Thomas Love Systems for the integrated design, operation and modification of databases and associated web applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102147528B1 (ko) 2019-10-31 2020-08-24 (주)케이아이티원 관계형 데이터베이스를 이용한 테이블, 속성, 관계의 동적 관리시스템 및 방법

Also Published As

Publication number Publication date
US9460174B2 (en) 2016-10-04
JP6367444B2 (ja) 2018-08-01
US9852207B2 (en) 2017-12-26
JP2018014126A (ja) 2018-01-25
US20150339362A1 (en) 2015-11-26
CA2949482A1 (en) 2015-11-26
EP3146436A1 (en) 2017-03-29
JP6208385B2 (ja) 2017-10-04
JP2017521782A (ja) 2017-08-03
EP3146436A4 (en) 2017-04-26
KR20170015893A (ko) 2017-02-10
US20160364386A1 (en) 2016-12-15
CA2949482C (en) 2017-09-05
WO2015178985A1 (en) 2015-11-26

Similar Documents

Publication Publication Date Title
JP6367444B2 (ja) 関係データをトランスポートする方法
US8468291B2 (en) Asynchronous distributed object uploading for replicated content addressable storage clusters
KR101781416B1 (ko) 관련 데이터세트의 처리
US9372941B2 (en) Data processing apparatus and method of processing data
JP5656563B2 (ja) 文書管理システム、文書管理システムの制御方法、プログラム
US8631052B1 (en) Efficient content meta-data collection and trace generation from deduplicated storage
US8667032B1 (en) Efficient content meta-data collection and trace generation from deduplicated storage
US7769719B2 (en) File system dump/restore by node numbering
CN102456051A (zh) 数据库数据导入/导出的方法和装置
CN113656384B (zh) 数据处理方法、分布式数据库系统、电子设备及存储介质
US8538188B2 (en) Method and apparatus for transferring and reconstructing an image of a computer readable medium
CN110909087A (zh) 一种关系型数据库在线ddl修改表结构的方法和装置
CN102624545A (zh) 网管系统的数据备份方法、装置和恢复方法、装置
KR20160050930A (ko) 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체
CN103180848B (zh) 一种用于复制数据的系统和方法
JP2000132435A (ja) 異種データベース管理システム間のデータ整合処理装置
EP3163474A1 (en) A similarity module, a local computer, a server of a data hosting service and associated methods
WO2011128454A1 (en) Storing a directory tree structure
US11954102B1 (en) Structured query language query execution using natural language and related techniques
WO2023276212A1 (ja) ソフトウェア部品更新システム及びソフトウェア部品更新方法
Schneller et al. MySQL admin cookbook
CN117349253A (zh) 多版本文件的去中心化存储系统、方法、设备及存储介质
Shahriar et al. Towards mutation-based testing of column-oriented database queries
Gherabi et al. New technique for duplication the remote databases based on multiagents

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant