KR20180047722A - 컬럼 수준 비정규화를 이용한 데이터 마이그레이션 장치 및 방법 - Google Patents

컬럼 수준 비정규화를 이용한 데이터 마이그레이션 장치 및 방법 Download PDF

Info

Publication number
KR20180047722A
KR20180047722A KR1020160144378A KR20160144378A KR20180047722A KR 20180047722 A KR20180047722 A KR 20180047722A KR 1020160144378 A KR1020160144378 A KR 1020160144378A KR 20160144378 A KR20160144378 A KR 20160144378A KR 20180047722 A KR20180047722 A KR 20180047722A
Authority
KR
South Korea
Prior art keywords
tables
query graph
data
query
relational
Prior art date
Application number
KR1020160144378A
Other languages
English (en)
Other versions
KR101862779B1 (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 광운대학교 산학협력단
Priority to KR1020160144378A priority Critical patent/KR101862779B1/ko
Publication of KR20180047722A publication Critical patent/KR20180047722A/ko
Application granted granted Critical
Publication of KR101862779B1 publication Critical patent/KR101862779B1/ko

Links

Images

Classifications

    • G06F17/303
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • 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
    • G06F17/30587
    • G06F17/30595

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 원자성을 고려한 컬럼 수준 비정규화 방법을 이용하여 관계형 데이터베이스의 데이터를 비관계형 데이터베이스로 마이그레이션하는 데이터 마이그레이션 장치 및 방법을 제안한다. 본 발명에 따른 장치는 관계형 데이터베이스에 저장된 데이터들을 처리하기 위한 제1 질의들로부터 미리 정해진 데이터를 복제하여 얻은 제2 질의들을 기초로 질의 그래프를 생성하는 질의 그래프 생성부; 질의 그래프를 기초로 관계형 스키마를 생성하는 관계형 스키마 생성부; 및 관계형 스키마 및 관계형 스키마와 관련된 워크로드를 기초로 관계형 데이터베이스의 데이터를 비관계형 데이터베이스로 마이그레이션하는 데이터 마이그레이션부를 포함한다.

Description

컬럼 수준 비정규화를 이용한 데이터 마이그레이션 장치 및 방법 {Apparatus and method for data migration using column-level denormalization}
본 발명은 데이터를 마이그레이션(data migration)하는 장치 및 방법에 관한 것이다. 보다 상세하게는 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 비관계형 데이터베이스 관리 시스템(ex. NoSQL)으로 마이그레이션하는 장치 및 방법에 관한 것이다.
관계형 데이터베이스 관리 시스템(RDBMS; Relational Database Management System)에서 비관계형 데이터베이스 관리 시스템(NoSQL; Not Only SQL)으로의 데이터 마이그레이션(data migration)은 데이터 모델, 질의 모델 등이 매우 상이하기 때문에 기존의 데이터 마이그레이션 문제보다 훨씬 더 복잡하다. 이러한 데이터 마이그레이션과 관련하여 대표적인 방법으로 기존의 RDBMS에서 사용하던 스키마를 그대로 이용하는 정규화 방법과 테이블 수준 비정규화 방법이 있다.
정규화 방법은 정규화된 기존의 관계형 스키마를 일대일 대응시켜 NoSQL 스키마로 만드는 방법으로서, 가장 쉬운 마이그레이션 방법이다. 하지만 NoSQL이 조인(join) 연산을 지원하지 않아 애플리케이션 영역에서 처리되어야 하기 때문에, 정규화 방법은 질의 처리 성능이 매우 떨어지는 문제점이 있다. 또한 정규화 방법은 트랜잭션을 위한 원자성을 지원하지 않는 단점도 있다.
테이블 수준 비정규화 방법은 테이블들을 사전에 조인하여 저장해 둠으로써 조인 연산의 개수를 최소화시키는 방법이다. 테이블 수준 비정규화 방법은 RDBMS에서 NoSQL로 데이터 마이그레이션을 수행할 때 정규화 방법보다 선호된다. 테이블 수준 비정규화 방법의 경우, 테이블들에 포함되어 있는 특정 요소(ex. department)가 다른 요소(ex. student)와 일대다(1對多)의 관계를 가지기 때문에 조인에 의해 특정 요소와 관련된 데이터는 중복된다.
조인 연산의 개수가 많은 질의의 경우, 테이블 수준 비정규화 방법이 조인을 최소화하므로 정규화 방법에 비해 좋은 질의 처리 성능을 보인다. 하지만 테이블 수준 비정규화 방법에 따르면, 데이터 중복으로 인해 데이터베이스 크기가 커지고, 업데이트가 느려지며, 조인 연산이 포함되지 않은 질의 처리 성능이 떨어지는 문제점이 있다. 또한 테이블 수준 비정규화 방법은 트랜잭션을 위한 원자성을 지원하지 않는 단점도 있다.
(선행문헌 1) 한국공개특허 제10-2016-0036944호
본 발명은 상기한 문제점을 해결하기 위해 안출된 것으로서, 원자성(atomic aggregates)을 고려한 컬럼 수준 비정규화 방법(column-level denormalization)을 이용하여 관계형 데이터베이스 관리 시스템의 데이터를 비관계형 데이터베이스 관리 시스템으로 마이그레이션하는 데이터 마이그레이션 장치 및 방법을 제안하는 것을 목적으로 한다.
그러나 본 발명의 목적은 상기에 언급된 사항으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명은 상기한 목적을 달성하기 위해 안출된 것으로서, 관계형 데이터베이스에 저장된 데이터들을 처리하기 위한 제1 질의들로부터 미리 정해진 데이터를 복제하여 얻은 제2 질의들을 기초로 질의 그래프(query graph)를 생성하는 질의 그래프 생성부; 상기 질의 그래프를 기초로 관계형 스키마(relational schema)를 생성하는 관계형 스키마 생성부; 및 상기 관계형 스키마 및 상기 관계형 스키마와 관련된 워크로드(workload)를 기초로 상기 관계형 데이터베이스의 데이터를 비관계형 데이터베이스로 마이그레이션(migration)하는 데이터 마이그레이션부를 포함하는 것을 특징으로 하는 데이터 마이그레이션 장치를 제안한다.
바람직하게는, 상기 질의 그래프 생성부는 상기 제1 질의들에서 주키(primary key) 및 상기 주키와 관련된 외래키(foreign key)를 포함하지 않는 술어(predicate)를 상기 미리 정해진 데이터로 이용한다.
바람직하게는, 상기 질의 그래프 생성부는 획득하려는 대상 데이터 집합과 관련된 술어, 또는 상기 대상 데이터 집합을 검색하기 위한 조건과 관련된 술어를 상기 미리 정해진 데이터로 이용한다.
바람직하게는, 상기 질의 그래프 생성부는 상기 제1 질의들에 포함된 테이블(table)의 컬럼(column)을 단위로 상기 미리 정해진 데이터를 결정한다.
바람직하게는, 상기 질의 그래프 생성부는 상기 제2 질의들에 포함된 테이블들 중에서 동일한 이름을 가진 테이블들이 존재하는지 여부를 판단하며, 상기 동일한 이름을 가진 테이블들이 존재하는 것으로 판단되면 튜플 변수(tuple variable)를 기초로 상기 동일한 이름을 가진 테이블들을 구분하여 상기 질의 그래프를 생성한다.
바람직하게는, 상기 질의 그래프 생성부는 상기 제2 질의들에 포함된 테이블들 중에서 선택된 제1 테이블과 제2 테이블이 동일한 트랜잭션(transaction)에서 수정되는지 여부에 따라 상기 제1 테이블과 상기 제2 테이블을 조인(join)하는 에지(edge)를 구분하여 표시하여 상기 질의 그래프를 생성한다.
바람직하게는, 상기 질의 그래프 생성부는 상기 제1 테이블로 주키를 포함하는 테이블을 선택하고, 상기 제2 테이블로 외래키를 포함하는 테이블을 선택한다.
바람직하게는, 상기 관계형 스키마 생성부는 다른 노드들과 동일한 트랜잭션에서 수정되는지 여부를 기초로 선택된 제1 노드를 이용하여 상기 질의 그래프를 수정하며, 수정된 상기 질의 그래프를 기초로 상기 관계형 스키마를 생성한다.
바람직하게는, 상기 관계형 스키마 생성부는 질의 수신 노드들 중에서 다른 노드들과 동일한 트랜잭션에서 수정되지 않는 노드를 상기 제1 노드로 선택한다.
바람직하게는, 상기 관계형 스키마 생성부는 상기 제1 노드를 질의 전송 노드로 하여 질의 수신 노드들 중에 상기 제1 노드와 동일한 트랜잭션에서 수정되지 않는 제2 노드가 존재하는지 여부를 판단하며, 상기 제2 노드가 존재하는 것으로 판단되면 상기 제2 노드의 컬럼을 기초로 상기 질의 그래프를 수정한다.
바람직하게는, 상기 데이터 마이그레이션부는 상기 관계형 스키마에 포함된 테이블들 중에서 동일한 트랜잭션에서 수정되는 테이블들이 존재하는지 여부를 판단하며, 상기 동일한 트랜잭션에서 수정되는 테이블들이 존재하는 것으로 판단되면 상기 동일한 트랜잭션에서 수정되는 테이블들을 통합시켜 상기 관계형 데이터베이스의 데이터를 상기 비관계형 데이터베이스로 마이그레이션한다.
바람직하게는, 상기 데이터 마이그레이션부는 상기 동일한 트랜잭션에서 수정되는 테이블들 중에서 어느 하나의 테이블을 다른 하나의 테이블의 하위 문서(sub-document)로 삽입시켜 상기 동일한 트랜잭션에서 수정되는 테이블들을 통합시킨다.
바람직하게는, 상기 데이터 마이그레이션부는 상기 어느 하나의 테이블로 외래키를 포함하는 테이블을 이용하고 상기 다른 하나의 테이블로 주키를 포함하는 테이블을 이용한다.
바람직하게는, 상기 데이터 마이그레이션부는 상기 어느 하나의 테이블이 상기 다른 하나의 테이블에 삽입될 때 상기 어느 하나의 테이블에서 외래키를 제거한다.
또한 본 발명은 관계형 데이터베이스에 저장된 데이터들을 처리하기 위한 제1 질의들로부터 미리 정해진 데이터를 복제하여 얻은 제2 질의들을 기초로 질의 그래프(query graph)를 생성하는 단계; 상기 질의 그래프를 기초로 관계형 스키마(relational schema)를 생성하는 단계; 및 상기 관계형 스키마 및 상기 관계형 스키마와 관련된 워크로드(workload)를 기초로 상기 관계형 데이터베이스의 데이터를 비관계형 데이터베이스로 마이그레이션(migration)하는 단계를 포함하는 것을 특징으로 하는 데이터 마이그레이션 방법을 제안한다.
바람직하게는, 상기 질의 그래프를 생성하는 단계는 상기 제1 질의들에서 주키(primary key) 및 상기 주키와 관련된 외래키(foreign key)를 포함하지 않는 술어(predicate)를 상기 미리 정해진 데이터로 이용한다.
바람직하게는, 상기 질의 그래프를 생성하는 단계는 획득하려는 대상 데이터 집합과 관련된 술어, 또는 상기 대상 데이터 집합을 검색하기 위한 조건과 관련된 술어를 상기 미리 정해진 데이터로 이용한다.
바람직하게는, 상기 질의 그래프를 생성하는 단계는 상기 제1 질의들에 포함된 테이블(table)의 컬럼(column)을 단위로 상기 미리 정해진 데이터를 결정한다.
바람직하게는, 상기 질의 그래프를 생성하는 단계는 상기 제2 질의들에 포함된 테이블들 중에서 동일한 이름을 가진 테이블들이 존재하는지 여부를 판단하며, 상기 동일한 이름을 가진 테이블들이 존재하는 것으로 판단되면 튜플 변수(tuple variable)를 기초로 상기 동일한 이름을 가진 테이블들을 구분하여 상기 질의 그래프를 생성한다.
바람직하게는, 상기 질의 그래프를 생성하는 단계는 상기 제2 질의들에 포함된 테이블들 중에서 선택된 제1 테이블과 제2 테이블이 동일한 트랜잭션(transaction)에서 수정되는지 여부에 따라 상기 제1 테이블과 상기 제2 테이블을 조인(join)하는 에지(edge)를 구분하여 표시하여 상기 질의 그래프를 생성한다.
바람직하게는, 상기 질의 그래프를 생성하는 단계는 상기 제1 테이블로 주키를 포함하는 테이블을 선택하고, 상기 제2 테이블로 외래키를 포함하는 테이블을 선택한다.
바람직하게는, 상기 관계형 스키마를 생성하는 단계는 다른 노드들과 동일한 트랜잭션에서 수정되는지 여부를 기초로 선택된 제1 노드를 이용하여 상기 질의 그래프를 수정하며, 수정된 상기 질의 그래프를 기초로 상기 관계형 스키마를 생성한다.
바람직하게는, 상기 관계형 스키마를 생성하는 단계는 질의 수신 노드들 중에서 다른 노드들과 동일한 트랜잭션에서 수정되지 않는 노드를 상기 제1 노드로 선택한다.
바람직하게는, 상기 관계형 스키마를 생성하는 단계는 상기 제1 노드를 질의 전송 노드로 하여 질의 수신 노드들 중에 상기 제1 노드와 동일한 트랜잭션에서 수정되지 않는 제2 노드가 존재하는지 여부를 판단하며, 상기 제2 노드가 존재하는 것으로 판단되면 상기 제2 노드의 컬럼을 기초로 상기 질의 그래프를 수정한다.
바람직하게는, 상기 마이그레이션하는 단계는 상기 관계형 스키마에 포함된 테이블들 중에서 동일한 트랜잭션에서 수정되는 테이블들이 존재하는지 여부를 판단하며, 상기 동일한 트랜잭션에서 수정되는 테이블들이 존재하는 것으로 판단되면 상기 동일한 트랜잭션에서 수정되는 테이블들을 통합시켜 상기 관계형 데이터베이스의 데이터를 상기 비관계형 데이터베이스로 마이그레이션한다.
바람직하게는, 상기 마이그레이션하는 단계는 상기 동일한 트랜잭션에서 수정되는 테이블들 중에서 어느 하나의 테이블을 다른 하나의 테이블의 하위 문서(sub-document)로 삽입시켜 상기 동일한 트랜잭션에서 수정되는 테이블들을 통합시킨다.
바람직하게는, 상기 마이그레이션하는 단계는 상기 어느 하나의 테이블로 외래키를 포함하는 테이블을 이용하고 상기 다른 하나의 테이블로 주키를 포함하는 테이블을 이용한다.
바람직하게는, 상기 마이그레이션하는 단계는 상기 어느 하나의 테이블이 상기 다른 하나의 테이블에 삽입될 때 상기 어느 하나의 테이블에서 외래키를 제거한다.
또한 본 발명은 데이터 마이그레이션 방법을 실행시키는 컴퓨터로 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제안한다.
본 발명은 상기한 목적 달성을 위한 구성들을 통하여 다음 효과를 얻을 수 있다.
첫째, 데이터 중복을 감소시킬 수 있다. 이에 따라 테이블 수준 비정규화 방법이 가진 문제점을 해결할 수 있다. 즉 테이블 수준 비정규화 방법을 이용할 때보다 데이터베이스의 크기를 감축시킬 수 있으며, 업데이트 속도와 조인 연산이 포함되지 않은 질의 처리 성능을 향상시킬 수 있다.
둘째, 조인 연산의 개수를 감소시킬 수 있다. 이에 따라 정규화 방법이 가진 문제점을 해결할 수 있다. 즉 정규화 방법을 이용할 때보다 질의 처리 성능을 향상시킬 수 있다.
셋째, 정규화 방법, 테이블 수준 비정규화 방법 등을 이용할 때와 달리 트랜잭션을 위한 원자성을 지원하는 것이 가능해진다.
도 1은 본 발명의 일실시예에 따른 스키마 마이그레이션의 예시도이다.
도 2는 TPC-H 8번 질의에 대한 트랜잭션 질의 그래프를 나타내는 도면이다.
도 3은 본 발명에서 제안하는 원자성을 고려한 스키마 마이그레이션 알고리즘의 결과를 보여주는 도면이다.
도 4는 본 발명의 바람직한 실시예에 따른 데이터 마이그레이션 장치의 내부 구성을 개략적으로 도시한 개념도이다.
도 5는 본 발명의 바람직한 실시예에 따른 데이터 마이그레이션 방법을 개략적으로 도시한 흐름도이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
본 발명은 관계형 데이터베이스 관리 시스템(RDBMS; Relational Database Management System)으로부터 비관계형 데이터베이스 관리 시스템(NoSQL; Not Only SQL)으로의 데이터 마이그레이션(Data migration)에 있어서, 원자성(atomic aggregates)을 고려한 컬럼 수준 비정규화 방법(column-level denormalization)에 관한 것이다.
본 발명에 따르면, 종래 정규화 방법에 비해 조인 연산의 개수를 감소시킬 수 있으며, 종래 비정규화 방법에 비해 데이터 중복을 감소시킬 수 있다. 또한 본 발명에 따르면, 정규화 방법, 비정규화 방법 등 종래의 방법들에 비해 질의 처리 성능을 향상시킬 수 있으며, 트랜잭션을 위한 원자성을 지원하는 것이 가능해진다.
이하 본 발명에서는 먼저 원자성을 고려한 컬럼 수준 비정규화 방법에 대하여 설명하고, 이후 이 방법을 이용하여 관계형 데이터베이스의 데이터를 비관계형 데이터베이스로 마이그레이션하는 방법에 대하여 설명한다. 본 발명에서는 가장 널리 사용되는 문서형 데이터베이스(즉 NoSQL)를 비관계형 데이터베이스의 일례로 들어 데이터를 마이그레이션하는 방법에 대하여 설명한다.
(1) 컬럼 수준 비정규화 방법(Column-level denormalization)
도 1은 본 발명의 일실시예에 따른 스키마 마이그레이션의 예시도이다.
본 발명에서는 RDBMS를 NoSQL로 마이그레이션하는 방법으로 원자성을 고려한 컬럼 수준 비정규화 방법(CLDA; Column-Level Denormalization with Atomicity)을 제안한다. 이 방법은 테이블 수준 비정규화 방법의 단점을 상당히 감소시키고 트랜잭션을 위한 원자성을 지원한다.
CLDA 방법은 모든 데이터를 중복시키는 테이블 수준 비정규화 방법과 달리 특정 컬럼 데이터만을 복제한다. 이에 따라 CLDA 방법은 데이터 중복을 최소화하면서 조인 연산의 개수를 줄인다. CLDA 방법에서 복제되는 특정 컬럼은 비 주키-외래키 조인 술어(non-primary-foreign-key-join predicates)에 나타난 컬럼들이다.
본 발명에서 비 주키-외래키 조인 술어는 다음과 같이 정의된다. 주키-외래키 조인 술어(primary-foreign-key-join predicate)는 주어진 질의(query)에서 주키 컬럼(primary key column) 및 이 주키 컬럼과 관련된 외래키를 포함하는 술어를 말한다. 비 주키-외래키 조인 술어는 이러한 주키-외래키 조인 술어가 아니면서 SQL 문의 FROM 절이나 WHERE 절에 나타난 술어를 의미한다.
다음 예시는 정규화된 스키마에 대한 질의를 나타낸다.
select
s_name
from
Student, Department
where
s_departmentID = d_departmentID
and d_name = 'Computer Engineering';
예를 들어 도 1의 (a)에 도시된 정규화된 관계형 스키마에서 위와 같은 질의가 사용될 경우, 테이블 수준 비정규화 방법은 Department의 모든 컬럼을 복제하지만, CLDA 방법은 도 1의 (b)에 도시된 바와 같이 Department의 d_name만 복제한다. 다음 예시는 CLDA 적용 후의 변경 질의를 나타낸다.
select
s_name
from
Student
where
s_d_name = 'Computer Engineering';
상기에서 보는 바와 같이 CLDA 방법을 적용하면 조인 개수(# of join)가 1개에서 0개로 감소된 것을 확인할 수 있다.
CLDA 방법 적용을 위해 필요한 트랜잭션 질의 그래프(transaction-query graph)는 다음과 같의 정의할 수 있다. 트랜잭션 질의 그래프는 질의에 포함된 테이블들의 관계 및 비 주키-외래키 조인 술어에 나타난 컬럼들을 나타낸 그래프를 말한다.
< 정의 : 트랜잭션 질의 그래프 >
질의 q가 주어졌을 때, q의 트랜잭션 질의 그래프 G = (N, E)의 정의는 다음과 같다:
노드 n ∈ N은 q에 나타난 테이블 t와 같으며 동일한 이름의 테이블들은 튜플 변수(tuple variables)에 의해 구분된다.
노드 n은 테이블 t의 비 주키-외래키 조인 술어에 나타난 컬럼들을 가진다.
에지 e ∈ E는 주키(primary key)를 가지는 테이블 t와 외래키(foreign key)를 가지는 테이블 u 사이의 내부 조인 술어(inner join predicate)에 해당되고, u에서 t로 연결된다. 여기서 t는 u와 다르며, 에지(edge)에는 외래키를 표기한다. 만약 테이블 t와 u가 동일한 트랜잭션(transaction)에서 수정된다면, 에지는 점선으로 표시하고, 다른 경우 실선으로 표시한다.
트랜잭션 질의 그래프는 하위 질의(sub-queries)에서의 상관 조인 술어(correlated join predicates)를 위한 에지는 가지지 않는다.
다음 예시는 비즈니스 상황을 시뮬레이션하는 벤치마크인 TPC-H의 8번 질의(TPC-H Q8)를 나타낸 것이다.
select
o_year,
sum(case
when nation = 'BRAZIL' then volume
else 0
end)/sum(volume) as mkt_share
from
(
select
extract(year from o_orderdate) as o_year,
1_extendedprice * (1-l_discount) as volume,
n2.n_name as nation
from
part, supplier, lineitem, orders, customer,
nation n1, nation n2, region
where
p_partkey = 1_partkey
and s_suppkey = 1_suppkey
and 1_orderkey = o_orderkey
and o_custkey = c_custkey
and c_nationkey = n1.n_nationkey
and n1.n_regionkey = r_regionkey
and r_name = 'AMERICA'
and s_nationkey = n2.n_nationkey
and o_orderdate between
date '1995-01-01' and date '1996-12-31'
and p_type = 'ECONOMY ANODIZED STEEL'
) as all_nations
group by
o_year
order by
o_year;
도 2는 위에서 설명한 TPC-H 8번 질의를 트랜잭션 질의 그래프로 나타낸 것이다. 리전 노드(region node; 110)는 대륙 정보 테이블을 의미하며, 파트 노드(part node; 120)는 부품 정보 테이블을 의미한다. 오더스 노드(orders node; 130)는 주문 정보 테이블을 의미한다. 리전 노드(110), 파트 노드(120) 및 오더스 노드(130)는 비 주키-외래키 조인 술어들을 보여주는 컬럼들을 가진다.
본 발명에서 비 주키-외래키 조인 술어는 주키-외래키 조인 술어가 아니면서 SQL 문의 FROM 절이나 WHERE 절에 나타난 술어를 의미한다. TPC-H 8번 질의에서 WHERE 절의 p_partkey = l_partkey, s_suppkey = l_suppkey 등 주키-외래키 조인 술어를 제외하면, r_name = 'AMERICA', o_orderdate between date '1995-01-01' and data '1996-12-31', p_type = 'ECONOMY ANODIZED STEEL' 등 3개의 술어만 남는다. 따라서 본 발명에서 정의한 비 주키-외래키 조인 술어의 정의에 따라 r_name, o_orderdate, p_type 등의 속성을 가진 region, orders, part 등의 노드들이 비 주키-외래키 조인 술어들을 보여주는 컬럼들을 가지게 된다.
라인아이템 노드(lineitem node; 140)는 품목 정보 테이블을 의미한다. 라인아이템 노드(140) 및 오더스 노드(130)는 동일 트랜잭션 내에서 수정된다.
한편 그 외의 다른 노드들은 다음과 같이 정의된다.
커스터머 노드(customer node) : 고객 정보 테이블을 의미한다.
nation_n1 노드 : 국가 정보 테이블을 의미하며, customer - nation 사이의 조인(join)을 위한 것이다.
서플라이어 노드(supplier node) : 공급자 정보 테이블을 의미한다.
nation_n2 노드 : 국가 정보 테이블을 의미하며, supplier - nation 사이의 조인을 위한 것이다.
도 2에서 정의한 트랜잭션 질의 그래프를 이용하면 컬럼 수준 비정규화 알고리즘을 다음과 같이 나타낼 수 있다.
< 알고리즘 : 컬럼 수준 비정규화 알고리즘 >
입력 : 주어진 워크로드(workload)의 질의 집합 Q
출력 : 비정규화된 관계형 스키마(relational schema)
1. for (각 질의(each query) q ∈ Q) {
2. 질의 q에 대한 트랜잭션 질의 그래프 G(N, E) 생성
3. for (들어오는 실선 에지가 없는 각 노드(each node that has no incoming solid-line edges) n ∈ N) {
4. 실선 에지를 통해 도달 가능한 노드들의 집합 S를 수집
5. for (각 노드 s ∈ S) {
6. 노드 s의 컬럼들(columns)을 테이블 n에 추가
7. }
8. }
9. }
위에서 보는 바와 같이 본 발명에서 제안하는 컬럼 수준 비정규화 알고리즘은 주어진 워크로드(workload)의 각 질의(query)에 대하여 트랜잭션 질의 그래프(transaction-query graph)를 생성한다.
또한 컬럼 수준 비정규화 알고리즘은 입력되는 실선 에지(solid-line edge)가 없는 각 노드에 대하여 실선 에지를 통해 도달할 수 있는 노드들의 집합을 찾으며, 이 집합을 구성하는 노드들의 컬럼들(columns)을 특정 테이블에 추가한다.
(2) 원자성(atomic aggregates)을 기초로 하는 스키마 마이그레이션 알고리즘(schema migration algorithm)
위에서 정의한 컬럼 수준 비정규화 알고리즘을 이용하여 관계형 스키마를 생성할 경우, 이 비정규화된 관계형 스키마는 원자성이 고려되지 않은 상태이다. 따라서 추가적으로 원자성을 고려한 스키마 마이그레이션이 필요하다.
만약 두 테이블이 동일한 트랜잭션에서 수정된다면, 두 테이블을 하나로 통합해야 원자성을 지원할 수 있다. 원자성을 고려한 스키마 마이그레이션 알고리즘은 다음과 같다.
< 알고리즘 : 원자성을 고려한 스키마 마이그레이션 알고리즘 >
입력 : 컬럼 수준 비정규화 알고리즘의 결과로 생성된 비정규화된 관계형 스키마 RS, RS에 대한 워크로드(workload)
출력 : MongoDB 스키마
1. for (RS에 포함된 각 테이블 t) {
2. if (RS에 포함된 어떤 테이블 u가 t와 동일한 트랜잭션에서 수정될 경우) {
3. if (u의 외래키가 t의 주키를 참조할 경우) {
4. t에 대한 콜렉션 ct를 생성
5. u를 ct의 하위 문서(subdocuments)의 배열(array)로 끼워 넣음
6. u의 외래키를 제거
7. }
8. else if (t의 외래키가 u의 주키를 참조할 경우) {
9. u에 대한 콜렉션 cu를 생성
10. t를 cu의 하위 문서의 배열로 끼워 넣음
11. t의 외래키를 제거
12. }
13. else {
14. t에 대한 콜렉션(collection) ct를 생성
15. u에 대한 콜렉션 cu를 생성
16. }
17. RS에서 u 집합을 제거
18. }
19. else {
20. t에 대한 콜렉션 ct를 생성
21. }
22. }
위의 스키마 마이그레이션 알고리즘은 가장 널리 쓰이는 NoSQL 시스템인 MongoDB에 관한 것이나, 다른 NoSQL 시스템에도 적용될 수 있다.
본 발명에서 제안하는 컬럼 수준 비정규화 알고리즘을 이용하여 생성된 관계형 스키마에 역시 본 발명에서 제안하는 스키마 마이그레이션 알고리즘을 적용하면, 원자성을 고려한 컬럼 수준 비정규화 스키마가 MongoDB에 적합한 형태로 생성된다.
만약 테이블 t의 로우 r1이 주키를 가지고 있고 다른 테이블 u에서 r1을 외래키로 참조할 때, 원자성을 지원하기 위해서는 t의 r1 삭제 시 r1을 참조하는 u의 로우도 삭제해야 한다. 이를 위해 테이블 t의 콜렉션 c1에 테이블 u를 하위 문서의 배열로 끼워 넣음으로써 원자성을 지원할 수 있다. 결과적으로 같은 트랜잭션에서 다른 테이블을 수정할 필요가 없도록 콜렉션을 생성하여 원자성을 지원하는 것이 가능해진다.
본 발명에서 제안하는 마이그레이션 알고리즘은 관계형 스키마를 일대일 대응시켜 NoSQL 스키마로 생성함으로써 종래의 정규화 방법에 비해 조인 연산의 개수를 감소시키는 효과를 얻을 수 있다. 또한 본 발명에서 제안하는 마이그레이션 알고리즘은 데이터 중복을 감소시킴으로써 종래의 정규화 방법과 종래의 테이블 수준 비정규화 방법에 비해 질의 처리 성능을 향상시킬 수 있으며, 트랜잭션을 위한 원자성을 지원하는 것이 가능해진다.
도 3은 본 발명에서 제안하는 알고리즘 즉, 원자성을 고려한 스키마 마이그레이션 알고리즘의 결과를 보여주는 도면이다. 본 발명에서 제안하는 스키마 마이그레이션 알고리즘은 TPC-H 벤치마크(benchmark)를 위한 것으로서, 라인아이템 테이블(lineitem table; 210)과 오더스 테이블(order table)을 결합하여 하나의 콜렉션(collection)을 생성할 때 도 3에 도시된 바와 같이 라인아이템 테이블(210)을 오더스 테이블의 콜렉션(220)에 하위 문서의 배열(array of subdocuments)로 삽입함으로써 원자성을 지원하는 것이 가능해지도록 한다. 또한 스키마 마이그레이션 알고리즘은 파트서프 테이블(partsupp table), 파트 테이블(part table), 서플라이어 테이블(supplier table), 커스터머 테이블(customer table), 네이션 테이블(nation table), 리전 테이블(region table) 등 다른 테이블들 각각에 대하여 콜렉션을 생성한다.
이상 설명한 본 발명은 데이터 마이그레이션(data migration) 분야, MySQL, MongoDB 등 데이터베이스 관리 시스템 분야 등에 적용될 수 있다. 특히 본 발명은 지능적 데이터 마이그레이션의 구현을 통해 IoT(Internet of Things; 사물인터넷) 환경에 효과적으로 적용될 수 있다.
이상 도 1 내지 도 3을 참조하여 본 발명의 일실시 형태에 대하여 설명하였다. 이하에서는 이러한 일실시 형태로부터 추론 가능한 본 발명의 바람직한 형태에 대하여 설명한다.
도 4는 본 발명의 바람직한 실시예에 따른 데이터 마이그레이션 장치의 내부 구성을 개략적으로 도시한 개념도이다.
도 4에 따르면, 데이터 마이그레이션 장치(300)는 질의 그래프 생성부(310), 관계형 스키마 생성부(320), 데이터 마이그레이션부(330), 전원부(340) 및 주제어부(350)를 포함한다.
전원부(340)는 데이터 마이그레이션 장치(300)를 구성하는 각 구성에 전원을 공급하는 기능을 수행한다.
주제어부(350)는 데이터 마이그레이션 장치(300)를 구성하는 각 구성의 전체 작동을 제어하는 기능을 수행한다.
질의 그래프 생성부(310)는 관계형 데이터베이스에 저장된 데이터들을 처리하기 위한 제1 질의들로부터 미리 정해진 데이터를 복제하여 얻은 제2 질의들을 기초로 질의 그래프(query graph)를 생성하는 기능을 수행한다.
질의 그래프 생성부(310)는 제1 질의들에서 주키(primary key) 및 이 주키와 관련된 외래키(foreign key)를 포함하지 않는 술어(predicate)를 미리 정해진 데이터로 이용할 수 있다.
질의 그래프 생성부(310)는 획득하려는 대상 데이터 집합과 관련된 술어, 또는 대상 데이터 집합을 검색하기 위한 조건과 관련된 술어를 미리 정해진 데이터로 이용할 수 있다. 상기에서 획득하려는 대상 데이터 집합과 관련된 술어는 예컨대 SQL 문의 FROM 절에 나타난 술어를 의미하며, 대상 데이터 집합을 검색하기 위한 조건과 관련된 술어는 예컨대 SQL 문의 WHERE 절에 나타난 술어를 의미한다.
질의 그래프 생성부(310)는 제1 질의들에 포함된 테이블(table)의 컬럼(column)을 단위로 미리 정해진 데이터를 이용할 수 있다.
질의 그래프 생성부(310)는 제2 질의들에 포함된 테이블들 중에서 동일한 이름을 가진 테이블들이 존재하는지 여부를 판단하며, 동일한 이름을 가진 테이블들이 존재하는 것으로 판단되면 튜플 변수(tuple variable)를 기초로 동일한 이름을 가진 테이블들을 구분하여 질의 그래프를 생성할 수 있다.
질의 그래프 생성부(310)는 제2 질의들에 포함된 테이블들 중에서 선택된 제1 테이블과 제2 테이블이 동일한 트랜잭션(transaction)에서 수정되는지 여부에 따라 제1 테이블과 제2 테이블을 조인(join)하는 에지(edge)를 구분하여 표시하여 질의 그래프를 생성할 수 있다.
질의 그래프 생성부(310)는 제1 테이블로 주키를 포함하는 테이블을 선택하고, 제2 테이블로 외래키를 포함하는 테이블을 선택할 수 있다.
관계형 스키마 생성부(320)는 질의 그래프 생성부(310)에 의해 생성된 질의 그래프를 기초로 관계형 스키마(relational schema)를 생성하는 기능을 수행한다.
관계형 스키마 생성부(320)는 다른 노드들과 동일한 트랜잭션에서 수정되는지 여부를 기초로 선택된 제1 노드를 이용하여 질의 그래프를 수정하며, 수정된 질의 그래프를 기초로 관계형 스키마를 생성할 수 있다.
관계형 스키마 생성부(320)는 질의 수신 노드들 중에서 다른 노드들과 동일한 트랜잭션에서 수정되지 않는 노드를 제1 노드로 선택할 수 있다.
관계형 스키마 생성부(320)는 제1 노드를 질의 전송 노드로 하여 질의 수신 노드들 중에 제1 노드와 동일한 트랜잭션에서 수정되지 않는 제2 노드가 존재하는지 여부를 판단하며, 제2 노드가 존재하는 것으로 판단되면 제2 노드의 컬럼을 기초로 질의 그래프를 수정할 수 있다.
데이터 마이그레이션부(330)는 관계형 스키마 생성부(320)에 의해 생성된 관계형 스키마 및 이 관계형 스키마와 관련된 워크로드(workload)를 기초로 관계형 데이터베이스의 데이터를 비관계형 데이터베이스로 마이그레이션(migration)하는 기능을 수행한다.
데이터 마이그레이션부(330)는 비관계형 데이터베이스로 NoSQL(Not Only SQL)을 이용할 수 있다.
데이터 마이그레이션부(330)는 관계형 스키마에 포함된 테이블들 중에서 동일한 트랜잭션에서 수정되는 테이블들이 존재하는지 여부를 판단하며, 동일한 트랜잭션에서 수정되는 테이블들이 존재하는 것으로 판단되면 동일한 트랜잭션에서 수정되는 테이블들을 통합시켜 관계형 데이터베이스의 데이터를 비관계형 데이터베이스로 마이그레이션할 수 있다.
데이터 마이그레이션부(330)는 동일한 트랜잭션에서 수정되는 테이블들 중에서 어느 하나의 테이블을 다른 하나의 테이블의 하위 문서(sub-document)로 삽입시켜 동일한 트랜잭션에서 수정되는 테이블들을 통합시킬 수 있다.
데이터 마이그레이션부(330)는 어느 하나의 테이블로 외래키를 포함하는 테이블을 이용하고 다른 하나의 테이블로 주키를 포함하는 테이블을 이용할 수 있다.
데이터 마이그레이션부(330)는 어느 하나의 테이블이 다른 하나의 테이블에 삽입될 때 어느 하나의 테이블에서 외래키를 제거할 수 있다.
다음으로 데이터 마이그레이션 장치(300)의 작동 방법에 대하여 설명한다.
도 5는 본 발명의 바람직한 실시예에 따른 데이터 마이그레이션 방법을 개략적으로 도시한 흐름도이다. 이하 설명은 도 4 및 도 5를 참조한다.
먼저 질의 그래프 생성부(310)가 관계형 데이터베이스에 저장된 데이터들을 처리하기 위한 제1 질의들로부터 미리 정해진 데이터를 복제하여 얻은 제2 질의들을 기초로 질의 그래프(query graph)를 생성한다(S410).
이후 관계형 스키마 생성부(320)가 질의 그래프 생성부(310)에 의해 생성된 질의 그래프를 기초로 관계형 스키마(relational schema)를 생성한다(S420).
이후 데이터 마이그레이션부(330)가 관계형 스키마 생성부(320)에 의해 생성된 관계형 스키마 및 이 관계형 스키마와 관련된 워크로드(workload)를 기초로 관계형 데이터베이스의 데이터를 비관계형 데이터베이스로 마이그레이션(migration)한다(S430).
이상에서 설명한 본 발명의 실시예를 구성하는 모든 구성요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 기록매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 기록매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 상세한 설명에서 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (19)

  1. 관계형 데이터베이스에 저장된 데이터들을 처리하기 위한 제1 질의들로부터 미리 정해진 데이터를 복제하여 얻은 제2 질의들을 기초로 질의 그래프(query graph)를 생성하는 질의 그래프 생성부;
    상기 질의 그래프를 기초로 관계형 스키마(relational schema)를 생성하는 관계형 스키마 생성부; 및
    상기 관계형 스키마 및 상기 관계형 스키마와 관련된 워크로드(workload)를 기초로 상기 관계형 데이터베이스의 데이터를 비관계형 데이터베이스로 마이그레이션(migration)하는 데이터 마이그레이션부
    를 포함하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  2. 제 1 항에 있어서,
    상기 질의 그래프 생성부는 상기 제1 질의들에서 주키(primary key) 및 상기 주키와 관련된 외래키(foreign key)를 포함하지 않는 술어(predicate)를 상기 미리 정해진 데이터로 이용하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  3. 제 2 항에 있어서,
    상기 질의 그래프 생성부는 획득하려는 대상 데이터 집합과 관련된 술어, 또는 상기 대상 데이터 집합을 검색하기 위한 조건과 관련된 술어를 상기 미리 정해진 데이터로 이용하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  4. 제 1 항에 있어서,
    상기 질의 그래프 생성부는 상기 제1 질의들에 포함된 테이블(table)의 컬럼(column)을 단위로 상기 미리 정해진 데이터를 결정하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  5. 제 1 항에 있어서,
    상기 질의 그래프 생성부는 상기 제2 질의들에 포함된 테이블들 중에서 동일한 이름을 가진 테이블들이 존재하는지 여부를 판단하며, 상기 동일한 이름을 가진 테이블들이 존재하는 것으로 판단되면 튜플 변수(tuple variable)를 기초로 상기 동일한 이름을 가진 테이블들을 구분하여 상기 질의 그래프를 생성하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  6. 제 1 항에 있어서,
    상기 질의 그래프 생성부는 상기 제2 질의들에 포함된 테이블들 중에서 선택된 제1 테이블과 제2 테이블이 동일한 트랜잭션(transaction)에서 수정되는지 여부에 따라 상기 제1 테이블과 상기 제2 테이블을 조인(join)하는 에지(edge)를 구분하여 표시하여 상기 질의 그래프를 생성하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  7. 제 6 항에 있어서,
    상기 질의 그래프 생성부는 상기 제1 테이블로 주키를 포함하는 테이블을 선택하고, 상기 제2 테이블로 외래키를 포함하는 테이블을 선택하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  8. 제 1 항에 있어서,
    상기 관계형 스키마 생성부는 다른 노드들과 동일한 트랜잭션에서 수정되는지 여부를 기초로 선택된 제1 노드를 이용하여 상기 질의 그래프를 수정하며, 수정된 상기 질의 그래프를 기초로 상기 관계형 스키마를 생성하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  9. 제 8 항에 있어서,
    상기 관계형 스키마 생성부는 질의 수신 노드들 중에서 다른 노드들과 동일한 트랜잭션에서 수정되지 않는 노드를 상기 제1 노드로 선택하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  10. 제 8 항에 있어서,
    상기 관계형 스키마 생성부는 상기 제1 노드를 질의 전송 노드로 하여 질의 수신 노드들 중에 상기 제1 노드와 동일한 트랜잭션에서 수정되지 않는 제2 노드가 존재하는지 여부를 판단하며, 상기 제2 노드가 존재하는 것으로 판단되면 상기 제2 노드의 컬럼을 기초로 상기 질의 그래프를 수정하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  11. 제 1 항에 있어서,
    상기 데이터 마이그레이션부는 상기 관계형 스키마에 포함된 테이블들 중에서 동일한 트랜잭션에서 수정되는 테이블들이 존재하는지 여부를 판단하며, 상기 동일한 트랜잭션에서 수정되는 테이블들이 존재하는 것으로 판단되면 상기 동일한 트랜잭션에서 수정되는 테이블들을 통합시켜 상기 관계형 데이터베이스의 데이터를 상기 비관계형 데이터베이스로 마이그레이션하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  12. 제 11 항에 있어서,
    상기 데이터 마이그레이션부는 상기 동일한 트랜잭션에서 수정되는 테이블들 중에서 어느 하나의 테이블을 다른 하나의 테이블의 하위 문서(sub-document)로 삽입시켜 상기 동일한 트랜잭션에서 수정되는 테이블들을 통합시키는 것을 특징으로 하는 데이터 마이그레이션 장치.
  13. 제 12 항에 있어서,
    상기 데이터 마이그레이션부는 상기 어느 하나의 테이블로 외래키를 포함하는 테이블을 이용하고 상기 다른 하나의 테이블로 주키를 포함하는 테이블을 이용하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  14. 제 12 항에 있어서,
    상기 데이터 마이그레이션부는 상기 어느 하나의 테이블이 상기 다른 하나의 테이블에 삽입될 때 상기 어느 하나의 테이블에서 외래키를 제거하는 것을 특징으로 하는 데이터 마이그레이션 장치.
  15. 관계형 데이터베이스에 저장된 데이터들을 처리하기 위한 제1 질의들로부터 미리 정해진 데이터를 복제하여 얻은 제2 질의들을 기초로 질의 그래프(query graph)를 생성하는 단계;
    상기 질의 그래프를 기초로 관계형 스키마(relational schema)를 생성하는 단계; 및
    상기 관계형 스키마 및 상기 관계형 스키마와 관련된 워크로드(workload)를 기초로 상기 관계형 데이터베이스의 데이터를 비관계형 데이터베이스로 마이그레이션(migration)하는 단계
    를 포함하는 것을 특징으로 하는 데이터 마이그레이션 방법.
  16. 제 15 항에 있어서,
    상기 질의 그래프를 생성하는 단계는 상기 제1 질의들에서 주키(primary key) 및 상기 주키와 관련된 외래키(foreign key)를 포함하지 않는 술어(predicate)를 상기 미리 정해진 데이터로 이용하는 것을 특징으로 하는 데이터 마이그레이션 방법.
  17. 제 15 항에 있어서,
    상기 관계형 스키마를 생성하는 단계는 다른 노드들과 동일한 트랜잭션에서 수정되는지 여부를 기초로 선택된 제1 노드를 이용하여 상기 질의 그래프를 수정하며, 수정된 상기 질의 그래프를 기초로 상기 관계형 스키마를 생성하는 것을 특징으로 하는 데이터 마이그레이션 방법.
  18. 제 15 항에 있어서,
    상기 마이그레이션하는 단계는 상기 관계형 스키마에 포함된 테이블들 중에서 동일한 트랜잭션에서 수정되는 테이블들이 존재하는지 여부를 판단하며, 상기 동일한 트랜잭션에서 수정되는 테이블들이 존재하는 것으로 판단되면 상기 동일한 트랜잭션에서 수정되는 테이블들을 통합시켜 상기 관계형 데이터베이스의 데이터를 상기 비관계형 데이터베이스로 마이그레이션하는 것을 특징으로 하는 데이터 마이그레이션 방법.
  19. 제 15 항 내지 제 18 항 중 어느 한 항에 따른 데이터 마이그레이션 방법을 실행시키는 컴퓨터로 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
KR1020160144378A 2016-11-01 2016-11-01 컬럼 수준 비정규화를 이용한 데이터 마이그레이션 장치 및 방법 KR101862779B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160144378A KR101862779B1 (ko) 2016-11-01 2016-11-01 컬럼 수준 비정규화를 이용한 데이터 마이그레이션 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160144378A KR101862779B1 (ko) 2016-11-01 2016-11-01 컬럼 수준 비정규화를 이용한 데이터 마이그레이션 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180047722A true KR20180047722A (ko) 2018-05-10
KR101862779B1 KR101862779B1 (ko) 2018-05-30

Family

ID=62184073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160144378A KR101862779B1 (ko) 2016-11-01 2016-11-01 컬럼 수준 비정규화를 이용한 데이터 마이그레이션 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101862779B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408518A (zh) * 2018-11-07 2019-03-01 郑州云海信息技术有限公司 一种数据存储的方法及装置
KR20210110123A (ko) * 2020-02-28 2021-09-07 (주)시즐 관계형 데이터베이스 구조를 이용한 비관계형 데이터베이스 장치 및 데이터 정형화 방법
CN116483808A (zh) * 2023-06-16 2023-07-25 北京国电通网络技术有限公司 数据迁移方法、装置、电子设备和计算机可读介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102230821B1 (ko) 2018-12-26 2021-03-19 한남대학교 산학협력단 데이터베이스 전환 시스템 및 이를 이용한 데이터베이스 전환 방법
KR102177064B1 (ko) 2019-11-18 2020-11-10 재단법인대구경북과학기술원 다항 조인 연산자를 이용한 쿼리 처리 방법 및 그 장치
KR102453595B1 (ko) 2020-10-20 2022-10-14 (주)퍼스트정보 관계형 데이터베이스 보존 방법 및 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140067781A1 (en) * 2012-08-31 2014-03-06 Scott W. Wolchok Graph Query Language API Querying and Parsing
CN105378721B (zh) * 2013-03-15 2019-02-19 比乌拉工厂有限公司 知识捕获和发现系统
EP2963563A1 (en) 2014-06-30 2016-01-06 Fujitsu Limited Computing apparatus and method for managing a graph database

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408518A (zh) * 2018-11-07 2019-03-01 郑州云海信息技术有限公司 一种数据存储的方法及装置
KR20210110123A (ko) * 2020-02-28 2021-09-07 (주)시즐 관계형 데이터베이스 구조를 이용한 비관계형 데이터베이스 장치 및 데이터 정형화 방법
CN116483808A (zh) * 2023-06-16 2023-07-25 北京国电通网络技术有限公司 数据迁移方法、装置、电子设备和计算机可读介质
CN116483808B (zh) * 2023-06-16 2023-09-12 北京国电通网络技术有限公司 数据迁移方法、装置、电子设备和计算机可读介质

Also Published As

Publication number Publication date
KR101862779B1 (ko) 2018-05-30

Similar Documents

Publication Publication Date Title
KR101862779B1 (ko) 컬럼 수준 비정규화를 이용한 데이터 마이그레이션 장치 및 방법
US9639567B2 (en) For all entries processing
CN102929878B (zh) 一种数据库变更管理方法及装置
US10572484B2 (en) Duplicate reduction or elimination with hash join operations
US20160055233A1 (en) Pre-join tags for entity-relationship modeling of databases
JP6059273B2 (ja) データベースクエリを修正する方法、コンピュータ可読記憶媒体及びシステム
Parker et al. Comparing nosql mongodb to an sql db
US10671671B2 (en) Supporting tuples in log-based representations of graph databases
US9286393B2 (en) Performing a function on rows of data determined from transitive relationships between columns
US10628492B2 (en) Distributed graph database writes
US10261950B2 (en) Table as query language parameter
AU2005239366A1 (en) Partial query caching
EP3159815A1 (en) Database hierarchy-independent data drilling
US20180357278A1 (en) Processing aggregate queries in a graph database
Kim et al. Migration from RDBMS to column-oriented NoSQL: lessons learned and open problems
Van Hieu et al. MapReduce join strategies for key-value storage
US20180357328A1 (en) Functional equivalence of tuples and edges in graph databases
US11093504B2 (en) Server-side cross-model measure-based filtering
Chellappan et al. MongoDB Recipes: With Data Modeling and Query Building Strategies
US10817507B2 (en) Document store export/import
de Castro Lima et al. Multidimensional cyclic graph approach: representing a data cube without common sub-graphs
de Espona Pernas et al. Automatic indexing for mongodb
US20190065538A1 (en) Database column refresh via replacement
Al Sarkhi et al. A scalable, hybrid entity resolution process for unstandardized entity references
Kashyap et al. A review of leading databases: Relational & non-relational database

Legal Events

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