KR101545216B1 - 데이터 모델링 방법 및 장치 - Google Patents

데이터 모델링 방법 및 장치 Download PDF

Info

Publication number
KR101545216B1
KR101545216B1 KR1020130162097A KR20130162097A KR101545216B1 KR 101545216 B1 KR101545216 B1 KR 101545216B1 KR 1020130162097 A KR1020130162097 A KR 1020130162097A KR 20130162097 A KR20130162097 A KR 20130162097A KR 101545216 B1 KR101545216 B1 KR 101545216B1
Authority
KR
South Korea
Prior art keywords
attribute
entity
format
selecting
data model
Prior art date
Application number
KR1020130162097A
Other languages
English (en)
Other versions
KR20150074376A (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 KR1020130162097A priority Critical patent/KR101545216B1/ko
Publication of KR20150074376A publication Critical patent/KR20150074376A/ko
Application granted granted Critical
Publication of KR101545216B1 publication Critical patent/KR101545216B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion

Landscapes

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

Abstract

개시되는 실시예에 따르면, 하나 또는 복수의 속성(attribute)을 포함하는 엔티티(entity)를 정의하는 관계형 데이터 모델(relational data model)과 상기 엔티티와 연관된 사용 패턴을 정의하는 서술자(descriptor)를 획득하는 단계; 상기 서술자에 기반하여, 상기 관계형 데이터 모델로부터 식별되는 상기 하나 또는 상기 복수의 속성 각각을 비관계형 데이터 모델(non-relational data model)에서 표현하기 위한 포맷을 기 설정된 포맷들 중에서 선택하는 단계; 및 상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 엔티티를 식별하기 위한 키(key)의 유형을 기 설정된 유형들 중에서 선택하는 단계를 포함하는 데이터 모델링 방법이 제공된다.

Description

데이터 모델링 방법 및 장치{METHOD AND APPARATUS FOR DATA MODELING}
본 발명의 실시예들은 데이터 모델링 방법 및 장치에 관한 것이다.
데이터 모델은 데이터의 저장 방식 및 액세스 방식을 기술한다. 특히, 데이터베이스의 구축을 위해서는 적절한 데이터 모델이 정의되는 것이 필요하다. 기존의 지배적인 데이터베이스는 관계형 데이터 모델(relational data model)을 기반으로 하였다. 최근 NoSQL(Not Only SQL)과 같은 비관계형(non-relational) 데이터베이스가 관계형 데이터베이스의 취약점을 해결하기 위해 등장하였다. 특히, 기존의 관계형 데이터베이스는 엄청난 양의 데이터(예컨대, 빅 데이터)를 처리하는 데에서 속도가 빠르지 않고 확장성 역시 제한되기 때문이다. 이러한 제약 요소를 극복하기 위해 비관계형 데이터 모델에 대한 수요가 급증하고 있으나, 비관계형 데이터 모델을 구축하기 위한 기법 역시 더욱 향상될 여지가 있다.
대한민국 공개특허공보 제10-2012-0078908호 (2012. 07. 11.)
본 발명의 실시예들은 관계형 데이터 모델을 기반으로 비관계형 데이터 모델링을 구축할 수 있는 데이터 모델링 방법 및 장치를 제공하기 위한 것이다.
예시적인 실시예에 따르면, 관계형 데이터 모델(relational data model)을 비관계형 데이터 모델(non-relational data model)로 변환하기 위한 데이터 모델링 장치를 이용하여 데이터 모델링을 수행하는 방법으로서, 하나 또는 복수의 속성(attribute)을 포함하는 엔티티(entity)를 정의하는 관계형 데이터 모델과 상기 엔티티와 연관된 사용 패턴을 정의하는 서술자(descriptor)를 획득하는 단계; 상기 서술자에 기반하여, 상기 관계형 데이터 모델로부터 식별되는 상기 하나 또는 상기 복수의 속성 각각을 비관계형 데이터 모델에서 표현하기 위한 포맷을 기 설정된 포맷들 중에서 선택하는 단계; 및 상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 엔티티를 식별하기 위한 키(key)의 유형을 기 설정된 유형들 중에서 선택하는 단계를 포함하는 데이터 모델링 방법이 제공된다.
상기 데이터 모델링 방법은, 상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 복수의 속성 중 둘 이상을 그룹핑하는 속성 그룹을 판정하는 단계를 더 포함할 수 있다.
상기 데이터 모델링 방법은, 상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 복수의 속성 중 둘 이상이 동일한 인덱스(index)로 검색되도록 인덱스 테이블을 판정하는 단계를 더 포함할 수 있다.
상기 포맷을 선택하는 단계는 상기 하나 또는 상기 복수의 속성 각각이 상기 관계형 데이터 모델에서 정의된 다른 엔티티의 속성을 참조하는지를 상기 서술자에 기반하여 판정하는 단계를 포함할 수 있다.
상기 기 설정된 포맷들은 제1 포맷, 제2 포맷 및 제3 포맷을 포함할 수 있고, 상기 포맷을 선택하는 단계는 상기 다른 엔티티의 속성을 참조하는 속성에 대하여 상기 제1 포맷 내지 제3 포맷 중 하나를 상기 서술자에 기반하여 선택하는 단계를 더 포함할 수 있으며, 상기 제1 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티와의 링크(link)를 갖는다고 표현하고, 상기 제2 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티의 속성과 함께 상기 엔티티에 포함되도록 상기 다른 엔티티가 상기 엔티티에 임베딩(embedding)된다고 표현하며, 상기 제3 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티와 더불어 상기 엔티티에도 포함되도록 비정규화(denormalization)된다고 표현할 수 있다.
상기 제1 포맷 내지 제3 포맷 중 하나를 선택하는 단계는, 상기 다른 엔티티에 포함된 속성의 값이 변경되는 빈도가 기 설정된 기준 값 이상인지 및 상기 다른 엔티티가 상기 엔티티의 자식(child)인지 또는 상기 엔티티의 마스터(master)인지를 상기 서술자에 기반하여 판정하는 단계; 및 상기 빈도가 상기 기 설정된 기준 값 이상이라고 판정되는 경우 상기 제1 포맷을 선택하고, 상기 빈도가 상기 기 설정된 기준 값 미만이고 상기 다른 엔티티가 상기 엔티티의 자식이라고 판정되는 경우 상기 제2 포맷을 선택하며, 상기 빈도가 상기 기 설정된 기준 값 미만이고 상기 다른 엔티티가 상기 엔티티의 마스터라고 판정되는 경우 상기 제3 포맷을 선택하는 단계를 포함할 수 있다.
상기 기 설정된 포맷들은 제4 포맷, 제5 포맷 및 제6 포맷을 포함할 수 있고, 상기 포맷을 선택하는 단계는 상기 관계형 데이터 모델에서 정의된 임의의 다른 엔티티의 속성을 참조하지 않는 속성에 대하여 상기 제4 포맷 내지 제6 포맷 중 하나를 상기 서술자에 기반하여 선택하는 단계를 더 포함할 수 있으며, 상기 제4 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 동적으로 추가될 수 있는 다이나믹(dynamic) 속성임을 표현하고, 상기 제5 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 다수의 값을 가질 수 있는 어레이(array) 속성임을 표현하며, 상기 제6 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 다이나믹 속성 및 어레이 속성도 아닌 일반(normal) 속성임을 표현할 수 있다.
상기 제4 포맷 내지 제6 포맷 중 하나를 선택하는 단계는, 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되었는지 및 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 하나의 값을 가지는지 또는 복수의 값을 가지는지를 상기 서술자에 기반하여 판정하는 단계; 및 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되지 않았다고 판정되는 경우 상기 제4 포맷을 선택하고, 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되고 복수의 값을 가진다고 판정되는 경우 상기 제5 포맷을 선택하며, 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되고 하나의 값을 가진다고 판정되는 경우 상기 제6 포맷을 선택하는 단계를 포함할 수 있다.
상기 기 설정된 유형들은 순차적 키(sequential key)의 유형을 포함할 수 있고, 상기 유형을 선택하는 단계는, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티의 속성의 값이 기록되는 제2 빈도가 기 설정된 제2 기준 값 미만이라고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 순차적 키의 유형을 선택하는 단계를 포함할 수 있다.
상기 기 설정된 유형들은 랜덤 키(random key)의 유형을 포함할 수 있고, 상기 유형을 선택하는 단계는, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 미만이고 상기 엔티티의 속성의 값에 대하여 상기 키를 이용한 범위 검색이 필요하지 않다고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 랜덤 키의 유형을 선택하는 단계를 포함할 수 있다.
상기 기 설정된 유형들은 솔티드 키(salted key)의 유형을 포함할 수 있고, 상기 유형을 선택하는 단계는, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티의 속성의 값이 기록되는 빈도가 기 설정된 제2 기준 값 이상이라고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 솔티드 키의 유형을 선택하는 단계를 포함할 수 있다.
상기 기 설정된 유형들은 프로모티드 필드 키(promoted field key)의 유형을 포함할 수 있고, 상기 유형을 선택하는 단계는, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 미만이고 상기 엔티티의 속성의 값에 대하여 상기 키를 이용한 범위 검색이 필요하다고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 프로모티드 필드 키의 유형을 선택하는 단계를 포함할 수 있다.
상기 속성 그룹을 판정하는 단계는 상기 복수의 속성 중 동시에 검색될 속성들을 상기 서술자에 기반하여 식별하는 단계를 포함할 수 있고, 상기 식별된 속성들은 상기 속성 그룹으로서 상기 비관계형 데이터 모델에서 표현될 수 있다.
상기 인덱스 테이블을 판정하는 단계는 상기 복수의 속성 중 동일한 인덱스로 검색에 이용될 속성들을 상기 서술자에 기반하여 식별하는 단계를 포함할 수 있고, 상기 식별된 속성들의 검색을 위한 인덱스들을 포함하는 커버링(covering) 인덱스 테이블 또는 비-커버링(non-covering) 인덱스 테이블로서 상기 인덱스 테이블이 상기 비관계형 데이터 모델에서 표현될 수 있다.
상기 식별된 속성들이 동시에 사용되는 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티에 포함된 데이터의 개수가 기 설정된 제2 기준 값 이상이며 상기 엔티티에 포함된 데이터가 변경되는 빈도가 기 설정된 제3 기준 값 이하인 경우 상기 인덱스 테이블은 커버링 인덱스 테이블로서 상기 비관계형 데이터 모델에서 표현될 수 있고, 그렇지 않은 경우 상기 인덱스 테이블은 비-커버링 인덱스 테이블로서 상기 비관계형 데이터 모델에서 표현될 수 있다.
다른 예시적인 실시예에 따르면, 하나 또는 복수의 속성을 포함하는 엔티티를 정의하는 관계형 데이터 모델과 상기 엔티티와 연관된 사용 패턴을 정의하는 서술자를 획득하도록 구성된 입력부; 상기 서술자에 기반하여, 상기 관계형 데이터 모델로부터 식별되는 상기 하나 또는 상기 복수의 속성 각각을 비관계형 데이터 모델에서 표현하기 위한 포맷을 기 설정된 포맷들 중에서 선택하도록 구성된 속성 표현 포맷 선택부; 및 상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 엔티티를 식별하기 위한 키의 유형을 기 설정된 유형들 중에서 선택하도록 구성된 키 유형 선택부를 포함하는 데이터 모델링 장치가 제공된다.
상기 데이터 모델링 장치는, 상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 복수의 속성 중 둘 이상을 그룹핑하는 속성 그룹을 판정하도록 구성된 속성 그룹 판정부를 더 포함할 수 있다.
상기 데이터 모델링 장치는, 상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 복수의 속성 중 둘 이상이 동일한 인덱스로 검색되도록 인덱스 테이블을 판정하도록 구성된 인덱스 테이블 판정부를 더 포함할 수 있다.
상기 포맷을 선택하는 것은 상기 하나 또는 상기 복수의 속성 각각이 상기 관계형 데이터 모델에서 정의된 다른 엔티티의 속성을 참조하는지를 상기 서술자에 기반하여 판정하는 것을 포함할 수 있다.
상기 기 설정된 포맷들은 제1 포맷, 제2 포맷 및 제3 포맷을 포함할 수 있고, 상기 포맷을 선택하는 것은 상기 다른 엔티티의 속성을 참조하는 속성에 대하여 상기 제1 포맷 내지 제3 포맷 중 하나를 상기 서술자에 기반하여 선택하는 것을 더 포함할 수 있으며, 상기 제1 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티와의 링크를 갖는다고 표현하고, 상기 제2 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티의 속성과 함께 상기 엔티티에 포함되도록 상기 다른 엔티티가 상기 엔티티에 임베딩된다고 표현하며, 상기 제3 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티와 더불어 상기 엔티티에도 포함되도록 비정규화된다고 표현할 수 있다.
상기 제1 포맷 내지 제3 포맷 중 하나를 선택하는 것은, 상기 다른 엔티티에 포함된 속성의 값이 변경되는 빈도가 기 설정된 기준 값 이상인지 및 상기 다른 엔티티가 상기 엔티티의 자식인지 또는 상기 엔티티의 마스터인지를 상기 서술자에 기반하여 판정하는 것; 및 상기 빈도가 상기 기 설정된 기준 값 이상이라고 판정되는 경우 상기 제1 포맷을 선택하고, 상기 빈도가 상기 기 설정된 기준 값 미만이고 상기 다른 엔티티가 상기 엔티티의 자식이라고 판정되는 경우 상기 제2 포맷을 선택하며, 상기 빈도가 상기 기 설정된 기준 값 미만이고 상기 다른 엔티티가 상기 엔티티의 마스터라고 판정되는 경우 상기 제3 포맷을 선택하는 것을 포함할 수 있다.
상기 기 설정된 포맷들은 제4 포맷, 제5 포맷 및 제6 포맷을 포함할 수 있고, 상기 포맷을 선택하는 것은 상기 관계형 데이터 모델에서 정의된 임의의 다른 엔티티의 속성을 참조하지 않는 속성에 대하여 상기 제4 포맷 내지 제6 포맷 중 하나를 상기 서술자에 기반하여 선택하는 것을 더 포함할 수 있으며, 상기 제4 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 동적으로 추가될 수 있는 다이나믹 속성임을 표현하고, 상기 제5 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 다수의 값을 가질 수 있는 어레이 속성임을 표현하며, 상기 제6 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 다이나믹 속성 및 어레이 속성도 아닌 일반 속성임을 표현할 수 있다.
상기 제4 포맷 내지 제6 포맷 중 하나를 선택하는 것은, 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되었는지 및 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 하나의 값을 가지는지 또는 복수의 값을 가지는지를 상기 서술자에 기반하여 판정하는 것; 및 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되지 않았다고 판정되는 경우 상기 제4 포맷을 선택하고, 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되고 복수의 값을 가진다고 판정되는 경우 상기 제5 포맷을 선택하며, 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되고 하나의 값을 가진다고 판정되는 경우 상기 제6 포맷을 선택하는 것을 포함할 수 있다.
상기 기 설정된 유형들은 순차적 키의 유형을 포함할 수 있고, 상기 유형을 선택하는 것은, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티의 속성의 값이 기록되는 제2 빈도가 기 설정된 제2 기준 값 미만이라고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 순차적 키의 유형을 선택하는 것을 포함할 수 있다.
상기 기 설정된 유형들은 랜덤 키의 유형을 포함할 수 있고, 상기 유형을 선택하는 것은, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 미만이고 상기 엔티티의 속성의 값에 대하여 상기 키를 이용한 범위 검색이 필요하지 않다고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 랜덤 키의 유형을 선택하는 것을 포함할 수 있다.
상기 기 설정된 유형들은 솔티드 키의 유형을 포함할 수 있고, 상기 유형을 선택하는 것은, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티의 속성의 값이 기록되는 빈도가 기 설정된 제2 기준 값 이상이라고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 솔티드 키의 유형을 선택하는 것을 포함할 수 있다.
상기 기 설정된 유형들은 프로모티드 필드 키의 유형을 포함할 수 있고, 상기 유형을 선택하는 것은, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티의 속성의 값에 대하여 상기 키를 이용한 범위 검색이 필요하다고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 프로모티드 필드 키의 유형을 선택하는 것을 포함할 수 있다.
상기 속성 그룹을 판정하는 것은 상기 복수의 속성 중 동시에 검색될 속성들을 상기 서술자에 기반하여 식별하는 것을 포함할 수 있고, 상기 식별된 속성들은 상기 속성 그룹으로서 상기 비관계형 데이터 모델에서 표현될 수 있다.
상기 인덱스 테이블을 판정하는 것은 상기 복수의 속성 중 동일한 인덱스로 검색에 이용될 속성들을 상기 서술자에 기반하여 식별하는 것을 포함할 수 있고, 상기 식별된 속성들의 검색을 위한 인덱스들을 포함하는 커버링 인덱스 테이블 또는 비-커버링 인덱스 테이블로서 상기 인덱스 테이블이 상기 비관계형 데이터 모델에서 표현될 수 있다.
상기 식별된 속성들이 동시에 사용되는 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티에 포함된 데이터의 개수가 기 설정된 제2 기준 값 이상이며 상기 엔티티에 포함된 데이터가 변경되는 빈도가 기 설정된 제3 기준 값 이하인 경우 상기 인덱스 테이블은 커버링 인덱스 테이블로서 상기 비관계형 데이터 모델에서 표현될 수 있고, 그렇지 않은 경우 상기 인덱스 테이블은 비-커버링 인덱스 테이블로서 상기 비관계형 데이터 모델에서 표현될 수 있다.
본 발명의 실시예들에 따르면, 관계형 데이터 모델을 기반으로 불필요한 중복 없이 효율적으로 데이터를 저장 및 관리하기 위한 비관계형 데이터 모델을 구축할 수 있다.
또한, 본 발명의 실시예들에 따르면, 정의된 정보에 의거하여 데이터 모델링을 수행함으로써, 대용량 데이터 처리 능력 및 확장성을 높일 수 있다.
도 1은 본 발명의 실시예에 따른 데이터 모델링 장치를 도시한 블록도
도 2는 본 발명의 실시예에 따른 데이터 모델링 방법을 도시한 순서도
도 3a 및 도 3b는 본 발명의 실시예에 따른 데이터 모델링 방법에서 속성 표현 포맷을 선택하는 과정을 도시한 순서도
도 4는 본 발명의 실시예에 따른 데이터 모델링 방법에서 키 유형을 선택하는 과정을 도시한 순서도
도 5는 본 발명의 실시예에 따른 데이터 모델링 방법에서 속성 그룹을 판정하는 과정을 도시한 순서도
도 6은 본 발명의 실시예에 따른 데이터 모델링 방법에서 인덱스 테이블을 판정하는 과정을 도시한 순서도.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
본 발명의 실시예에서 엔티티(entity)는 하나의(one) 데이터 집합(data set)을 의미한다. 속성(attribute)은 엔티티의 구성 요소를 의미한다. 즉, 속성들의 묶음이 엔티티가 된다. 엔티티들 간에는 참조(reference) 관계가 존재할 수 있다. 예를 들어, 제1 엔티티가 제2 엔티티를 참조한다는 것은 제1 엔티티의 속성 중에 제2 엔티티의 PK(Primary Key)를 가리키는 속성이 존재한다는 것을 의미할 수 있다.
본 발명의 실시예들에 따르면, 어떤 데이터를 관리하기 위한 관계형 데이터 모델의 표현이 비관계형 데이터 모델의 표현으로 변환된다. 이러한 변환은 관계형 데이터 모델 표현을 기반으로 데이터에 대한 쿼리에 최적화된 비관계형 데이터 모델을 구축하는 데 사용될 수 있다.
관계형 데이터 모델 표현은 통상적인 논리 모델링 방식을 이용하여 획득될 수 있다. 예컨대, 논리 모델링은 쿼리를 정의하고 이로부터 도출된 데이터 집합 및 속성을 바탕으로 논리 모델을 정의하는 것을 수반한다.
예컨대, 쿼리 정의는 비즈니스 요구 사항, 활용 데이터 및 발생 정보의 정의를 통해 이루어질 수 있다. 구체적으로, 비즈니스 요구 사항은 쿼리 목적 및 쿼리 문장의 정의를 통해 이루어질 수 있다. 또한, 활용 데이터 정의는 쿼리 문장을 토대로 주요 데이터 집합 및 입출력 속성을 도출하며, 쿼리 문장 내 중심 데이터의 집합 여부를 판단하여 메인 여부를 결정하며, 데이터 집합의 성격 규정을 통해 이루어질 수 있다. 발생 정보 정의는 데이터 발생 규모, 발생 주기 등을 이루어질 수 있다. 여기에서, 데이터 집합의 성격은 마스터, 트랙잭션, 코드, 집계 등을 들 수 있다.
논리 모델 정의는 쿼리 정의 단계에서 도출된 데이터 집합 및 속성을 바탕으로 정의될 수 있으며, 구체적으로 엔티티 도출, 집계 엔티티 추가 등을 통해 정의될 수 있다. 여기에서, 엔티티 도출은 쿼리 정의 단계에서 도출된 데이터 집합을 토대로 도출될 수 있다. 이러한 논리 모델 정의를 통해 논리 개체 관계 다이어그램(ERD: Entity Relationship Diagram)이 생성될 수 있다.
나아가, 본 발명의 실시예에 따른 데이터 모델링 기법은, 관계형 데이터 모델 표현(예컨대, 논리 ERD) 외에 관계형 데이터 모델에서 정의된 엔티티와 연관된 사용 패턴에 관한 서술자를 활용할 수 있다. 예컨대, 이러한 서술자는 논리 ERD에서 도출된 엔티티와 연관된 사용 패턴의 정의를 통해 작성되는 엔티티 정의서일 수 있다. 구체적으로, 위 사용 패턴의 정의는 데이터 판독(read) 유형 및 및 로우 키(row key) 검색 유형을 정의하는 것 등을 포함하며, 또한 속성 각각의 사용 패턴을 정의하는 것을 포함할 수도 있다. 이하에서 이러한 데이터 모델링 기법이 도 1 내지 도 6을 참조하여 기술된다.
도 1은 본 발명의 실시예에 따른 데이터 모델링 장치(100)를 도시한 블록도이다.
도 1에 도시된 바와 같이, 예시적인 데이터 모델링 장치(100)는 관계형 데이터 모델 표현(102)을 비관계형 데이터 모델 표현(104)으로 변환한다. 이를 위해, 데이터 모델링 장치(100)는 속성 표현 포맷 선택부(110) 및 키 유형 선택부(120)를 포함한다. 또한, 데이터 모델링 장치(100)는 속성 그룹 판정부(130) 및/또는 인덱스 테이블 판정부(140)를 더 포함할 수 있다. 나아가, 데이터 모델링 장치(100)는 관계형 데이터 모델 표현(102)을 수신 또는 획득하기 위한 입력부(미도시) 및 비관계형 데이터 모델 표현(104)을 제공하기 위한 출력부(미도시)를 더 포함할 수 있다.
관계형 데이터 모델 표현(102)은 전술한 논리 모델 설계를 통해 도출된 논리 ERD를 포함할 수 있다. 관계형 데이터 모델 표현(102)에 의해 정의되는 엔티티와 연관된 사용 패턴을 나타내는 서술자(예컨대, 전술한 엔티티 정의서)가 관계형 데이터 모델 표현(102)과 함께 데이터 모델링 장치(100)의 입력부에서 수신 또는 획득되어 데이터 모델링 장치(100)에서 비관계형 데이터 모델 표현(104)을 생성하는 데 사용될 수 있다.
데이터 모델링 장치(100)로부터 제공되는 비관계형 데이터 모델 표현(104)은 관계형 데이터 모델 표현(102)이 나타내는 엔티티들 및 그 속성들과 관련된 몇 가지 정의들을 포함한다. 예컨대, 비관계형 데이터 모델 표현(104)로부터 (i) 각 속성을 기술하기 위한 포맷, (ii) 엔티티를 식별하기 위한 키의 유형, (iii) 몇몇 속성들을 그룹핑한 속성 그룹 및/또는 (iv) 몇몇 속성들의 검색을 용이하게 하기 위한 인덱스 테이블이 식별될 수 있다. 이와 같이, 비관계형 데이터 모델 표현(104)은 관계형 데이터 모델로 표현된 데이터 집합을 비관계형 데이터 모델로 표현하기 위한 적절한 기준을 자동적으로 제시하는바, 비관계형 데이터 모델(예컨대, NoSQL 모델)의 작성 작업이 효율적으로 수행될 수 있다.
데이터 모델링 장치(100)는 관계형 데이터 모델 표현(100)으로부터 식별되는 각 엔티티 및 그 속성 각각에 대하여 서술자에 기반하여 위와 같은 정의들을 내릴 수 있다. 예를 들어, 속성 표현 포맷 선택부(110)는 관계형 데이터 모델 표현(102)으로부터 엔티티에 포함된 속성을 식별하고 그 속성을 비관계형 데이터 모델로 표현하기 위한 포맷을 기 설정된 포맷들 중에서 선택하도록 구성된다. 키 유형 선택부(120)는 비관계형 데이터 모델에서 위 엔티티를 식별하기 위하여 표현되는 키의 유형을 기 설정된 유형들 중에서 선택하도록 구성된다. 나아가, 속성 그룹 판정부(130)는 비관계형 데이터 모델에서 둘 이상의 속성을 그룹핑한다고 표현될 수 있는 속성 그룹을 판정하도록 구성될 수 있고, 인덱스 테이블 판정부(140)는 비관계형 데이터 모델에서 둘 이상의 속성이 동일한 인덱스로 검색되도록 한다고 표현될 수 있는 인덱스 테이블을 판정하도록 구성될 수 있다.
전술한 포맷 선택 및 유형 선택은 물론, 속성 그룹과 인덱스 테이블에 관한 판정도 서술자를 기반으로 수행될 수 있다. 예컨대, 서술자가 나타내는 사용 패턴은 (i) 각 속성이 다른 엔티티의 속성을 참조하는지 (ii) 각 속성의 값이 변경되는 것이 빈번한지(예컨대, 그러한 빈도가 기 설정된 기준 값 이상인지) (iii) 두 엔티티 간에 부모-자식 관계(parent-child relationship)가 존재하는지 또는 어떤 엔티티가 다른 엔티티에 대하여 마스터(master) 또는 코드(code) 특성을 가지는지 (iv) 각 속성의 스키마가 고정되었는지 (v) 각 속성이 하나의 값을 가지는지 또는 복수의 값을 가지는지 (vi) 각 속성의 값에 대하여 시계열 검색이 수행되는 것이 빈번한지(예컨대, 그러한 빈도가 기 설정된 기준 값 이상인지) (vii) 각 속성의 값이 기록되는 것이 빈번한지(예컨대, 그러한 빈도가 기 설정된 기준 값 이상인지) (viii) 각 속성의 값에 대하여 키(예컨대, 로우 키(row key))를 이용한 한 범위 검색(range search)이 필요한지 (ix) 동시에 검색될 속성들이 무엇인지(예컨대, 그러한 속성들에 동일한 값으로 할당된 번호) (x) 동일한 인덱스로 검색에 이용될 속성들이 무엇인지(예컨대, 그러한 속성들에 동일한 값으로 할당된 번호) (xi) 각 속성이 다른 속성과 동시에 사용되는 것이 빈번한지(예컨대, 그러한 빈도가 기 설정된 기준 값 이상인지) 및 (xii) 각 엔티티가 대량의 데이터를 취급할 것인지(예컨대, 그 엔티티에 포함된 데이터의 개수가 기 설정된 기준 값 이상인지), 또한 그러한 데이터가 변경되는 것이 빈번한지(예컨대, 그러한 빈도가 기 설정된 기준 값 이상인지) 중 전부 또는 일부를 인식하는 데 이용 가능한 정보이다. 일 예로서, 서술자는 각 속성의 값이 자주 변경되는지 여부를 나타내는 플래그를 포함할 수도 있다. 다른 예로서, 서술자는 각 속성의 값이 변경되는 빈도를 나타내는 표시를 포함할 수도 있다. 이러한 서술자를 기반으로 한 속성 표현 선택, 키 유형 선택, 속성 그룹 판정 및 인덱스 테이블 판정을 위한 동작들은 이하에서 구체적으로 설명될 것이다.
도 2는 본 발명의 실시예에 따른 데이터 모델링 방법을 도시한 순서도이다.
도 2에 도시된 바와 같이, 예시적인 데이터 모델링 방법(200)은 관계형 데이터 모델의 표현 및 엔티티와 연관된 사용 패턴을 나타내는 서술자를 획득하는 단계(210), 서술자에 기반하여 관계형 데이터 모델의 표현으로부터 식별되는 하나 또는 복수의 속성 각각을 비관계형 데이터 모델에서 표현하기 위한 포맷을 기 설정된 포맷들 중에서 선택하는 단계(220) 및 서술자에 기반하여 비관계형 데이터 모델에서 엔티티를 식별하기 위하여 표현되는 키의 유형을 기 설정된 유형들 중에서 선택하는 단계(230)를 포함한다. 나아가, 도 2의 데이터 모델링 방법(200)은 서술자에 기반하여 비관계형 데이터 모델에서 복수의 속성 중 둘 이상을 그룹핑한 것으로 표현될 수 있는 속성 그룹을 판정하는 단계(240) 및/또는 서술자에 기반하여 비관계형 데이터 모델에서 복수의 속성 중 둘 이상이 동일한 인덱스로 검색되도록 하는 것으로 표현될 수 있는 인덱스 테이블을 판정하는 단계(250)를 더 포함할 수 있다. 데이터 모델링 방법(200)은 도 1의 데이터 모델링 장치(100)에 의해 수행될 수 있다. 예컨대, 도 2에 도시된 데이터 모델링 방법(200)의 단계들(210 내지 250)은 각각 전술한 데이터 모델링 장치(100)의 입력부(미도시), 속성 표현 포맷 선택부(110), 키 유형 선택부(120), 속성 그룹 판정부(130) 및 인덱스 테이블 판정부(140)에서 수행될 수 있다.
속성 표현 포맷 선택 단계(220)는 관계형 데이터 모델에서 정의된 모든 엔티티 각각의 속성들에 대하여 수행될 수 있다. 각 속성을 비관계형 데이터 모델에서 표현하기 위한 포맷은 다음과 같이 미리 설정된 포맷들 중에서 선택될 수 있다.
예컨대, 관계형 데이터 모델에서 정의된 제1 엔티티의 속성이 관계형 데이터 모델의 제2 엔티티의 속성을 참조하는 경우, (i) 비관계형 데이터 모델에서 제1 엔티티의 그 속성이 제2 엔티티와의 링크(link)를 갖는다고 표현하기 위한 제1 포맷, (ii) 비관계형 데이터 모델에서 제1 엔티티의 그 속성이 제2 엔티티의 속성(들)과 함께 제1 엔티티에 포함되도록 제2 엔티티가 제1 엔티티에 임베딩(embedding)된다고 표현하기 위한 제2 포맷 및 (iii) 비관계형 데이터 모델에서 제1 엔티티의 그 속성이 제2 엔티티와 더불어 제1 엔티티에도 포함되도록 비정규화(denormalization)된다고 표현하기 위한 제3 포맷 중 하나가 선택될 수 있다. 제2 엔티티에 포함된 속성의 값이 변경되는 빈도가 기 설정된 기준 값 이상인지 및 제2 엔티티가 제1 엔티티의 자식인지 또는 제1 엔티티의 마스터인지가 서술자에 기반하여 판정될 수 있고, 이 판정에 따라 위 선택이 수행될 수 있다.
또한, 관계형 데이터 모델에서 정의된 제1 엔티티의 속성이 관계형 데이터 모델의 임의의 다른 엔티티의 속성을 참조하지 않는 경우, (i) 비관계형 데이터 모델에서 제1 엔티티의 그 속성이 동적으로 추가될 수 있는 다이나믹(dynamic) 속성임을 표현하기 위한 제4 포맷, (ii) 비관계형 데이터 모델에서 제1 엔티티의 그 속성이 다수의 값을 가질 수 있는 어레이(array) 속성임을 표현하기 위한 제5 포맷 및 (iii) 비관계형 데이터 모델에서 제1 엔티티의 그 속성이 제1 내지 제5 포맷과 같은 특이 사항이 없는 일반(normal) 속성(즉, 다이나믹 속성 및 어레이 속성도 아닌 속성)을 표현하기 위한 제6 포맷 중 하나가 선택될 수 있다. 제1 엔티티의 그 속성의 스키마가 고정되었는지 및 제1 엔티티의 그 속성이 하나의 값을 가지는지 또는 복수의 값을 가지는지가 서술자에 기반하여 판정될 수 있고, 이 판정에 따라 위 선택이 수행될 수 있다.
이하에서, 각 속성을 비관계형 데이터 모델에서 표현하기 위한 포맷이 선택되는 예시적인 과정이 도 3a 및 도 3b를 참조하여 기술된다.
도 3a에 도시된 바와 같이, 속성 표현 포맷 선택 단계(220)는 획득된 서술자에 기반하여 관계형 데이터 모델의 표현으로부터 식별된 속성을 입력 받음으로써 시작된다(단계 302).
이어서, 식별된 속성이 그 속성이 포함된 엔티티(예컨대, 제1 엔티티)가 아닌 다른 엔티티(예컨대, 제2 엔티티)의 속성을 참조하는지 여부가 서술자에 기반하여 판정된다(단계 304).
그 속성이 제2 엔티티의 속성을 참조한다고 판정되는 경우 그 속성에 대하여 전술한 제1 포맷 내지 제3 포맷 중 하나가 서술자에 기반하여 선택된다.
구체적으로, 제2 엔티티에 포함된 속성의 값이 자주 또는 대량으로 변경되는지 여부가 서술자에 기반하여 판정된다(단계 306). 예컨대, 그러한 변경의 빈도가 기 설정된 기준 값 이상인지 판정할 수 있다.
참조된 제2 엔티티의 속성의 값이 자주 변경된다고 판정되는 경우, 제2 엔티티의 속성들과 식별된 속성 간의 링크를 갖는다는 것을 표현하기 위한 제1 포맷이 선택된다(단계 308). 이는 빈번한 변경을 위해 액세스되는 속성은 별도의 엔티티에 포함시키는 것이 타당하다는 점에 근거한다.
단계 306의 판정 결과 제2 엔티티에 자주 변경되는 속성이 포함되지 않은 경우, 참조되는 제2 엔티티의 엔티티 유형이 판정된다(단계 310). 예컨대, 제2 엔티티가 제1 엔티티의 자식인지 또는 제2 엔티티가 제1 엔티티의 마스터인지 여부가 판정된다.
제2 엔티티가 제1 엔티티의 마스터 엔티티라고 판정되는 경우, 식별된 속성이 제2 엔티티는 물론 제1 엔티티에도 중복적으로 포함된다는 비정규화를 표현하기 위한 제3 포맷이 선택된다(단계 312). 나아가, 이와 같이 비정규화된 속성은 거의 그 값이 변경되지 않는 것으로 더욱 제한하는 것도 가능하다.
제2 엔티티가 제1 엔티티의 자식 엔티티라고 판정되는 경우, 식별된 속성이 제2 엔티티의 모든 속성과 함께 제1 엔티티에 포함된다는 것(즉, 제2 엔티티가 제1 엔티티 내부로 임베딩된다는 것)을 표현하기 위한 제2 포맷이 선택된다(단계 314). 이러한 경우 제1 엔티티의 식별된 속성과 제2 엔티티의 속성들은 함께 액세스될 가능성이 높은바, 두 엔티티들의 속성들을 하나로 모으는 것은 타당성이 있다.
단계 304의 판정 결과 식별된 속성이 관계형 데이터 모델에서 정의된 임의의 다른 엔티티의 속성을 참조하지 않는 경우, 식별된 속성의 스키마가 고정적인지 여부가 판정된다(단계 316).
위 속성의 스키마가 고정적이지 않다고 판정되는 경우, 그 속성은 동적으로 추가될 수 있는 다이나믹 속성임을 표현하기 위한 제4 포맷이 선택된다 (단계 318). 이러한 다이나믹 속성의 명칭(또는 키)은 미리 정의되지 않으며, 그 속성의 값을 처리하는 과정에서 결정될 수 있다. 예를 들어, 어떤 이벤트가 발생하는 시점에 다이나믹 속성을 추가한다면, 그 시점의 타임스탬프 값이 그 속성의 명칭으로 사용될 수 있다.
단계 316의 판정 결과 식별된 속성의 스키마가 고정적인 경우, 그 속성의 값이 단일 값을 가지는지 또는 여러 값을 가지는지 여부가 판정된다(단계 320).
그 속성이 하나의 값을 가진다고 판정되는 경우 그 속성은 일반 속성임을 표현하기 위한 제6 포맷이 선택되고(단계 322), 그 속성이 여러 개의 값을 가진다고 판정되는 경우 그 속성이 어레이 속성임을 표현하기 위한 제5 포맷이 선택된다(단계 324).
다시 도 2를 참조하면, 키 유형 선택 단계(230)에서, 비관계형 데이터 모델의 표현에서 엔티티를 식별하기 위한 키의 유형이 다음과 같이 미리 설정된 유형들 중에서 선택된다. 이하에서, 이러한 선택을 위한 예시적인 과정이 도 4를 참조하여 기술된다.
엔티티를 식별하기 위한 키는 예컨대 키-값(key-value) 데이터 모델과 같은 비관계형 데이터 모델에서 하나의 로우(row)를 식별하기 위한 프라이머리 키(PK: Primary Key)인 로우 키(row key)를 포함할 수 있다. 예컨대, NoSQL 데이터베이스와 같은 비관계형 데이터베이스에서는 로우 키의 구조가 데이터 처리 성능에 큰 영향을 끼치는바, 데이터의 판독 및/또는 기록이 사용되는 패턴을 기반으로 로우 키를 할당하는 것이 유용할 수 있다.
도 4에 도시된 바와 같이, 키 유형 선택 단계(230)는 엔티티 내 모든 속성의 값들 중 적어도 하나 이상에 대해 시계열 검색이 빈번하게 수행되는지의 여부를 판정함으로써 시작된다(단계 402). 시계열 검색은 시간을 기반으로 어떤 범위의 값들을 순차적으로 획득하는 것을 의미한다. 예컨대, 엔티티에 포함된 각 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상인지 여부가 판정된다.
단계 402의 판정 결과 시계열 검색이 빈번하게 발생하는 속성 값이 존재하는 경우, 그 속성 값이 빈번하게 기록되는지가 판정된다(404). 예컨대, 그 속성 값이 기록되는 제2 빈도가 기 설정된 제2 기준 값 이상인지 여부가 판정된다.
단계 404의 판정 결과 엔티티 내 어떠한 속성도 그 값에 대한 기록이 빈번하게 발생되지 않는 경우, 엔티티의 식별을 위한 키는 순차적 키(sequential key)의 유형을 가지도록 선택된다(단계 408). 순차적 키는 키 값들이 순차적으로 정렬되어 물리적으로 저장되도록 하는바, 효율적인 시계열 검색을 가능하게 한다.
단계 404의 판정 결과 엔티티 내에 적어도 하나의 속성의 값에 대한 기록이 빈번하게 발생되는 경우, 엔티티의 식별을 위한 키는 솔티드 키(salted key)의 유형을 가지도록 선택된다(단계 406). 예컨대, 솔티드 키는 일련의 랜덤 키들을 복수의 그룹으로 분산시키기 위해 솔트(salt)를 그 키들 앞에 붙임으로써 생성될 수 있는데, 솔트는 시간(또는 타임스탬프)의 해쉬 값으로부터 도출될 수 있다.
단계 402의 판정 결과 엔티티 내 어떠한 속성도 그 속성의 값에 대한 시계열 검색이 빈번하게 발생하지 않는 경우, 키를 이용한 범위 검색이 그 속성 값에 대하여 필요한지 판정된다(단계 410).
단계 410의 판정 결과 엔티티 내 어떠한 속성의 값에 대하여도 키를 이용한 범위 검색이 필요하지 않은 경우, 엔티티의 식별을 위한 키는 랜덤 키(random key)의 유형을 가지도록 선택된다(단계 414).
단계 410의 판정 결과 엔티티에 포함된 속성의 값에 대하여 키를 이용한 범위 검색이 필요한 경우, 엔티티의 식별을 위한 키는 프로모티드 필드 키(promoted field key)의 유형을 가지도록 선택된다(단계 412). 예컨대, 프로모티드 필드 키는 그 키 내에서 시간(또는 타임스탬프) 필드를 2번째 위치로 돌리고 다른 필드를 그 앞에 위치시킴으로써 생성될 수 있다.
다시 도 2를 참조하면, 데이터 모델링 방법(200)은 속성 그룹 판정 단계(240)를 더 포함할 수 있다. 예컨대, 이 단계(240)는 엔티티의 속성들 중 동시에 검색될 속성들을 서술자에 기반하여 식별하는 단계를 포함할 수 있다. 이에 따라, 동시에 검색되는 것으로 식별된 속성들은 속성 그룹으로서 비관계형 데이터 모델에서 표현된다. 이러한 속성 그룹에 속한 속성들을 동일한 물리적 저장 공간에 저장하는 것은 그 속성들에 대한 액세스가 그 속성 그룹에 속하지 않은 속성에 비하여 효율적이게 한다. 예컨대, HBase와 같은 데이터베이스에서 동일한 컬럼 패밀리(column family)의 속성들은 동일한 HFile에 저장되는바, 함께 액세스되는 속성들은 동일한 컬럼 패밀리로 정의하는 것이 유용할 수 있다. 이하에서, 이러한 판정을 위한 예시적인 과정이 도 5를 참조하여 기술된다.
도 5는 본 발명의 실시예에 따른 데이터 모델링 방법에서 속성 그룹을 판정하는 과정을 도시한 순서도이다.
관계형 데이터 모델의 표현에서 식별된 엔티티의 속성들 중에서 동시에 검색될 속성들이 서술자에 기반하여 추출된다(단계 502).
추출된 동시 검색 대상 속성들은 그룹들로 분류되며, 각 그룹은 동일한 번호를 사용한다(단계 504).
이후, 동일한 번호를 사용하는 속성들은 동일한 속성 그룹(예컨대, 동일한 컬럼 패밀리)으로 정의된다(단계 506). 하나의 엔티티에 대하여 다수의 컬럼 패밀리가 존재할 수 있다.
다시 도 2를 참조하면, 데이터 모델링 방법(200)은 인덱스 테이블 판정 단계(250)를 더 포함할 수 있다. 예컨대, 이 단계(250)는 엔티티의 속성들 중 동일한 인덱스로 검색에 이용될 속성들을 서술자에 기반하여 식별하는 단계를 포함할 수 있다. 예컨대, 서술자는 검색에 이용 가능한 속성을 검색 입력 속성으로서 나타낼 수 있다. 이에 따라, 동일한 인덱스로 검색에 이용되는 것으로 식별된 속성들에 대하여 인덱스 테이블이 비관계형 데이터 모델의 표현에 추가될 수 있다. 추가되는 인덱스 테이블은 커버링(covering) 인덱스 테이블 또는 비-커버링(non-covering) 인덱스 테이블일 수 있다. 이러한 인덱스 테이블은 2차적 인덱스(secondary index)를 제공하지 않는 통상의 NoSQL 데이터베이스 제품에서 키가 아닌 속성을 이용한 검색을 용이하게 할 수 있다. 이하에서, 이러한 판정을 위한 예시적인 과정이 도 6을 참조하여 기술된다.
도 6은 본 발명의 실시예에 따른 데이터 모델링 방법에서 인덱스 테이블을 판정하는 과정을 도시한 순서도이다.
도 6에 도시된 바와 같이, 관계형 데이터 모델 표현에서 식별된 엔티티의 속성들 중에서 검색 입력 속성들이 서술자에 기반하여 추출된다(단계 602).
추출된 검색 입력 속성들은 그룹들로 분류되며, 각 그룹은 동일한 번호를 사용한다(단계 603).
추출된 검색 입력 속성들의 번호들의 비교를 통해 그 번호들이 동일한 속성들이 판정된다(단계 604).
단계 604의 판정 결과 동일한 번호를 갖는 속성들이 존재하지 않는 경우, 인덱스 테이블은 생성되지 않는 것으로 판정된다(단계 606).
단계 604의 판정 결과 동일한 번호를 갖는 검색 입력 속성들이 존재하는 경우, 그 속성들이 동시에 자주 사용되는지 여부가 판정된다(단계 608). 예컨대, 그 속성들이 동시에 사용되는 빈도가 기 설정된 기준 값 이상인지 판정된다.
단계 608의 판정 결과 동시에 자주 사용되는 속성들이 존재하는 경우, 그 속성들이 포함된 엔티티가 대량 데이터 테이블으로 볼 수 있는지 판정된다(단계 610). 예컨대, 그 엔티티에 포함되는 데이터의 개수가 기 설정된 다른 기준 값 이상인지 판정된다.
단계 610의 판정 결과 그 엔티티가 대량 데이터 테이블인 경우, 그 엔티티에 포함된 데이터가 자주 변경(예컨대, 삽입(insert), 업데이트(update), 또는 삭제(delete))되는지가 판정된다(단계 612). 예컨대, 그러한 데이터의 변경 빈도가 기 설정된 또 다른 기준 값 이상인지 판정된다.
단계 612의 판정 결과 속성들이 자주 변경되지 않는 경우, 그 속성들의 검색을 위해 커버링 인덱스 테이블이 비관계형 데이터 모델 표현에 추가되는 것을 제시한다(단계 614). 그 밖의 다른 경우에는 비-커버링 인덱스 테이블이 추가되는 것을 제시한다 (단계 616).
한편, 본 발명의 실시예는 본 명세서에서 기술한 데이터 모델링 방법을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100 : 데이터 모델링 장치
110 : 표현 포맷 선택부
120 : 키 유형 선택부
130 : 속성 그룹 판정부
140 : 인덱스 테이블 판정부

Claims (30)

  1. 하나 또는 복수의 속성(attribute)을 포함하는 엔티티(entity)를 정의하는 관계형 데이터 모델(relational data model)과 상기 엔티티와 연관된 사용 패턴을 정의하는 서술자(descriptor)를 획득하는 단계;
    상기 서술자에 기반하여, 상기 관계형 데이터 모델로부터 식별되는 상기 하나 또는 상기 복수의 속성 각각을 비관계형 데이터 모델(non-relational data model)에서 표현하기 위한 포맷을 기 설정된 포맷들 중에서 선택하는 단계; 및
    상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 엔티티를 식별하기 위한 키(key)의 유형을 기 설정된 유형들 중에서 선택하는 단계를 포함하는
    데이터 모델링 방법.
  2. 청구항 1에 있어서,
    상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 복수의 속성 중 둘 이상을 그룹핑하는 속성 그룹을 판정하는 단계를 더 포함하는, 데이터 모델링 방법.
  3. 청구항 1에 있어서,
    상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 복수의 속성 중 둘 이상이 동일한 인덱스(index)로 검색되도록 인덱스 테이블을 판정하는 단계를 더 포함하는, 데이터 모델링 방법.
  4. 청구항 1에 있어서,
    상기 포맷을 선택하는 단계는 상기 하나 또는 상기 복수의 속성 각각이 상기 관계형 데이터 모델에서 정의된 다른 엔티티의 속성을 참조하는지를 상기 서술자에 기반하여 판정하는 단계를 포함하는, 데이터 모델링 방법.
  5. 청구항 4에 있어서,
    상기 기 설정된 포맷들은 제1 포맷, 제2 포맷 및 제3 포맷을 포함하고,
    상기 포맷을 선택하는 단계는 상기 다른 엔티티의 속성을 참조하는 속성에 대하여 상기 제1 포맷 내지 제3 포맷 중 하나를 상기 서술자에 기반하여 선택하는 단계를 더 포함하며,
    상기 제1 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티와의 링크(link)를 갖는다고 표현하고, 상기 제2 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티의 속성과 함께 상기 엔티티에 포함되도록 상기 다른 엔티티가 상기 엔티티에 임베딩(embedding)된다고 표현하며, 상기 제3 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티와 더불어 상기 엔티티에도 포함되도록 비정규화(denormalization)된다고 표현하는, 데이터 모델링 방법.
  6. 청구항 5에 있어서,
    상기 제1 포맷 내지 제3 포맷 중 하나를 선택하는 단계는,
    상기 다른 엔티티에 포함된 속성의 값이 변경되는 빈도가 기 설정된 기준 값 이상인지 및 상기 다른 엔티티가 상기 엔티티의 자식(child)인지 또는 상기 엔티티의 마스터(master)인지를 상기 서술자에 기반하여 판정하는 단계; 및
    상기 빈도가 상기 기 설정된 기준 값 이상이라고 판정되는 경우 상기 제1 포맷을 선택하고, 상기 빈도가 상기 기 설정된 기준 값 미만이고 상기 다른 엔티티가 상기 엔티티의 자식이라고 판정되는 경우 상기 제2 포맷을 선택하며, 상기 빈도가 상기 기 설정된 기준 값 미만이고 상기 다른 엔티티가 상기 엔티티의 마스터라고 판정되는 경우 상기 제3 포맷을 선택하는 단계를 포함하는, 데이터 모델링 방법.
  7. 청구항 4에 있어서,
    상기 기 설정된 포맷들은 제4 포맷, 제5 포맷 및 제6 포맷을 포함하고,
    상기 포맷을 선택하는 단계는 상기 관계형 데이터 모델에서 정의된 임의의 다른 엔티티의 속성을 참조하지 않는 속성에 대하여 상기 제4 포맷 내지 제6 포맷 중 하나를 상기 서술자에 기반하여 선택하는 단계를 더 포함하며,
    상기 제4 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 동적으로 추가될 수 있는 다이나믹(dynamic) 속성임을 표현하고, 상기 제5 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 다수의 값을 가질 수 있는 어레이(array) 속성임을 표현하며, 상기 제6 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 다이나믹 속성 및 어레이 속성도 아닌 일반(normal) 속성임을 표현하는, 데이터 모델링 방법.
  8. 청구항 7에 있어서,
    상기 제4 포맷 내지 제6 포맷 중 하나를 선택하는 단계는,
    상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되었는지 및 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 하나의 값을 가지는지 또는 복수의 값을 가지는지를 상기 서술자에 기반하여 판정하는 단계; 및
    상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되지 않았다고 판정되는 경우 상기 제4 포맷을 선택하고, 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되고 복수의 값을 가진다고 판정되는 경우 상기 제5 포맷을 선택하며, 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되고 하나의 값을 가진다고 판정되는 경우 상기 제6 포맷을 선택하는 단계를 포함하는, 데이터 모델링 방법.
  9. 청구항 1에 있어서,
    상기 기 설정된 유형들은 순차적 키(sequential key)의 유형을 포함하고,
    상기 유형을 선택하는 단계는, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티의 속성의 값이 기록되는 제2 빈도가 기 설정된 제2 기준 값 미만이라고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 순차적 키의 유형을 선택하는 단계를 포함하는, 데이터 모델링 방법.
  10. 청구항 1에 있어서,
    상기 기 설정된 유형들은 랜덤 키(random key)의 유형을 포함하고,
    상기 유형을 선택하는 단계는, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 미만이고 상기 엔티티의 속성의 값에 대하여 상기 키를 이용한 범위 검색이 필요하지 않다고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 랜덤 키의 유형을 선택하는 단계를 포함하는, 데이터 모델링 방법.
  11. 청구항 1에 있어서,
    상기 기 설정된 유형들은 솔티드 키(salted key)의 유형을 포함하고,
    상기 유형을 선택하는 단계는, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티의 속성의 값이 기록되는 빈도가 기 설정된 제2 기준 값 이상이라고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 솔티드 키의 유형을 선택하는 단계를 포함하는, 데이터 모델링 방법.
  12. 청구항 1에 있어서,
    상기 기 설정된 유형들은 프로모티드 필드 키(promoted field key)의 유형을 포함하고,
    상기 유형을 선택하는 단계는, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 미만이고 상기 엔티티의 속성의 값에 대하여 상기 키를 이용한 범위 검색이 필요하다고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 프로모티드 필드 키의 유형을 선택하는 단계를 포함하는, 데이터 모델링 방법.
  13. 청구항 2에 있어서,
    상기 속성 그룹을 판정하는 단계는 상기 복수의 속성 중 동시에 검색될 속성들을 상기 서술자에 기반하여 식별하는 단계를 포함하고, 상기 식별된 속성들은 상기 속성 그룹으로서 상기 비관계형 데이터 모델에서 표현되는, 데이터 모델링 방법.
  14. 청구항 3에 있어서,
    상기 인덱스 테이블을 판정하는 단계는 상기 복수의 속성 중 동일한 인덱스로 검색에 이용될 속성들을 상기 서술자에 기반하여 식별하는 단계를 포함하고, 상기 식별된 속성들의 검색을 위한 인덱스들을 포함하는 커버링(covering) 인덱스 테이블 또는 비-커버링(non-covering) 인덱스 테이블로서 상기 인덱스 테이블이 상기 비관계형 데이터 모델에서 표현되는, 데이터 모델링 방법.
  15. 청구항 14에 있어서,
    상기 식별된 속성들이 동시에 사용되는 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티에 포함된 데이터의 개수가 기 설정된 제2 기준 값 이상이며 상기 엔티티에 포함된 데이터가 변경되는 빈도가 기 설정된 제3 기준 값 이하인 경우 상기 인덱스 테이블은 커버링 인덱스 테이블로서 상기 비관계형 데이터 모델에서 표현되고, 그렇지 않은 경우 상기 인덱스 테이블은 비-커버링 인덱스 테이블로서 상기 비관계형 데이터 모델에서 표현되는, 데이터 모델링 방법.
  16. 하나 또는 복수의 속성을 포함하는 엔티티를 정의하는 관계형 데이터 모델과 상기 엔티티와 연관된 사용 패턴을 정의하는 서술자를 획득하도록 구성된 입력부;
    상기 서술자에 기반하여, 상기 관계형 데이터 모델로부터 식별되는 상기 하나 또는 상기 복수의 속성 각각을 비관계형 데이터 모델에서 표현하기 위한 포맷을 기 설정된 포맷들 중에서 선택하도록 구성된 속성 표현 포맷 선택부; 및
    상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 엔티티를 식별하기 위한 키의 유형을 기 설정된 유형들 중에서 선택하도록 구성된 키 유형 선택부를 포함하는
    데이터 모델링 장치.
  17. 청구항 16에 있어서,
    상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 복수의 속성 중 둘 이상을 그룹핑하는 속성 그룹을 판정하도록 구성된 속성 그룹 판정부를 더 포함하는, 데이터 모델링 장치.
  18. 청구항 16에 있어서,
    상기 서술자에 기반하여, 상기 비관계형 데이터 모델에서 상기 복수의 속성 중 둘 이상이 동일한 인덱스로 검색되도록 인덱스 테이블을 판정하도록 구성된 인덱스 테이블 판정부를 더 포함하는, 데이터 모델링 장치.
  19. 청구항 16에 있어서,
    상기 포맷을 선택하는 것은 상기 하나 또는 상기 복수의 속성 각각이 상기 관계형 데이터 모델에서 정의된 다른 엔티티의 속성을 참조하는지를 상기 서술자에 기반하여 판정하는 것을 포함하는, 데이터 모델링 장치.
  20. 청구항 19에 있어서,
    상기 기 설정된 포맷들은 제1 포맷, 제2 포맷 및 제3 포맷을 포함하고,
    상기 포맷을 선택하는 것은 상기 다른 엔티티의 속성을 참조하는 속성에 대하여 상기 제1 포맷 내지 제3 포맷 중 하나를 상기 서술자에 기반하여 선택하는 것을 더 포함하며,
    상기 제1 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티와의 링크를 갖는다고 표현하고, 상기 제2 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티의 속성과 함께 상기 엔티티에 포함되도록 상기 다른 엔티티가 상기 엔티티에 임베딩된다고 표현하며, 상기 제3 포맷은 상기 비관계형 데이터 모델에서 상기 다른 엔티티의 속성을 참조하는 속성이 상기 다른 엔티티와 더불어 상기 엔티티에도 포함되도록 비정규화된다고 표현하는, 데이터 모델링 장치.
  21. 청구항 20에 있어서,
    상기 제1 포맷 내지 제3 포맷 중 하나를 선택하는 것은,
    상기 다른 엔티티에 포함된 속성의 값이 변경되는 빈도가 기 설정된 기준 값 이상인지 및 상기 다른 엔티티가 상기 엔티티의 자식인지 또는 상기 엔티티의 마스터인지를 상기 서술자에 기반하여 판정하는 것; 및
    상기 빈도가 상기 기 설정된 기준 값 이상이라고 판정되는 경우 상기 제1 포맷을 선택하고, 상기 빈도가 상기 기 설정된 기준 값 미만이고 상기 다른 엔티티가 상기 엔티티의 자식이라고 판정되는 경우 상기 제2 포맷을 선택하며, 상기 빈도가 상기 기 설정된 기준 값 미만이고 상기 다른 엔티티가 상기 엔티티의 마스터라고 판정되는 경우 상기 제3 포맷을 선택하는 것을 포함하는, 데이터 모델링 장치.
  22. 청구항 19에 있어서,
    상기 기 설정된 포맷들은 제4 포맷, 제5 포맷 및 제6 포맷을 포함하고,
    상기 포맷을 선택하는 것은 상기 관계형 데이터 모델에서 정의된 임의의 다른 엔티티의 속성을 참조하지 않는 속성에 대하여 상기 제4 포맷 내지 제6 포맷 중 하나를 상기 서술자에 기반하여 선택하는 것을 더 포함하며,
    상기 제4 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 동적으로 추가될 수 있는 다이나믹 속성임을 표현하고, 상기 제5 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 다수의 값을 가질 수 있는 어레이 속성임을 표현하며, 상기 제6 포맷은 상기 비관계형 데이터 모델에서 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 다이나믹 속성 및 어레이 속성도 아닌 일반 속성임을 표현하는, 데이터 모델링 장치.
  23. 청구항 22에 있어서,
    상기 제4 포맷 내지 제6 포맷 중 하나를 선택하는 것은,
    상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되었는지 및 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성이 하나의 값을 가지는지 또는 복수의 값을 가지는지를 상기 서술자에 기반하여 판정하는 것; 및
    상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되지 않았다고 판정되는 경우 상기 제4 포맷을 선택하고, 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되고 복수의 값을 가진다고 판정되는 경우 상기 제5 포맷을 선택하며, 상기 임의의 다른 엔티티의 속성을 참조하지 않는 속성의 스키마가 고정되고 하나의 값을 가진다고 판정되는 경우 상기 제6 포맷을 선택하는 것을 포함하는, 데이터 모델링 장치.
  24. 청구항 16에 있어서,
    상기 기 설정된 유형들은 순차적 키의 유형을 포함하고,
    상기 유형을 선택하는 것은, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티의 속성의 값이 기록되는 제2 빈도가 기 설정된 제2 기준 값 미만이라고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 순차적 키의 유형을 선택하는 것을 포함하는, 데이터 모델링 장치.
  25. 청구항 16에 있어서,
    상기 기 설정된 유형들은 랜덤 키의 유형을 포함하고,
    상기 유형을 선택하는 것은, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 미만이고 상기 엔티티의 속성의 값에 대하여 상기 키를 이용한 범위 검색이 필요하지 않다고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 랜덤 키의 유형을 선택하는 것을 포함하는, 데이터 모델링 장치.
  26. 청구항 16에 있어서,
    상기 기 설정된 유형들은 솔티드 키의 유형을 포함하고,
    상기 유형을 선택하는 것은, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티의 속성의 값이 기록되는 빈도가 기 설정된 제2 기준 값 이상이라고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 솔티드 키의 유형을 선택하는 것을 포함하는, 데이터 모델링 장치.
  27. 청구항 16에 있어서,
    상기 기 설정된 유형들은 프로모티드 필드 키의 유형을 포함하고,
    상기 유형을 선택하는 것은, 상기 엔티티의 속성의 값에 대하여 시계열 검색이 수행되는 제1 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티의 속성의 값에 대하여 상기 키를 이용한 범위 검색이 필요하다고 상기 서술자에 기반하여 판정되는 경우, 상기 엔티티에 대하여 상기 프로모티드 필드 키의 유형을 선택하는 것을 포함하는, 데이터 모델링 장치.
  28. 청구항 17에 있어서,
    상기 속성 그룹을 판정하는 것은 상기 복수의 속성 중 동시에 검색될 속성들을 상기 서술자에 기반하여 식별하는 것을 포함하고, 상기 식별된 속성들은 상기 속성 그룹으로서 상기 비관계형 데이터 모델에서 표현되는, 데이터 모델링 장치.
  29. 청구항 18에 있어서,
    상기 인덱스 테이블을 판정하는 것은 상기 복수의 속성 중 동일한 인덱스로 검색에 이용될 속성들을 상기 서술자에 기반하여 식별하는 것을 포함하고, 상기 식별된 속성들의 검색을 위한 인덱스들을 포함하는 커버링 인덱스 테이블 또는 비-커버링 인덱스 테이블로서 상기 인덱스 테이블이 상기 비관계형 데이터 모델에서 표현되는, 데이터 모델링 장치.
  30. 청구항 29에 있어서,
    상기 식별된 속성들이 동시에 사용되는 빈도가 기 설정된 제1 기준 값 이상이고 상기 엔티티에 포함된 데이터의 개수가 기 설정된 제2 기준 값 이상이며 상기 엔티티에 포함된 데이터가 변경되는 빈도가 기 설정된 제3 기준 값 이하인 경우 상기 인덱스 테이블은 커버링 인덱스 테이블로서 상기 비관계형 데이터 모델에서 표현되고, 그렇지 않은 경우 상기 인덱스 테이블은 비-커버링 인덱스 테이블로서 상기 비관계형 데이터 모델에서 표현되는, 데이터 모델링 장치.
KR1020130162097A 2013-12-24 2013-12-24 데이터 모델링 방법 및 장치 KR101545216B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130162097A KR101545216B1 (ko) 2013-12-24 2013-12-24 데이터 모델링 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130162097A KR101545216B1 (ko) 2013-12-24 2013-12-24 데이터 모델링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20150074376A KR20150074376A (ko) 2015-07-02
KR101545216B1 true KR101545216B1 (ko) 2015-08-18

Family

ID=53787521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130162097A KR101545216B1 (ko) 2013-12-24 2013-12-24 데이터 모델링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101545216B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11531724B2 (en) 2020-03-28 2022-12-20 Dataparency, LLC Entity centric database

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11531724B2 (en) 2020-03-28 2022-12-20 Dataparency, LLC Entity centric database

Also Published As

Publication number Publication date
KR20150074376A (ko) 2015-07-02

Similar Documents

Publication Publication Date Title
US7689574B2 (en) Index and method for extending and querying index
Parker et al. Comparing nosql mongodb to an sql db
US7464084B2 (en) Method for performing an inexact query transformation in a heterogeneous environment
RU2427896C2 (ru) Аннотирование документов в совместно работающих приложениях данными в разрозненных информационных системах
US10657116B2 (en) Create table for exchange
KR101369020B1 (ko) 보고명세로부터 olap 질의 생성시 불균형 계층에 대한 보상
JP5626733B2 (ja) 個人情報匿名化装置及び方法
JP6281225B2 (ja) 情報処理装置
US20080228718A1 (en) System and method for multi-dimensional aggregation over large text corpora
JP2010520549A (ja) データの記憶および管理の方法
KR101546333B1 (ko) 복합 저장소를 가지는 데이터베이스에서 질의 처리 장치 및 방법
WO2018097846A1 (en) Edge store designs for graph databases
JP2006172446A (ja) 複合データアクセス
CN107944041A (zh) 一种hdfs的存储结构优化方法
CN110874366B (zh) 数据处理、查询方法和装置
JP2013149061A (ja) 文書類似性評価システム、文書類似性評価方法およびコンピュータ・プログラム
KR101545216B1 (ko) 데이터 모델링 방법 및 장치
KR101440475B1 (ko) 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체
US20060085464A1 (en) Method and system for providing referential integrity constraints
Li et al. Efficient indexing for diverse query results
KR101679011B1 (ko) 데이터베이스에서 데이터 이동을 처리하는 방법 및 장치
JP7059707B2 (ja) データ検索方法、データ検索プログラム、及び情報処理装置
Kvet et al. Efficiency of the relational database tuple access
JP2004192657A (ja) 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム

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
LAPS Lapse due to unpaid annual fee