KR101815813B1 - 클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치 - Google Patents

클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치 Download PDF

Info

Publication number
KR101815813B1
KR101815813B1 KR1020170099845A KR20170099845A KR101815813B1 KR 101815813 B1 KR101815813 B1 KR 101815813B1 KR 1020170099845 A KR1020170099845 A KR 1020170099845A KR 20170099845 A KR20170099845 A KR 20170099845A KR 101815813 B1 KR101815813 B1 KR 101815813B1
Authority
KR
South Korea
Prior art keywords
space
time
data
time data
database
Prior art date
Application number
KR1020170099845A
Other languages
English (en)
Inventor
민덕기
신인수
Original Assignee
건국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 건국대학교 산학협력단 filed Critical 건국대학교 산학협력단
Priority to KR1020170099845A priority Critical patent/KR101815813B1/ko
Application granted granted Critical
Publication of KR101815813B1 publication Critical patent/KR101815813B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F17/30946
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F17/30321

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (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

본 발명은 클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치에 관한 발명이며, 본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 방법은 사용자로부터 시공간 질의를 수신하는 단계, 시공간 질의에 시간 데이터 및 공간 데이터가 존재하는지 결정하는 단계, 시간 데이터 및 공간 데이터를 기초로 시공간 데이터를 생성하는 단계, 복수의 시공간 분할 영역 중 시공간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계를 포함하며, 시공간 데이터에 대한 인덱스를 구축함으로써, 시공간 데이터를 효율적으로 관리할 수 있는 효과가 있다.

Description

클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치 {METHOD FOR INDEXING SPATIO-TEMPORAL DATA IN CLOUD SERVICES AND APPARATUS USING THE SAME}
본 발명은 클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치에 관한 것이다.
최근 클라우스 서비스를 이용한 각종 컨텐츠의 사용이 이루어지고 있다. 클라우스 서비스란 사진, 문서, 동영상 등 각종 컨텐츠를 개인 PC가 아닌 클라우스 서버에 저장한 뒤 인터넷으로 클라우스 서버에 접속하여 노트북, 스마트폰 등 다양한 기기로 이용할 수 있는 서비스를 의미한다. 사용자는 인터넷에 접속하기만 하면 저장한 소프트웨어 및 데이터를 클라우스 서비스를 통하여 이용할 수 있다.
나아가 클라우드와 연동가능한 네트워크 상에서 시공간 데이터가 이용될 수 있다. 기존 시맨틱 웹 환경에서는 시공간 데이터를 단일 노드에 저장하고 처리하기 때문에 데이터의 양이 늘어날수록 시스템의 확장이 어려워지고 시공간 데이터의 검색을 효율적으로 처리하기 어려운 문제점이 존재한다. 또한, 시공간 데이터의 시공간 정보들을 효율적으로 활용하지 못하므로 시공간 데이터를 이용한 시공간 연산 시 연산 시간이 오래 걸리게 된다.
기존의 시멘틱 웹 환경에서는 시간 데이터 및 공간 데이터를 따로 구분하지 않고 하나의 단일한 노드를 통하여 저장한다. 따라서, 시간 데이터 및 공간 데이터를 기반으로 데이터를 검색할 경우, 하나의 단일한 노드를 통하여 데이터를 검색하기 때문에 빠른 접근성을 확보할 수 있다. 그러나 시간 데이터 및 공간 데이터가 빅데이터의 형태로 발전함에 따라, 방대한 양의 데이터를 검색할 때 단일한 노드를 통하여 검색을 진행하거나 빅데이터를 이용한 연산을 수행하는데 많은 시간이 소요되고 있다. 즉, 단일 노드에 접근하여 데이터의 전체 범위(Full Scan)를 검색하게 되기 때문에 시공간 빅데이터를 검색하고 저장하는 등의 데이터 연산을 수행할 때 소요되는 시간이 증가되어 문제된다.
본 발명의 발명자들은 시공간 데이터 인덱싱에 있어, 인접한 시간 정보 및 공간 정보를 갖는 시공간 데이터를 클러스터링함으로써, 시공간 데이터를 보다 효율적으로 관리할 수 있다는 점을 인지하였다.
이에, 본 발명이 해결하고자 하는 과제는 시간 정보 및 공간 정보의 인접한 정도에 따라 시공간 데이터를 클러스터링하고, 물리적으로 인접하게 저장할 수 있는 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 시공간 인덱스를 이용하는 시공간 데이터를 이용한 다양한 연산을 제공함으로써 보다 효율적인 시공간 데이터 연산을 수행할 수 있는 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치를 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 방법은 사용자로부터 시공간 질의를 수신하는 단계, 시공간 질의에 시간 데이터 및 공간 데이터가 존재하는지 결정하는 단계, 시간 데이터 및 공간 데이터를 기초로 시공간 데이터를 생성하는 단계, 복수의 시공간 분할 영역 중 시공간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계를 포함한다.
본 발명의 다른 특징에 따르면, 시공간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계는, 시간 데이터를 이용하여 복수의 시공간 분할 영역 중에서 시간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계 및 공간 데이터를 이용하여 검색된 시간 데이터에 대응하는 시공간 분할 영역 중에서 공간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 분할 영역에 기초한 시공간 데이터 연산에 대한 요청을 수신하는 단계, 시공간 분할 영역에 대응하는 데이터 베이스를 검출하는 단계, 시공간 데이터를 이용하여 데이터 베이스에 대해서 시공간 데이터 연산을 수행하는 단계 및 시공간 데이터 연산의 결과를 사용자에게 송신하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 저장 연산인 경우, 시공간 데이터 연산을 수행하는 단계는, 시공간 분할 영역에 시공간 데이터를 저장하는 단계 및 데이터 베이스에 시공간 질의에 존재하는 내용 데이터를 저장하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산을 수행하는 단계는, 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 오버플로우인 경우, 시공간 분할 영역을 복수의 하위 시공간 분할 영역으로 분할하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 삭제 연산인 경우, 시공간 데이터 연산을 수행하는 단계는, 시공간 분할 영역에 저장되어 있는 시공간 데이터를 삭제하는 단계 및 데이터 베이스에 저장되어 있는 내용 데이터를 삭제하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 연산을 수행하는 단계는, 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 언더플로우인 경우, 시공간 분할 영역을 하나의 시공간 분할 영역로 병합하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 갱신 연산인 경우, 시공간 데이터 연산을 수행하는 단계는, 시공간 분할 영역에 저장되어 있는 시공간 데이터를 시공간 데이터로 갱신하는 단계 및 데이터 베이스에 저장되어 있는 내용 데이터를 시공간 질의에 존재하는 내용 데이터로 갱신하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 검색 연산인 경우, 시공간 데이터 연산을 수행하는 단계는, 데이터 베이스에 저장되어 있는 내용 데이터를 추출하는 단계를 포함하며, 시공간 데이터 연산의 결과를 사용자에게 송신하는 단계는, 내용 데이터를 사용자에게 송신하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 관계 연산인 경우, 시공간 데이터 연산을 수행하는 단계는, 데이터 베이스에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터의 관계에 대한 연산을 수행하는 단계를 포함하며, 데이터 베이스에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터와의 관계는, contain, disjoint, overlap, cross, touch 및 equal 중 어느 하나와 관련될 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터는 제1 시공간 데이터 및 제2 시공간 데이터를 포함하며, 시공간 분할 영역은 제1 시공간 데이터에 대응하는 제1 시공간 분할 영역 및 제2 시공간 데이터에 대응하는 제2 시공간 분할 영역을 포함하며, 데이터 베이스는, 제1 시공간 분할 영역에 대응하는 제1 데이터 베이스 및 제2 시공간 분할 영역에 대응하는 제2 데이터 베이스를 포함하며, 시공간 데이터 연산을 수행하는 단계는, 제1 시공간 데이터 및 제2 시공간 데이터를 이용하여 제1 데이터 베이스 및 제2 데이터 베이스에 대해서 시공간 데이터 연산을 수행하는 단계일 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 합집합 연산인 경우, 시공간 데이터 연산을 수행하는 단계는, 제1 데이터 베이스에 저장된 제1 내용 데이터 및 제2 데이터 베이스에 저장된 제2 내용 데이터를 결합한 합집합 내용 데이터를 생성하는 단계를 포함하며, 시공간 데이터 연산의 결과를 사용자에게 송신하는 단계는, 합집합 내용 데이터를 사용자에게 송신하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 차집합 연산인 경우, 시공간 데이터 연산을 수행하는 단계는, 제1 데이터 베이스에 저장된 제1 내용 데이터에서 제2 데이터 베이스에 저장된 제2 내용 데이터를 제외한 차집합 내용 데이터를 생성하는 단계를 포함하며, 시공간 데이터 연산의 결과를 사용자에게 송신하는 단계는, 차집합 내용 데이터를 사용자에게 송신하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 교집합 연산인 경우, 시공간 데이터 연산을 수행하는 단계는, 제1 데이터 베이스에 저장된 제1 내용 데이터 및 제2 데이터 베이스에 저장된 제2 내용 데이터 모두에 포함된 내용 데이터인 교집합 내용 데이터를 생성하는 단계를 포함하며, 시공간 데이터 연산의 결과를 사용자에게 송신하는 단계는, 교집합 내용 데이터를 사용자에게 송신하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계는, 복수의 시공간 분할 영역의 배열내에서 좌상, 우상, 좌하, 우하의 순서로 (Z 모양의 순서로) 시공간 분할 영역을 검색함으로써 수행될 수 있다.
본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 장치는, 사용자로부터 시공간 질의를 수신하도록 구성된 통신부 및 시공간 질의에서 시간 데이터 및 공간 데이터가 존재하는지 결정하고, 시간 데이터 및 공간 데이터를 기초로 시공간 데이터를 생성하고, 복수의 시공간 분할 영역 중 시공간 데이터에 대응하는 시공간 분할 영역을 검색하도록 구성된 제어부를 포함한다.
본 발명의 다른 특징에 따르면, 제어부는, 복수의 데이터 베이스 중 시공간 분할 영역에 대응하는 데이터 베이스를 검출하고, 시공간 데이터를 이용하여 데이터 베이스에 대해서 시공간 데이터 연산을 수행하도록 더 구성되고, 통신부는, 시공간 분할 영역에 기초한 시공간 데이터 연산에 대한 요청을 수신하고, 시공간 데이터 연산의 결과를 사용자에게 송신하도록 더 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 저장 연산인 경우, 제어부는, 시공간 데이터 연산의 수행에 있어, 시공간 분할 영역에 시공간 데이터를 저장하고, 데이터 베이스에 시공간 질의에 존재하는 내용 데이터를 저장하도록 더 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 삭제 연산인 경우, 제어부는, 시공간 데이터 연산의 수행에 있어, 시공간 분할 영역에 저장되어 있는 시공간 데이터를 삭제하고, 데이터 베이스에 저장되어 있는 내용 데이터를 삭제하도록 더 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 시공간 데이터 연산이 시공간 데이터 관계 연산인 경우, 제어부는, 시공간 데이터 연산의 수행에 있어, 데이터 베이스에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터에 대한 연산을 수행하도록 더 구성되고, 데이터 베이스에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터와의 관계는, contain, disjoint, overlap, cross, touch 및 equal 중 어느 하나와 관련될 수 있다.
본 발명은 시공간 데이터에 대한 인덱스를 구축함으로써, 시공간 데이터를 효율적으로 관리할 수 있는 효과가 있다.
본 발명은 시공간 데이터를 클러스터링하여 저장함으로써, 시공간 연산을 수행하는데 소요되는 시간을 줄이고, 시공간 연산의 수행 효율을 증가시킬 수 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 장치와 사용자 디바이스, 데이터 베이스 및 시공간 분할 영역의 관계를 설명하기 위한 개략도이다.
도 2는 본 발명의 일 실시예에 따른 시공간 인덱싱 장치의 개략적인 구성을 도시한 블럭도이다.
도 3은 본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 순서도이다.
도 4a 내지 4c는 본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 5는 본 발명의 다른 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 순서도이다.
도 6a 내지 도 6d는 본 발명의 또 다른 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 7a 내지 도 7b는 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 8a 내지 도 8b는 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 9a 내지 도 9b는 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 10은 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 11은 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 12는 시공간 데이터 검색 질의에 따른 탐색한 노드 수에 대한 그래프이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우 '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
구성요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
별도로 명시하지 않는 한 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 도시된 것이며, 본 발명이 도시된 구성의 크기 및 두께에 반드시 한정되는 것은 아니다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 장치와 사용자 디바이스, 데이터 베이스 및 시공간 분할 영역의 관계를 설명하기 위한 개략도이다.
도 1을 참조하면, 시공간 데이터 인덱싱 장치(100)는 수신된 시공간 질의에 존재하는 시공간 데이터를 인덱싱하고 시공간 데이터를 이용하여 시공간 연산을 수행하는 장치이다. 시공간 질의는 시간 및 공간에 대한 정보를 포함하는 질의이다. 또한, 시공간 데이터는 시간 및 공간에 대한 정보를 포함하는 데이터로서, 시간 데이터 및 공간 데이터를 기초로 생성된 데이터를 의미한다. 예를 들어, 공간 데이터는 건물 등과 같은 정적인 데이터일 수 있고, 또는 이동 수단이나 사람과 같은 동적인 시간에 따라 위치가 변동되는 동적인 데이터일 수 있다. 그리고, 시공간 연산은 시공간 데이터를 이용한 연산을 의미한다. 구체적으로, 시공간 데이터 인덱싱 장치(100)는 시공간 질의에 존재하는 시공간 데이터를 생성하고, 생성된 시공간 데이터에 대응하는 시공간 분할 영역을 선택할 수 있다.
시공간 데이터 인덱싱 장치(100)는 인덱서 및 연산부를 포함할 수 있다. 시공간 데이터 인덱싱 장치(100)의 인덱서는 시공간 데이터에 대응하는 시공간 분할 영역을 검색하는 장치이다. 복수의 시공간 분할 영역(400)은 시공간 데이터가 저장되는 장소로서, 인접한 시간 및 공간 정보를 갖는 시공간 데이터는 클러스터링되어 물리적으로 가까운 시공간 분할 영역에 저장될 수 있다. 시공간 데이터 인덱싱 장치(100)의 연산부는 시공간 데이터 및 시공간 질의에 포함된 내용 데이터를 이용하여 시공간 연산을 수행할 수 있다. 이때, 내용 데이터는 시공간 질의에 포함된 시공간 데이터를 제외한 모든 데이터를 의미할 수 있다. 인덱서 및 연산부는 서로 데이터를 수신 및 송신할 수 있다. 구체적으로, 인덱서는 시공간 데이터에 대응하는 시공간 분할 영역의 주소코드를 연산부로 송신할 수 있다. 연산부는 시공간 분할 영역의 주소코드를 이용하여 시공간 분할 영역에 대응하는 데이터 베이스(300)를 검출할 수 있고, 데이터 베이스(300)로부터 데이터 베이스(300)에 저장되어 있는 내용 데이터를 추출하여 시공간 연산에 이용할 수 있다. 또한, 연산부는 시공간 연산의 결과를 인덱서에 송신할 수 있으며, 인덱서는 수신한 시공간 연산의 결과에 따라 시공간 데이터 및 시공간 데이터에 대응하는 시공간 분할 영역에 대한 정보를 업데이트할 수 있다.
사용자 디바이스(200)는 시공간 데이터 인덱싱 장치(100)에 시공간 질의를 송신하고, 시공간 연산의 결과를 수신하는 장치이다. 사용자 디바이스(200)는 시공간 데이터 인덱싱 장치(100)와 유선 또는 무선으로 통신할 수 있다. 사용자 디바이스(200)는 도 1에 도시된 바와 같이 데스크탑일 수 있으나, 이에 제한되지 않는 다양한 컴퓨팅 장치일 수 있다.
데이터 베이스(300)는 시공간 질의에 존재하는 시공간 데이터 및/또는 이에 대응하는 내용 데이터가 저장된다. 데이터 베이스(300)는 시공간 분할 영역 각각에 대응하여 존재할 수 있다. 즉, 시공간 데이터 인덱싱 장치(100)는 수신한 시공간 질의에 존재하는 시공간 데이터를 대응하는 시공간 분할 영역에 저장할 수 있다. 그리고, 시공간 데이터 인덱싱 장치(100)는 복수의 시공간 분할 영역(400) 각각에 대응하는 데이터 베이스(300)에 시공간 질의에 존재하는 내용 데이터를 저장할 수 있다. 또한, 복수의 시공간 분할 영역(400)의 경우, 인접한 시간 및 공간 정보를 갖는 시공간 데이터가 클러스터링되어 물리적으로 가까운 장소에 저장되는 것과 마찬가지로, 데이터 베이스(300)에도 인접한 시간 및 공간 정보를 갖는 내용 데이터가 클러스터링되어 물리적으로 가까운 장소에 저장될 수 있다. 도 1을 참조하면, 복수의 시공간 분할 영역(400)에는 각각의 시공간 분할 영역에 연결된 대응하는 데이터 베이스(300)가 존재한다. 따라서, 인접한 시간 및 공간 정보를 갖는 시공간 질의의 경우, 시공간 분할 영역에 시공간 데이터가 인접하게 저장되며, 데이터 베이스(300)에도 내용 데이터가 인접하게 저장될 수 있다.
맵리듀서(500)는 시공간 질의에 대한 최적의 질의 수행 계획을 선택하는 장치를 의미한다. 질의 수행 계획은 시공간 질의를 분석하여 복수의 세부 질의를 구성하고, 각각의 세부 질의를 수행하는 순서에 대한 계획을 의미한다. 맵리듀서(500)는 시공간 질의에 대한 질의 수행 계획을 생성하고, 질의 수행 계획 중 시간 및 자원이 가장 적게 소요되는 최적 질의 수행 계획을 선택할 수 있다. 맵리듀서(500)는 시공간 데이터 인덱싱 장치(100), 복수의 시공간 분할 영역(400) 및 데이터 베이스(300)와 네트워크 상에 연결되어 통신할 수 있다. 맵리듀서(500)는 시공간 데이터 인덱싱 장치(100)로부터 시공간 데이터의 시공간 분할 영역 주소코드를 수신할 수 있으며, 이를 이용하여 시공간 분할 영역 및 데이터 베이스(300)로부터 시공간 데이터 및 내용 데이터를 수신할 수 있다. 또한, 맵리듀서(500)는 최적 질의 수행 계획을 생성하여 이를 시공간 데이터 인덱싱 장치(100)로 송신할 수 있다.
시공간 데이터 인덱싱 장치(100), 복수의 시공간 분할 영역(400), 데이터 베이스(300) 및 맵리듀서(500) 중 적어도 하나는 동일한 장치 내에서 구현될 수 있다. 예를 들면, 시공간 데이터 인덱싱 장치(100)는 복수의 시공간 분할 영역(400)을 포함할 수 있다. 이때, 시공간 데이터 인덱싱 장치(100)는 사용자 디바이스(200)로부터 수신한 시공간 질의로부터 시공간 데이터를 생성하고 동일한 장치에 존재하는 복수의 시공간 분할 영역(400) 중 시공간 데이터에 대응하는 시공간 분할 영역을 검색하여 시공간 데이터를 시공간 분할 영역에 저장할 수 있다.
도 2는 본 발명의 일 실시예에 따른 시공간 인덱싱 장치의 개략적인 구성을 도시한 블럭도이다. 설명의 편의를 위해 도 1을 참조하여 설명한다.
도 2를 참조하면, 시공간 데이터 인덱싱 장치(100)는 통신부(110) 및 제어부(120)를 포함할 수 있다.
시공간 데이터 인덱싱 장치(100)의 통신부(110)는 시공간 데이터 인덱싱 장치(100)와 외부 기기 사이에서 정보를 송신하거나 수신할 수 있다. 구체적으로, 통신부(110)는 사용자 디바이스(200)로부터 시공간 질의를 수신할 수 있다. 또한, 사용자 디바이스(200)로부터 시공간 분할 영역에 기초한 시공간 데이터 연산에 대한 요청을 수신하고, 시공간 데이터 연산의 결과를 사용자 디바이스(200)에게 송신할 수 있다. 또한, 시공간 인덱싱 장치가 생성한 시공간 데이터를 복수의 시공간 분할 영역(400)에 송신하고, 시공간 질의에 포함된 내용 데이터를 데이터 베이스(300)에 송신할 수 있다. 그리고, 통신부(110)는 맵리듀스에 시공간 분할 영역 주소코드를 송신하고, 맵리듀스로부터 최적 질의 수행 계획을 수신할 수도 있다.
시공간 데이터 인덱싱 장치(100)의 제어부(120)는 시공간 데이터 인덱싱 장치(100)에서 각종 기능을 수행할 수 있다. 구체적으로, 제어부(120)는 시공간 질의에서 시간 데이터 및 공간 데이터가 존재하는지 결정하고, 시간 데이터 및 공간 데이터를 기초로 시공간 데이터를 생성할 수 있다. 또한, 제어부(120)는 복수의 시공간 분할 영역(400) 중 시공간 데이터에 대응하는 시공간 분할 영역을 검색할 수 있다. 그리고, 제어부(120)는 복수의 데이터 베이스(300) 중 시공간 분할 영역에 대응하는 데이터 베이스(300)를 검출하고, 시공간 데이터를 이용하여 데이터 베이스(300)에 대하여 시공간 데이터 연산을 수행할 수 있다. 시공간 데이터 연산이 시공간 데이터 저장 연산인 경우, 제어부(120)는 시공간 데이터 연산의 수행에 있어, 시공간 분할 영역에 시공간 데이터를 저장하고, 데이터 베이스(300)에 시공간 질의에 존재하는 내용 데이터를 저장할 수 있다. 이와 달리, 시공간 데이터 연산이 시공간 데이터 삭제 연산인 경우, 제어부(120)는 시공간 데이터 연산의 수행에 있어, 시공간 분할 영역에 저장되어 있는 시공간 데이터를 삭제하고, 데이터 베이스(300)에 저장되어 있는 내용 데이터를 삭제할 수 있다. 또한, 시공간 데이터 연산이 시공간 데이터 관계 연산인 경우, 제어부(120)는 시공간 데이터 연산의 수행에 있어, 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터에 대한 연산을 수행할 수 있다.
시공간 데이터 인덱싱 장치(100)의 구성은 이에 제한되지 않고 시공간 데이터 인덱싱 장치(100)의 기능을 수행하기 위해 필요한 다른 구성들을 추가적으로 포함할 수 있다.
또한, 시공간 데이터 인덱싱 장치(100)의 통신부(110) 및 제어부(120)는 데이터 및 신호를 서로 교환할 수 있다. 즉, 시공간 데이터 인덱싱 장치(100)의 각각의 구성 요소는 다른 구성 요소로부터 데이터 및 신호를 전달 받을 수 있으며, 이를 처리한 결과 데이터 및 신호를 다른 구성 요소로 전달할 수 있다. 구체적으로, 통신부(110)는 사용자 디바이스(200)로부터 수신한 시공간 질의를 제어부(120)로 전달할 수 있다. 또한, 제어부(120)는 시공간 데이터 연산을 수행한 결과를 통신부(110)로 전달할 수 있다. 시공간 데이터 인덱싱 장치(100)의 각 구성 요소의 데이터 및 신호의 교환은 이에 제한되지 않으며, 필요에 따라 다양한 방법으로 교환이 이루어질 수 있다.
도 3은 본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 순서도이다. 도 4a 내지 4c는 본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다. 설명의 편의를 위해 도 1 내지 도 2를 참조하여 설명한다.
먼저, 시공간 데이터 인덱싱 장치(100)는 사용자 디바이스(200)로부터 시공간 질의를 수신한다(S110). 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 네트워크를 통하여 연결된 사용자 디바이스(200)로부터 시공간 질의를 수신할 수 있다. 시공간 질의는 시간 및 공간 정보가 포함된 질의로서 시간 데이터, 공간 데이터 및 내용 데이터를 포함할 수 있다. 통신부(110)는 시공간 데이터 인덱싱 장치(100)의 제어부(120)로 수신한 시공간 질의를 전달할 수 있다.
이어서, 시공간 데이터 인덱싱 장치(100)는 시공간 질의에 시간 데이터 및 공간 데이터가 존재하는지 결정한다(S120). 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 시공간 질의를 파싱하여 시간 데이터 및 공간 데이터가 존재하는지 결정할 수 있다. 제어부(120)는 시간 데이터 및 공간 데이터가 존재한다고 결정한 경우, 시간 데이터 및 공간 데이터를 추출할 수 있다. 예를 들면, 시간 데이터는 2017년 1월 1일부터 2017년 2월 1일 까지의 시간 범위일 수 있고, 공간 데이터는 대한민국 서울시일 수 있다. 제어부(120)는 파싱된 시공간 질의에서 시간 데이터 및 공간 데이터가 존재하는지 검색하며, 시간 데이터 및 공간 데이터가 존재한다고 결정한 경우, 이들을 추출할 수 있다.
이어서, 시공간 데이터 인덱싱 장치(100)는 시간 데이터 및 공간 데이터를 기초로 시공간 데이터를 생성한다(S130). 시공간 데이터는 시간 데이터의 시간 정보 및 공간 데이터의 공간 정보를 모두 포함하는 데이터를 의미한다. 제어부(120)는 이전 단계에서 추출한 시간 데이터 및 공간 데이터를 기초로 시공간 데이터를 생성할 수 있다. 예를 들면, 2017년 1월 1일부터 7017년 2월 1일까지라는 시간 정보를 갖는 시간 데이터 및 대한민국 서울시라는 공간 정보를 갖는 공간 데이터는 [2017년 1월 1일부터 2017년 2월 1일, 대한민국 서울시]와 같이 하나의 데이터인 시공간 데이터로 변환될 수 있다. 따라서, 시간 및 공간 정보는 각각 별도의 형태인 시간 데이터 및 공간 데이터로 사용되지 않고 시공간 데이터라는 하나의 형태로 사용될 수 있다.
이어서, 시공간 데이터 인덱싱 장치(100)는 복수의 시공간 분할 영역(400) 중 시공간 데이터에 대응하는 시공간 분할 영역을 검색한다(S140). 시공간 분할 영역은 시공간 데이터가 저장될 수 있는 장소로서, 시간 및 공간을 기준으로 분할된 복수의 영역을 포함할 수 있다.
도 4a를 참조하면, 도시된 그래프는 시공간 분할 영역을 도시한 그래프이다. 구체적으로, 그래프의 X축 및 Y축과 평행한 평면은 공간 영역을 의미할 수 있다. 또한, 그래프의 Z축은 시간 영역을 의미할 수 있다. 즉, 그래프의 X축 및 Y축과 평행한 평면들 각각은 동일한 시간 정보를 갖는 공간 영역을 의미할 수 있다. 그리고, Z축 상의 t1, t2 및 t3는 서로 상이한 시간 정보를 의미할 수 있으며, Z축 상의 지점이 달라짐에 따라 시간 정보는 달라질 수 있다. 예들 들면, t1은 2017년 1월 1일이고, t2는 2017년 2월 1일이며, t3는 2017년 3월 1일일 수 있다. Z축 상의 t1 지점을 포함하는 X축 및 Y축과 평행한 평면은 t1의 시간 정보를 갖는 공간 영역을 의미할 수 있으며, Z축 상의 t2 지점을 포함하는 X축 및 Y축과 평행한 평면은 t2의 시간 정보를 갖는 공간 영역을 의미할 수 있다. 마찬가지로, Z축 상의 t3 지점을 포함하는 X축 및 Y축과 평행한 평면은 t3의 시간 정보를 갖는 공간 영역을 의미할 수 있다. 도 4a에 도시된 바와 같이, 시공간 분할 영역은 시간 정보 및 공간 정보를 모두 포함하는 3차원 그래프로 표현될 수 있다.
도 4a에 도시된 3차원 영역은 복수의 시공간 분할 영역(400)을 포함할 수 있다. 즉, 3차원 영역은 직육면체의 형상의 복수의 시공간 분할 영역(400)을 포함할 수 있다. 시공간 분할 영역은 Z축과 대응하는 시간 정보, X축 및 Y축과 대응하는 공간 정보를 포함할 수 있다. 예를 들면, Z축의 t1 지점을 포함하는 평면은 t1이라는 시간 정보를 갖는 공간 영역을 의미할 수 있다. 이때, 시공간 분할 영역은 분할되어 복수의 하위 시공간 분할 영역을 구성할 수 있다. t1 지점을 포함하는 평면은 X축 및 Y축과 평행한 두 직선에 의하여 4개의 영역으로 분할될 수 있다. 또한 4개의 하위 시공간 분할 영역은 각기 다른 주소코드를 가질 수 있다. 시공간 분할 영역의 주소코드는 각각의 시공간 분할 영역을 식별할 수 있게 하는 주소코드를 의미한다. 예를 들면, 시공간 분할 영역의 주소코드는 복수의 시공간 분할 영역(400)의 좌/상측에 0을 할당하고 우/하측에는 1을 할당함으로써 부여될 수 있다. 따라서, 도 4a에 도시된 t1의 시간 정보를 갖는 복수의 하위 시공간 분할 영역에는 좌/상층부터 우/하측 방향으로 각각 0, 1, 2, 3의 주소코드가 부여될 수 있다.
도 4b를 참조하면, 도 4b에 도시된 그래프는 도 4a의 t1의 시간 정보를 갖는 시공간 분할 영역을 도시한 그래프이다. 도 4a와 달리 도 4b는 X축 및 Y축에 평행한 2차원 평면의 형태로 도시되었다. 앞서 설명한 바와 같이, 시공간 분할 영역은 분할되어 복수의 하위 시공간 분할 영역을 구성할 수 있다. 도 4b를 참조하면, 주소코드가 0인 시공간 분할 영역은 복수의 하위 시공간 분할 영역으로 분할될 수 있다. 복수의 하위 시공간 분할 영역에는 각각 00, 01, 02, 03의 주소코드가 부여될 수 있다.
시공간 분할 영역에는 시공간 데이터(410)가 저장될 수 있다. 구체적으로, 도 4b의 점선으로 표시된 직사각형은 시공간 분할 영역에 저장된 시공간 데이터(410)를 의미할 수 있다. 시공간 데이터(410)의 시공간 분할 영역 내의 위치는 시공간 데이터(410)의 시간 정보 및 공간 정보에 따라 결정될 수 있다. 시공간 데이터(410)에 표시된 알파벳은 편의상 각각의 시공간 데이터(410)를 구별하기 위한 것으로서, 예를 들면, a라고 표시된 시공간 데이터는 a 시공간 데이터라고 부를 수 있다. a 시공간 데이터의 경우, t1의 시간 정보 및 00의 주소코드에 대응하는 공간 정보를 포함할 수 있다. 시공간 데이터 인덱싱 장치(100)는 시공간 질의로부터 시간 데이터 및 공간 데이터를 추출하여 시공간 데이터(410)를 생성하며, 시공간 데이터에 대응하는 시공간 분할 영역을 검색할 수 있다. a 시공간 데이터의 경우, 시공간 데이터 인덱싱 장치(100)는 시공간 질의로부터 t1의 시간 정보를 갖는 시간 데이터 및 00의 주소코드에 대응하는 공간 데이터를 추출하여 t1의 시간 정보 및 00의 주소코드에 대응하는 공간 정보를 포함하는 시공간 데이터를 생성할 수 있다. 또한, 시공간 데이터 인덱싱 장치(100)는 a 시공간 데이터에 대응하는 시공간 분할 영역을 검색할 수 있으며, 검색된 시공간 분할 영역은 t1의 시간 영역 및 00의 주소코드에 대응하는 시공간 분할 영역일 수 있다.
도 4c를 참조하면, 복수의 시공간 분할 영역(400)은 복수의 노드와 대응될 수 있다. 복수의 노드는 root 노드 및 복수의 하위 노드를 포함할 수 있다. 0 노드 내지 3 노드는 각각 0의 주소코드 내지 3의 주소코드를 갖는 시공간 분할 영역과 대응될 수 있다. 또한, 00노드 내지 03 노드는 각각 00의 주소코드 내지 03의 주소코드를 갖는 시공간 분할 영역과 대응될 수 있다. 0 노드는 00 노드 내지 03 노드를 하위 노드로 가질 수 있으며, 이는 0 주소코드를 갖는 시공간 분할 영역이 00 주소코드 내지 03 주소코드를 갖는 복수의 하위 시공간 분할 영역으로 분할될 수 있는 것과 대응된다. 이때, 복수의 노드 중 말단 노드는 대응되는 데이터 베이스(300)를 가질 수 있다. 말단 노드는 분할된 하위 노드를 포함하지 않은 노드를 의미한다. 도 4c에 도시된 바와 같이, 00노드, 01노드, 02노드, 03노드, 1노드, 2노드 및 3노드가 말단 노드에 해당할 수 있다. 각각의 말단 노드에 대응되는 시공간 분할 영역은 대응되는 데이터 베이스(300)가 존재할 수 있다. 데이터 베이스(300)에는 내용 데이터가 저장될 수 있다. 예를 들면, 00의 주소코드를 갖는 시공간 분할 영역은 대응되는 데이터 베이스(300)가 존재할 수 있고, 데이터 베이스(300)에는 a 내용 데이터, c 내용 데이터 및 d 내용 데이터가 저장되어 있을 수 있다.
시공간 데이터 인덱싱 장치(100)가 수신한 시공간 질의에는 t1의 시간 정보를 갖는 시간 데이터, 00 및 01의 주소코드에 대응하는 공간 정보를 갖는 공간 데이터 및 c 내용 데이터가 포함될 수 있다. 이에, 시공간 데이터 인덱싱 장치(100)는 시간 데이터 및 공간 데이터를 기초로 시공간 데이터를 생성하고, 시공간 데이터에 대응하는 시공간 분할 영역 검색할 수 있다. 또한, 시공간 데이터 인덱싱 장치(100)는 시공간 분할 영역에 대응하는 데이터 베이스(300)에 c 내용 데이터를 저장할 수 있다. 따라서, 도 4c의 00노드 및 01노드 각각에 대응하는 데이터 베이스(300)에 c 내용 데이터가 저장될 수 있다.
본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는 시공간 데이터에 대한 인덱스를 구축하고 시공간 데이터를 클러스터링하여 저장함으로써 시공간 데이터를 효율적으로 검색할 수 있다.
구체적으로, 기존의 시공간 데이터를 처리하는 웹 환경에서는, 시공간 데이터에 대한 인덱스가 존재하지 않으며, 시간 정보 및 공간 정보를 포함하는 데이터들을 단일한 노드를 통하여 저장하고 처리한다. 즉, 시간 데이터, 공간 데이터 및 내용 데이터를 서로 다른 인덱스로 분리하여 저장하지 않으며, 단일한 노드를 통하여 저장하고 관리한다. 따라서, 시간 조건 및 공간 조건을 모두 적용하여 데이터를 검색할 경우, 효율적인 검색을 기대할 수 없다. 예를 들면, 2015년부터 2016년까지의 대한민국 서울 및 인천에 존재하는 오피스텔을 검색하는 경우를 가정할 수 있다. 시간 조건은 2015년부터 2016년까지 이며, 공간 조건은 대한민국 서울 및 인천이다. 기존의 시공간 데이터를 처리하는 환경의 경우, 시간 데이터 및 공간 데이터를 서로 구분하지 않으며, 시공간 데이터에 대한 별도의 인덱스도 존재하지 않기 때문에, 조건들 각각에 따른 결과를 추후에 비교 추합하는 방식을 이용해야 한다. 즉, 2015년에 존재한 오피스텔, 2016년에 존재한 오피스텔, 대한민국 서울에 존재하는 오피스텔, 대한민국 인천에 존재하는 오피스텔을 각각 검색하고, 4가지 검색 결과를 비교하여 공통된 오피스텔을 또 다시 검색해야 한다. 또한, 단일 노드에 데이터들을 저장하기 때문에 한번의 검색의 위하여 저장되어 있는 모든 데이터들에 접근해야 하는 문제점이 존재한다. 즉, 인접한 시간 정보 및 공간 정보를 갖는 데이터들을 클러스터링하여 저장하지 않고 단일 노드를 통하여 구별없이 저장하기 때문에 검색시 저장되어 있는 모든 데이터를 검색해야 하는 바, 검색에 많은 시간이 소요될 수 있다.
본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는 시공간 데이터에 대한 인덱스를 구축하고 시공간 데이터를 클러스터링하여 저장함으로써 시공간 데이터를 효율적으로 관리하고, 시공간 데이터를 이용한 연산을 수행할 경우의 효율을 높일 수 있다. 구체적으로, 시공간 데이터 인덱싱 방법에 따르면, 시간 데이터 및 공간 데이터는 하나의 시공간 데이터로 생성될 수 있으며, 시공간 데이터는 인접한 시간 정보 및 공간 정보를 기준으로 클러스터링되어 물리적으로 동일한 장소에 저장될 수 있다. 즉, 인접한 시간 정보 및 공간 정보를 갖는 시공간 데이터는 동일한 시공간 분할 영역에 저장될 수 있다. 시공간 분할 영역은 시공간 데이터의 시간 정보 및 공간 정보가 인접한 정도에 따라 물리적으로 인접하게 배치될 수 있다. 또한, 시공간 분할 영역은 대응하는 데이터 베이스(300)를 갖는다. 따라서, 데이터를 검색하거나 데이터를 이용한 연산 수행시 보다 효율적인 연산을 수행할 수 있다. 예를 들면, 앞서 설명한 예와 마찬가지로, 2015년부터 2016년까지의 대한민국 서울 및 인천에 존재하는 오피스텔을 검색하는 경우를 가정할 수 있다. 기존의 웹 환경과 달리, 본 발명의 경우, 2015년 서울에 존재하는 오피스텔에 대한 데이터 및 2016년 서울에 존재하는 오피스텔에 대한 데이터는 서울이라는 동일한 공간 정보를 갖고, 2015년 및 2016년 이라는 인접한 시간 정보를 갖기 때문에 인접한 시공간 분할 영역에 저장되어 있을 수 있다. 또한, 2015년 서울에 존재하는 오피스텔에 대한 데이터 및 2015년 인천에 존재하는 오피스텔에 대한 데이터는 2015년 이라는 동일한 시간 정보를 갖고, 서울 및 인천이라는 인접한 공간 정보를 갖기 때문에 인접한 시공간 분할 영역에 저장되어 있을 수 있다. 따라서, 저장되어 있는 모든 시공간 데이터를 검색하지 않고, 2015년부터 2016년까지라는 시간 정보 및 대한민국 서울 및 인천 이라는 공간 정보를 갖는 데이터만을 선별하여 검색할 수 있다. 따라서, 더 적은 노드를 읽고도 원하는 정보를 얻을 수 있기 때문에, 저장된 모든 데이터를 검색해야만 하는 기존의 웹 환경과 비교하여 검색하는 대상이 되는 데이터의 수가 줄어들며 검색 속도는 향상될 수 있다.
한편, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터에 대응하는 시공간 분할 영역을 검색할 때, 시간 데이터를 이용하여 검색한 뒤에 공간 데이터를 이용하여 검색할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 시공간 분할 영역을 검색할 때, 시간 데이터를 이용하여 복수의 시공간 분할 영역(400) 중에서 시간 데이터에 대응하는 시공간 분할 영역을 검색할 수 있다. 이어서, 제어부(120)는 공간 데이터를 이용하여 검색된 시간 데이터에 대응하는 시공간 분할 영역 중에서 공간 데이터에 대응하는 시공간 분할 영역을 검색할 수 있다. 도 4a를 참조하면, 시공간 분할 영역을 3차원의 공간으로 표현한 경우, Z축은 시간 정보를 의미하고, X축 및 Y축에 평행한 평면은 공간 정보를 의미할 수 있다. 시공간 데이터 인덱싱 장치(100)는 시공간 데이터에 대응하는 시공간 분할 영역을 검색할 때, 도 4a에 도시된 그래프 상에서 시공간 데이터에 존재하는 시간 데이터에 대응하는 시공간 분할 영역을 검색할 수 있다. 즉, 그래프 상에서 시간 데이터에 대응하는 Z축의 특정 영역을 한정하여 시공간 분할 영역을 한정할 수 있다. 이어서, 시공간 데이터 인덱싱 장치(100)는 시간 데이터를 이용하여 한정한 시공간 분할 영역 내에서 공간 데이터를 이용하여 검색할 수 있다. 즉, Z축의 특정 영역을 한정하여 검색한 시공간 분할 영역 내에서 X축 및 Y축과 평행한 직선에 의하여 시공간 분할 영역을 검색할 수 있다. 시공간 데이터 인덱싱 장치(100)는 시간 데이터를 이용하여 시공간 분할 영역을 우선적으로 검색한 뒤에, 검색된 결과를 대상으로 공간 데이터를 이용하여 원하는 시공간 분할 영역을 검색할 수 있다.
본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 데이터에 대응하는 시공간 분할 영역을 검색할 때에, 시간 데이터에 대응하는 시공간 분할 영역을 검색한 뒤에 검색된 결과를 대상으로 공간 데이터를 이용하여 공간 데이터에 대응하는 시공간 분할 영역을 검색함으로써, 시공간 분할 영역을 검색하는 효율을 증대시킬 수 있다. 시공간 분할 영역은 시간 정보 및 공간 정보를 기준으로 서로 인접하게 존재한다. 따라서 시간 정보 및 공간 정보를 기준으로 시공간 분할 영역을 검색할 경우 검색 효율성은 증가될 수 있다. 구체적으로, 시간 정보 및 공간 정보 중 어느 하나를 기준으로 시공간 분할 영역을 검색한 뒤에 검색된 결과를 대상으로 나머지 하나를 기준으로 시공간 분할 영역을 검색할 경우, 검색하는 대상이 작아질 수 있기 때문에 검색의 효율이 증가될 수 있다. 이때, 시간 정보의 경우, 년, 월, 일 및 시 등의 비교적 적은 경우의 수를 기초로 존재할 수 있다. 이와 달리, 공간 정보의 경우, 대한민국 이외의 다른 나라로 더 넓어질 수 있으며, 대한민국 내에서도 시, 도, 군, 리 등 다양한 공간 정보를 구분하는 기준들이 존재할 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 시공간 분할 영역을 검색하는 경우, 시간 데이터에 대응하는 시공간 분할 영역을 검색하고, 검색된 결과를 대상으로 공간 데이터에 대응하는 시공간 분할 영역을 검색함으로써, 검색을 효율성을 향상시키고, 검색 속도를 증가시킬 수 있다.
도 5는 본 발명의 다른 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 순서도이다.
먼저, 시공간 데이터 인덱싱 장치(100)는 사용자 디바이스(200)로부터 시공간 질의를 수신할 수 있다(S210). 이어서, 시공간 데이터 인덱싱 장치(100)는 시공간 질의에 시간 데이터 및 공간 데이터가 존재하는지 결정할 수 있다(S220). 이어서, 시공간 데이터 인덱싱 장치(100)는 시간 데이터 및 공간 데이터를 기초로 시공간 데이터를 생성할 수 있다(S230). 이어서, 시공간 데이터 인덱싱 장치(100)는 복수의 시공간 분할 영역(400) 중 시공간 데이터에 대응하는 시공간 분할 영역을 검색할 수 있다(S240). 설명한 단계들(S210, S220, S230, S240)은 각각 도 3에서 설명한 단계들(S110, S120, S130, S140)과 실질적으로 동일한 바, 설명은 생략한다.
이어서, 시공간 데이터 인덱싱 장치(100)는 사용자 디바이스(200)에게 할당된 시공간 분할 영역을 제공하고, 사용자 디바이스(200)로부터 시공간 분할 영역에 기초한 시공간 데이터 연산에 대한 요청을 수신할 수 있다(S250). 구체적으로, 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 사용자 디바이스(200)로부터 시공간 데이터를 이용한 연산의 수행 요청을 수신할 수 있다. 시공간 데이터 연산은 시공간 데이터를 이용한 연산을 의미하며, 시공간 질의에 포함되어 있을 수 있다. 시공간 데이터 연산은 시공간 데이터의 저장, 삭제, 갱신, 검색 등 다양한 종류가 존재할 수 있다. 예를 들면, 시공간 질의는 2016년 서울에 존재하는 오피스텔을 검색하는 질의일 수 있고, 이때, 시공간 데이터 인덱싱 장치(100)는 사용자 디바이스(200)로부터 검색이라는 시공간 데이터 연산에 대한 요청을 수신할 수 있다. 통신부(110)는 시공간 데이터 인덱싱 장치(100)의 제어부(120)에게 시공간 데이터 연산에 대한 요청을 수신 사실에 대한 데이터 및 시공간 데이터 연산의 종류를 전달할 수 있다.
이어서, 시공간 데이터 인덱싱 장치(100)는 시공간 분할 영역에 대응하는 데이터 베이스(300)를 검출할 수 있다(S260). 복수의 시공간 분할 영역(400) 각각에는 대응하는 데이터 베이스(300)가 존재할 수 있다. 시간 정보 및 공간 정보를 포함하는 시공간 데이터는 시공간 분할 영역에 저장되며, 시공간 분할 영역에 대응하는 데이터 베이스(300)에는 시간 정보 및 공간 정보 이외의 내용 정보가 저장될 수 있다. 즉, 시공간 데이터는 시공간 분할 영역에 저장될 수 있고, 내용 데이터는 시공간 분할 영역에 대응하는 데이터 베이스(300)에 저장될 수 있다. 시공간 데이터 인덱싱 장치(100)는 앞서 검색한 시공간 분할 영역에 대응하는 데이터 베이스(300)를 검출할 수 있다. 이는, 수신된 시공간 데이터 연산에 대한 요청을 수행하기 위하여 데이터 베이스(300)에 저장되어 있는 내용 데이터가 요구되기 때문이다.
이어서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터를 이용하여 데이터 베이스(300)에 대해서 시공간 데이터 연산을 수행할 수 있다(S270) 또한, 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 시공간 데이터 연산을 수행할 때, 데이터 베이스(300)에 대해서 내용 데이터를 처리할 수 있다(S280). 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 및 시공간 분할 영역에 대응하는 데이터 베이스(300)에 저장된 내용 데이터를 이용하여 시공간 데이터 연산을 수행할 수 있다.
시공간 데이터 연산은 시공간 데이터 저장 연산, 시공간 데이터 삭제 연산, 시공간 데이터 갱신 연산, 시공간 데이터 검색 연산, 시공간 데이터 관계 연산, 시공간 데이터 합집합 연산, 시공간 데이터 차집합 연산 및 시공간 데이터 교집합 연산을 포함할 수 있다. 시공간 데이터 저장 연산은 시공간 데이터 및 내용 데이터를 시공간 분할 영역 및 데이터 베이스(300)에 각각 저장하는 연산을 의미한다. 또한, 시공간 데이터 삭제 연산은 시공간 데이터 및 내용 데이터를 시공간 분할 영역 및 데이터 베이스(300) 각각에서 삭제하는 연산을 의미한다. 그리고, 시공간 데이터 갱신 연산은 시공간 데이터 및 내용 데이터 중 적어도 하나를 갱신하는 연산을 의미한다. 시공간 데이터 검색 연산은 시공간 분할 영역에 존재하는 시공간 데이터 또는 데이터 베이스(300)에 존재하는 내용 데이터를 검색하는 연산을 의미한다. 또한, 시공간 데이터 관계 연산은 시공간 질의에 존재하는 내용 데이터와 데이터 베이스(300)에 존재하는 내용 데이터의 관계에 대한 연산의 의미한다. 그리고, 시공간 데이터 합집한 연산은 데이터 베이스(300)에 존재하는 복수의 내용 데이터를 결합한 합집합 내용 데이터를 생성하는 연산을 의미한다. 시공간 데이터 차집합 연산은 데이터 베이스(300)에 존재하는 복수의 내용 데이터 중 어느 하나의 내용 데이터에서 나머지 하나의 내용 데이터를 제외한 차집합 내용 데이터를 생성하는 연산을 의미한다. 또한, 시공간 데이터 교집합 연산은 데이터 베이스(300)에 존재하는 복수의 내용 데이터에 모두 존재하는 내용 데이터인 교집합 내용 데이터를 생성하는 연산을 의미한다. 시공간 데이터 연산은 이에 제한되지 않으며, 다양한 연산을 더 포함할 수 있다.
이어서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 연산의 결과를 사용자 디바이스(200)에게 송신할 수 있다(S290). 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 시공간 데이터 인덱싱 장치(100)의 제어부(120)로부터 시공간 데이터 연산의 결과를 전달받을 수 있다. 이에, 통신부(110)는 시공간 데이터 연산의 결과를 사용자 디바이스(200)에게 송신할 수 있다. 시공간 데이터 연산이 시공간 데이터 저장 연산, 시공간 데이터 삭제 연산, 시공간 데이터 갱신 연산인 경우, 시공간 데이터 연산의 결과는 저장, 삭제 또는 갱신이 되었는지에 대한 확인 결과일 수 있다. 시공간 데이터 연산이 시공간 데이터 검색 연산, 시공간 데이터 합집합 연산, 시공간 데이터 차집합 연산 및 시공간 데이터 교집합 연산인 경우, 시공간 데이터 연산의 결과는 결과로 생성된 내용 데이터일 수 있다. 또한, 시공간 데이터 연산이 시공간 데이터 관계 연산인 경우, 시공간 데이터 연산의 결과는 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터의 관계에 대한 ‘예’ 또는 ‘아니오’ 형태의 판단일 수 있다. 그러나, 시공간 데이터 연산의 결과는 앞서 설명한 형태로 제한되지 않으며, 시공간 데이터를 이용한 연산에 있어 필요한 결과를 효과적으로 표현할 수 있는 다양한 형태일 수 있다.
본 발명의 다른 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 데이터를 이용하여 데이터 베이스(300)에 대해서 시공간 데이터 연산을 수행함으로써, 연산을 보다 효율적으로 수행할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)는 시간 데이터 및 공간 데이터를 별개로 취급하지 않고 하나의 시공간 데이터로 생성하며, 시공간 데이터에 대한 인덱스를 구축한다. 또한, 시공간 데이터 인덱싱 장치(100)는 인접한 시간 정보 및 공간 정보를 포함하는 시공간 데이터를 물리적으로 인접한 장소에 저장함으로써, 시공간 데이터 연산의 속도를 증가시킬 수 있다. 시공간 데이터는 시공간적으로 가까운 경우 군집하여 저장될 수 있다. 즉, 시공간 데이터는 시공간적으로 가까운 경우, 클러스터링되어 인접한 시공간 분할 영역에 저장될 수 있다. 또한, 시공간 분할 영역에 대응하는 데이터 베이스(300)에는 내용 데이터가 저장되어 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 특정 시간 정보 및 공간 정보를 갖는 시공간 데이터가 저장되어 있는 시공간 분할 영역을 통하여 데이터 베이스(300)에 접근하여 내용 데이터를 추출할 수 있다. 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 연산을 수행할 때, 이처럼 클러스터링 되어서 시공간 분할 영역에 저장되어 있는 시공간 데이터 및 데이터 베이스(300)에 저장되어 있는 내용 데이터를 이용하여 시공간 연산을 수행하기 때문에, 연산에 소요되는 시간을 효율적으로 줄일 수 있다. 시공간 데이터 인덱싱 장치(100)가 시공간 데이터를 검색할 경우, 인접한 시공간 정보를 포함하는 시공간 데이터가 물리적으로 인접하게 저장되어 있기 때문에, 원하는 데이터를 검출하기 위하여 검색해야 하는 시공간 데이터의 양은 줄어들 수 있다. 또한, 따라서, 검색한 시공간 데이터 및 내용 데이터를 이용하여 시공간 연산을 수행하는데 소요되는 시간은 줄어들 수 있다. 이에 따라, 시공간 데이터 인덱싱 장치(100)의 시공간 데이터 연산 효율을 증대될 수 있다.
도 6a 내지 도 6d는 본 발명의 또 다른 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다. 설명의 편의를 위해 도 5를 참조하여 설명한다.
도 6a 내지 도 6b를 참조하면, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 저장 연산을 수행할 수 있다. 구체적으로, 시공간 데이터 연산이 시공간 데이터 저장 연산인 경우, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 연산을 수행함에 있어, 시공간 분할 영역에 시공간 데이터를 저장하고, 데이터 베이스(300)에 시공간 질의에 존재하는 내용 데이터를 저장할 수 있다. 시공간 데이터 저장 연산은, 시공간 데이터 및 내용 데이터를 저장하는 연산을 의미한다. 즉, 시공간 데이터 인덱싱 장치(100)는 시공간 질의에 포함된 시간 데이터 및 공간 데이터를 기초로 시공간 데이터를 생성하고, 시공간 데이터 저장 연산에 대한 요청의 수신에 따라 시공간 데이터 및 내용 데이터를 저장할 수 있다. 시공간 데이터는 시공간 데이터에 대응하는 시공간 분할 영역에 저장될 수 있으며, 내용 데이터는 시공간 분할 영역에 대응하는 데이터 베이스(300)에 저장될 수 있다. 도 6a 내지 도 6b를 참조하면, 추가 시공간 데이터(600) 및 추가 내용 데이터(610)가 각각 복수의 시공간 분할 영역(400) 및 데이터 베이스(300)에 저장된 것을 확인할 수 있다. 추가 시공간 데이터(600)는 시공간 데이터 저장 연산에 따라 추가적으로 복수의 시공간 분할 영역(400)에 저장되는 시공간 데이터를 의미할 수 있다. 또한, 추가 내용 데이터(610)는 시공간 데이터 저장 연산에 의하여 추가적으로 데이터 베이스(300)에 저장되는 내용 데이터를 의미할 수 있다. 추가 시공간 데이터(600)는 복수의 시공간 분할 영역(400) 중 3의 주소코드를 갖는 시공간 분할 영역에 저장될 수 있다. 또한, 시공간 분할 영역에 대응하는 데이터 베이스(300)에 추가 내용 데이터(610)가 저장될 수 있다. 즉, 주소코드가 3인 시공간 분할 영역에는 f 내용 데이터 및 g 내용 데이터가 이미 저장되어 있을 수 있으며, 시공간 데이터 저장 연산에 따라 추가적으로 h 내용 데이터가 저장될 수 있다.
시공간 데이터 인덱싱 장치(100)는 시공간 데이터 저장 연산의 결과를 사용자 디바이스(200)에게 송신할 수 있다. 시공간 데이터 저장 연산의 결과는 데이터가 저장되었다는 신호 또는 데이터가 저장되지 않았다는 신호를 포함할 수 있다. 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 시공간 데이터 저장 연산의 결과를 시공간 데이터 인덱싱 장치(100)의 통신부(110)로 전달할 수 있다. 이에, 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 사용자 디바이스(200)에게 시공간 데이터 저장 연산의 결과를 송신할 수 있다.
도 6c 내지 도 6d를 참조하면, 시공간 데이터 인덱싱 장치(100)는 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 오버플로우인 경우, 시공간 분할 영역을 복수의 하위 시공간 분할 영역(640)으로 분할할 수 있다. 오버플로우란 시공간 분할 영역에 저장된 시공간 데이터의 수가 시공간 분할 영역이 저장할 수 있는 시공간 데이터의 수를 초과한 경우를 의미한다. 구체적으로, 하나의 시공간 분할 영역에 저장될 수 있는 시공간 데이터의 수는 제한될 수 있다. 도 6d의 경우, 하나의 시공간 분할 영역에 저장될 수 있는 시공간 데이터의 수는 3으로 가정되었다. 시공간 분할 영역 중 말단 노드와 대응하는 시공간 분할 영역은 각각 대응되는 데이터 베이스(300)가 존재하며, 데이터 베이스(300)는 3개의 칸으로 나누어진 것을 확인할 수 있다. 시공간 분할 영역에 하나의 시공간 데이터가 더 저장되는 경우, 하나의 시공간 데이터와 함께 하나의 내용 데이터 또한 시공간 분할 영역에 대응되는 데이터 베이스(300)에 저장될 수 있다. 따라서, 시공간 분할 영역에는 최대 3개의 시공간 데이터가 저장될 수 있다.
도 6a 내지 도 6b와 달리, 도 6c 및 도 6d의 경우, 3의 주소코드를 갖는 시공간 분할 영역에는 2개의 추가 시공간 데이터(620)가 저장되는 것을 확인할 수 있다. 이 경우, 3의 주소코드를 갖는 시공간 분할 영역에 저장되는 시공간 데이터의 수는 4개로 증가된다. 하나의 시공간 분할 영역에 저장 가능한 시공간 데이터의 최대 수는 3개인 바, 4개의 시공간 데이터가 저장되는 경우, 이는 오버플로우에 해당될 수 있다. 시공간 데이터 인덱싱 장치(100)는 시공간 데이터의 수가 오버플로우인 경우, 시공간 분할 영역을 복수의 하위 시공간 분할 영역(640)으로 분할할 수 있다. 즉, 3의 주소코드를 갖는 시공간 분할 영역은 시공간 데이터의 수가 오버플로우됨에 따라, 30의 주소코드 및 31의 주소코드를 갖는 복수의 하위 시공간 분할 영역(640)으로 분할될 수 있다. 이에 따라, 30의 주소코드 및 31의 주소코드를 갖는 복수의 하위 시공간 분할 영역(640)은 각각 대응되는 데이터 베이스(300)를 가질 수 있다. 따라서, 30의 주소코드를 갖는 하위 시공간 분할 영역과 31의 주소코드를 갖는 하위 시공간 분할 영역 각각의 저장 가능한 시공간 데이터의 최대 수는 3개일 수 있다. 따라서, 복수의 하위 시공간 분할 영역(640)이 형성됨에 따라, 저장 가능한 시공간 데이터의 수는 증가될 수 있다.
복수의 하위 시공간 분할 영역(640)이 형성됨에 따라, 하나의 상위 시공간 분할 영역에 저장되어 있던 시공간 데이터는 각각의 하위 시공간 분할 영역에 저장될 수 있다. 또한, 추가 시공간 데이터(620)는 복수의 하위 시공간 분할 영역(640)에 저장될 수 있다. 추가 내용 데이터(630)는 각각의 하위 시공간 분할 영역에 대응되는 데이터 베이스(300)에 저장될 수 있다. h 내용 데이터의 경우, h 시공간 데이터가 30의 주소코드 및 31의 주소코드를 갖는 하위 시공간 분할 영역 모두에 대응되기 때문에, h 내용 데이터는 30의 주소코드 및 31의 주소코드를 갖는 하위 시공간 분할 영역 각각에 대응되는 데이터 베이스 모두에 저장될 수 있다. 이와 달리, i 내용 데이터의 경우, i 시공간 데이터가 31의 주소코드를 갖는 하위 시공간 분할 영역에만 대응되기 때문에, i 내용 데이터는 31의 주소코드를 갖는 하위 시공간 분할 영역에 대응되는 데이터 베이스에만 저장될 수 있다.
본 발명의 또 다른 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 데이터 저장 연산에 따라 시공간 데이터 및 내용 데이터를 분리하여 저장함으로써, 효율적인 시공간 데이터 검색 및 시공간 데이터 연산을 수행할 수 있다. 시간 정보 및 공간 정보가 포함되는 데이터를 검색하거나 이러한 데이터를 이용한 연산을 수행하는 경우, 시간 정보 및 공간 정보 이외의 나머지 정보인 내용 정도를 검색하는데 많은 시간이 소요될 수 있다. 시간 정보 및 공간 정보를 기준으로 검색을 수행함에 있어, 각각의 데이터의 시간 정보 및 공간 정보만을 확인할 경우 검색 시간을 효율적으로 줄일 수 있는 것에 반하여, 내용 정보 또한 확인해야 할 경우, 그 시간은 증가될 수 있다. 따라서, 시공간 데이터 및 내용 데이터가 분류되어 저장되어 있을 경우, 시공간 데이터를 기초로 검색을 수행하고, 검색 결과 추출된 데이터에 한하여 내용 데이터를 이용한 연산을 수행하는 것이 효율적일 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터를 시공간 분할 영역에 저장하며, 내용 데이터는 시공간 분할 영역에 대응하는 데이터 베이스에 저장함으로써, 데이터를 검색하거나 데이터에 대한 연산을 수행할 때, 수행하는 시간을 줄일 수 있다.
또한, 본 발명의 또 다른 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 오버플로우인 경우, 시공간 분할 영역을 복수의 하위 시공간 분할 영역(640)을 분할함에 따라, 체계적으로 시공간 데이터를 관리할 수 있고, 나아가 시공간 데이터의 검색 및 시공간 연산을 효율적으로 수행할 수 있다. 구체적으로, 시공간 분할 영역에 저장된 시공간 데이터의 수가 오버플로우인 경우, 시공간 데이터 인덱싱 장치(100)는 하위 시공간 분할 영역이 아닌 시공간 분할 영역과 같은 레벨의 다른 시공간 분할 영역을 형성할 수도 있다. 이 경우, 시공간 데이터의 수가 증가됨에 따라 같은 레벨의 시공간 분할 영역의 수는 더욱 증가될 수 있다. 따라서, 시공간 데이터를 검색할 경우, 같은 레벨의 시공간 분할 영역 모두를 검색해야 하기 때문에 검색 시간이 증가될 수 있다. 시공간 데이터 인덱싱 장치(100)는 시공간 데이터의 수가 오버플로우인 경우, 복수의 하위 시공간 분할 영역(640)으로 시공간 분할 영역을 분할하며, 이에, 시공간 데이터를 검색할 때, 검색해야 하는 시공간 분할 영역의 수는 줄어들 수 있다. 시공간 데이터 인덱싱 장치(100)는 상위 시공간 분할 영역을 통하여 하위 시공간 분할 영역으로 접근할 수 있고, 하위 시공간 분할 영역만이 시공간 데이터를 검색하는 영역이 될 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터를 검색하고 시공간 데이터를 이용한 연산을 수행할 때, 수행 속도를 효율적으로 증가시킬 수 있다.
도 7a 내지 도 7b는 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 7a 내지 도 7b를 참조하면, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 연산이 시공간 데이터 삭제 연산인 경우, 시공간 데이터 연산을 수행함에 있어, 시공간 분할 영역에 저장되어 있는 시공간 데이터를 삭제하고, 데이터 베이스(300)에 저장되어 있는 내용 데이터를 삭제할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 시공간 데이터 삭제 연산에 대한 요청을 수신할 수 있고, 수신했다는 정보를 시공간 데이터 인덱싱 장치(100)의 제어부(120)에 전달할 수 있다. 이에, 제어부(120)는 검색한 시공간 분할 영역에 저장되어 있는 시공간 데이터를 삭제하고, 시공간 분할 영역에 대응하는 데이터 베이스(300)에 저장되어 있는 내용 데이터를 삭제할 수 있다. 앞서 설명한 바와 같이, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터를 시공간 분할 영역에 저장하고, 내용 데이터는 시공간 분할 영역에 대응하는 데이터 베이스(300)에 저장할 수 있다. 따라서 시공간 데이터 삭제 연산에 대한 요청이 수신된 경우, 시공간 데이터 인덱싱 장치(100)는 시공간 분할 영역에 저장되어 있는 시공간 데이터를 삭제할 수 있으며, 시공간 분할 영역에 대응하는 데이터 베이스(300)에 저장되어 있는 내용 데이터를 삭제할 수 있다.
도 7a 내지 도 7b를 참조하면, 도 6c 내지 도 6d와 달리 h 시공간 데이터 및 h 내용 데이터가 존재하지 않는 것을 확인할 수 있다. 즉, 시공간 데이터 인덱싱 장치(100)는 3의 주소코드를 갖는 시공간 분할 영역에 존재했던 h 시공간 데이터를 삭제할 수 있다. 또한, 시공간 데이터 인덱싱 장치(100)는 3의 주소코드를 갖는 시공간 분할 영역에 대응하는 데이터 베이스(300)에 저장되어 있던 h 내용 데이터를 삭제할 수 있다.
시공간 데이터 인덱싱 장치(100)는 시공간 데이터 삭제 연산의 결과를 사용자 디바이스(200)에게 송신할 수 있다. 시공간 데이터 삭제 연산의 결과는 데이터가 삭제되었다는 신호 또는 데이터가 삭제되지 않았다는 신호를 포함할 수 있다. 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 시공간 데이터 삭제 연산의 결과를 시공간 데이터 인덱싱 장치(100)의 통신부(110)로 전달할 수 있다. 이에, 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 사용자 디바이스(200)로 시공간 데이터 삭제 연산의 결과를 송신할 수 있다.
시공간 데이터 인덱싱 장치(100)는 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 언더플로우인 경우, 시공간 분할 영역을 하나의 시공간 분할 영역으로 병합할 수 있다. 언더플로우란 복수의 하위 시공간 분할 영역에 저장된 시공간 데이터의 수가 특정 수 이하인 경우를 의미한다. 시공간 분할 영역은 시공간 분할 영역에 저장된 시공간 데이터의 수가 오버플로우인 경우 복수의 하위 시공간 분할 영역으로 분할될 수 있다. 복수의 하위 시공간 분할 영역에 저장된 시공간 데이터의 수가 적어지고, 이에 따라 저장된 시공간 데이터의 수가 언더플로우인 경우, 복수의 하위 시공간 분할 영역은 하나의 상위 시공간 분할 영역으로 다시 병합될 수 있다. 예를 들면, 도 7a에 도시된 바와 같이, 3의 주소코드를 갖는 시공간 분할 영역 내에는 3개의 시공간 데이터가 저장될 수 있다. 도 6c의 경우, 3의 주소코드를 갖는 시공간 분할 영역 내에는 4개의 시공간 데이터가 저장되어 있으며, 이는 3개의 저장될 수 있는 최대 시공간 데이터의 수를 초과한 것일 수 있다. 도 7a의 경우, 도 6c와 비교하여 하나의 시공간 데이터가 삭제되었고 따라서 3개의 시공간 데이터가 존재하게 되었다. 이에, 30의 주소코드 및 31의 주소코드를 갖는 복수의 하위 시공간 분할 영역은 3의 주소코드를 갖는 하나의 상위 시공간 분할 영역으로 병합될 수 있다.
본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 분할 영역 및 데이터 베이스(300) 각각에 저장되어 있는 시공간 데이터 및 내용 데이터를 삭제함으로써, 삭제 연산을 보다 효율적으로 수행할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터를 시공간 분할 영역에 저장할 수 있으며, 내용 데이터를 시공간 분할 영역에 대응하는 데이터 베이스(300)에 저장할 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 데이터를 삭제하는 연산을 수행할 경우, 시공간 데이터 및 내용 데이터를 각각 삭제하는 연산을 수행해야 한다. 이때, 시공간 데이터 인덱싱 장치(100)는 시공간 질의를 통하여 검색한 시공간 분할 영역에 저장되어 있는 시공간 데이터를 우선적으로 삭제하며, 이후에 시공간 분할 영역에 대응되는 데이터 베이스(300)에 저장되어 있는 내용 데이터를 삭제할 수 있다. 시공간 데이터는 인접한 시간 및 공간 정보에 기초하여 물리적으로 인접하게 저장되어 있기 때문에, 시공간 데이터 인덱싱 장치(100)는 삭제할 시공간 데이터를 효율적으로 검색할 수 있다. 또한, 시공간 분할 영역은 대응하는 데이터 베이스(300)를 갖는 바, 시공간 데이터 인덱싱 장치(100)는 검색된 시공간 분할 영역과 대응되는 데이터 베이스(300)를 향상된 속도로 찾을 수 있으며, 저장되어 있는 내용 데이터를 효율적으로 삭제할 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 시공간 인덱스를 구축하여 시공간 데이터 및 내용 데이터의 삭제를 수행하는데 소요되는 시간을 줄일 수 있고, 시공간 데이터 삭제 연산을 효율적으로 수행할 수 있다.
또한, 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 언더플로우인 경우, 시공간 분할 영역을 하나의 시공간 분할 영역으로 병합함으로써, 체계적으로 시공간 데이터를 관리할 수 있고, 나아가 시공간 데이터의 검색과 시공간 연산을 효율적으로 수행할 수 있다. 시공간 데이터 인덱싱 장치(100)는 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 언더플로우인 경우, 시공간 분할 영역을 하나의 시공간 분할 영역으로 병합하지 않고 복수의 하위 시공간 분할 영역을 그대로 유지할 수도 있다. 이 경우, 시공간 데이터 인덱싱 장치(100)가 시공간 데이터를 검색하거나, 시공간 데이터를 이용한 연산을 수행할 경우, 복수의 하위 시공간 분할 영역을 모두 탐색해야 할 수 있다. 시공간 데이터 인덱싱 장치(100)가 하나의 상위 시공간 분할 영역을 탐색하는데 소요되는 시간은 복수의 하위 시공간 분할 영역 모두를 탐색하는데 소요되는 시간보다 짧을 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)가 복수의 하위 시공간 분할 영역을 모두 검색하는 경우, 하나의 상위 시공간 분할 영역을 검색하는 경우보다 시공간 데이터의 검색 또는 시공간 데이터를 이용하는 연산을 수행하는데 소요되는 시간은 증가될 수 있다. 따라서, 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 언더플로우인 경우, 복수의 하위 시공간 분할 영역을 하나의 상위 시공간 분할 영역으로 병합함으로써, 시공간 데이터를 이용한 연산을 보다 효율적으로 수행할 수 있다.
도 8a 내지 도 8b는 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 8a 내지 도 8b를 참조하면, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 연산이 시공간 데이터 갱신 연산이 경우, 시공간 데이터 및 내용 데이터를 갱신할 수 있다. 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 시공간 데이터 갱신 연산의 요청을 사용자 디바이스(200)로부터 수신한 경우, 갱신 요청의 수신 정보를 시공간 데이터 인덱싱 장치(100)의 제어부(120)로 전달할 수 있다. 제어부(120)는 시공간 분할 영역에 저장되어 있는 시공간 데이터를 갱신 시공간 데이터(800)로 교체할 수 있고, 데이터 베이스(300)에 저장되어 있는 내용 데이터를 갱신 내용 데이터(810)로 교체할 수 있다. 갱신 시공간 데이터(800)는 시공간 분할 영역에 저장되어 있는 시공간 데이터와 교체되는 시공간 데이터로서, 시공간 데이터 인덱싱 장치(100)에 의하여 시공간 질의에 기초하여 생성된 시공간 데이터를 의미한다. 갱신 내용 데이터(810)는, 데이터 베이스(300)에 저장되어 있는 내용 데이터와 교체되는 내용 데이터로서, 시공간 질의에 존재하는 내용 데이터를 의미한다.
시공간 데이터 갱신 연산은 시공간 데이터 삭제 연산 및 시공간 데이터 저장 연산을 포함할 수 있다. 즉, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 삭제 연산을 통하여 저장되어 있던 시공간 데이터 및 내용 데이터를 삭제할 수 있다. 이어서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 저장 연산을 통하여, 삭제된 시공간 데이터가 저장되어 있었던 시공간 분할 영역에 갱신 시공간 데이터(800)를 저장하고, 삭제된 내용 데이터가 저장되어 있었던 데이터 베이스(300)에 갱신 내용 데이터(810)를 저장할 수 있다.
도 8a 내지 도 8b를 참조하면, 도 6c 내지 도 6d에 도시된 시공간 분할 영역과 비교하여 시공간 데이터 및 내용 데이터가 갱신된 것을 확인할 수 있다. 즉, 시공간 분할 영역에 저장되어 있는 시공간 데이터는 갱신 시공간 데이터(800)로 교체될 수 있다. 또한, 데이터 베이스(300)에 저장되어 있던 내용 데이터는 갱신 내용 데이터(810)로 교체될 수 있다. 구체적으로, 도 6c의 30의 주소코드 및 31의 주소코드를 갖는 시공간 분할 영역에 저장된 h 시공간 데이터는, 도 8a의 j 시공간 데이터로 갱신될 수 있다. 또한, h 내용 데이터는 j 내용 데이터로 갱신될 수 있다. h 시공간 데이터 및 j 시공간 데이터는 모두 30의 주소코드 및 31의 주소코드를 갖는 시공간 분할 영역에 대응할 수 있다. 따라서, h 시공간 데이터는 30의 주소코드 및 31의 주소코드를 갖는 시공간 분할 영역 내에서 갱신될 수 있다. 또한, h 내용 데이터는 30의 주소코드 및 31의 주소코드를 갖는 시공간 분할 영역에 대응하는 데이터 베이스 내에서 j 내용 데이터로 갱신될 수 있다.
시공간 데이터 인덱싱 장치(100)는 시공간 데이터 갱신 연산의 결과를 사용자 디바이스(200)에게 송신할 수 있다. 시공간 데이터 갱신 연산의 결과는 데이터가 갱신되었다는 신호 또는 데이터가 갱신되지 않았다는 신호를 포함할 수 있다. 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 시공간 데이터 갱신 연산의 결과를 시공간 데이터 인덱싱 장치(100)의 통신부(110)로 전달할 수 있다. 이에, 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 사용자 디바이스(200)에게 시공간 데이터 갱신 연산의 결과를 송신할 수 있다.
본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 분할 영역 및 데이터 베이스(300) 각각에 저장되어 있는 시공간 데이터 및 내용 데이터를 갱신함으로써, 갱신 연산을 보다 효율적으로 수행할 수 있다. 구체적으로, 시공간 데이터를 시공간 분할 영역에 저장되어 있을 수 있으며, 내용 데이터는 시공간 분할 영역에 대응하는 데이터 베이스(300)에 저장되어 있을 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 갱신 연산 수행할 때, 시공간 데이터 및 내용 데이터를 각각 갱신하는 연산을 수행해야 한다. 이때, 시공간 데이터 인덱싱 장치(100)는 시공간 분할 영역에 저장되어 있는 시공간 데이터를 우선적으로 갱신하며, 이후에 시공간 분할 영역에 대응되는 데이터 베이스에 저장되어 있는 내용 데이터를 갱신할 수 있다. 시공간 데이터는 인접한 시간 및 공간 정보에 기초하여 물리적으로 인접하게 저장되어 있기 때문에, 시공간 데이터 인덱싱 장치(100)는 갱신할 시공간 데이터를 효율적으로 검색할 수 있다. 또한, 시공간 분할 영역은 대응하는 데이터 베이스(300)를 갖는 바, 시공간 데이터 인덱싱 장치(100)는 검색된 시공간 분할 영역과 대응되는 데이터 베이스(300)를 향상된 속도로 찾을 수 있으며, 저장되어 있는 내용 데이터를 효율적으로 갱신할 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 시공간 인덱스를 구축하여 시공간 데이터 및 내용 데이터의 갱신을 수행하는데 소요되는 시간을 줄일 수 있고, 시공간 데이터 갱신 연산을 효율적으로 수행할 수 있다.
도 9a 내지 도 9b는 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 9a 내지 도 9b를 참조하면, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 연산이 시공간 데이터 검색 연산인 경우, 데이터 베이스(300)에 저장되어 있는 내용 데이터를 추출하고, 추출된 내용 데이터를 사용자 디바이스(200)에 송신할 수 있다. 시공간 데이터 검색 연산은 데이터 베이스(300)에 저장되어 있는 내용 데이터를 검색하는 연산을 의미한다. 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 시공간 데이터 검색 연산에 대한 요청을 사용자 디바이스(200)로부터 수신할 수 있다. 이에, 통신부(110)는 시공간 데이터 인덱싱 장치(100)의 제어부(120)에 요청을 수신했다는 메시지를 전달할 수 있다. 제어부(120)는 시공간 질의에 존재하는 시간 데이터 및 공간 데이터에 기초하여 시공간 데이터를 생성할 수 있으며, 생성된 시공간 데이터에 대응하는 시공간 분할 영역을 검색 대상 시공간 분할 영역(900)으로 정할 수 있다. 검색 대상 시공간 분할 영역(900)은 시공간 데이터 검색 연산이 수행될 대상이 되는 시공간 분할 영역을 의미한다. 시공간 데이터 인덱싱 장치(100)는 검색 대상 시공간 분할 영역(900)에 존재하는 시공간 데이터를 추출하고, 해당 시공간 분할 영역에 대응하는 데이터 베이스(300)에 저장되어 있는 내용 데이터를 추출할 수 있다. 예를 들면, 도 9a를 참조하면, 검색 대상 시공간 분할 영역(900)에는 c 시공간 데이터가 저장되어 있을 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 c 시공간 데이터를 추출할 수 있다. 또한, 시공간 데이터 인덱싱 장치(100)는 검색 대상 시공간 분할 영역(900)에 대응되는 데이터 베이스(300)에 저장되어 있는 내용 데이터를 추출할 수 있다. 도 9b를 참조하면, 시공간 데이터 인덱싱 장치(100)는 시공간 분할 영역에 대한 검색을 진행할 때, 상위 시공간 분할 영역에서 하위 시공간 분할 영역으로 검색을 진행할 수 있다. 예를 들면, 화살표로 표시된 것과 같이, root 노드를 시작으로 0 노드로 검색을 진행하며, 0 노드에서 00 노드 및 01 노드로 검색을 진행할 수 있다. 이때, 검색 대상 시공간 분할 영역(900)은 00의 주소코드 및 01의 주소코드를 갖는 시공간 분할 영역의 일부이기 때문에, 시공간 데이터 인덱싱 장치(100)는 1 노드, 2 노드 및 3 노드는 검색하지 않는다. 즉, 시공간 데이터 인덱싱 장치(100)는 1의 주소코드, 2의 주소코드 및 3의 주소코드를 갖는 시공간 분할 영역을 검색하지 않는다. 이어서, 시공간 데이터 인덱싱 장치(100)는 검색 결과 내용 데이터(910)를 추출할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)는 검색 대상 시공간 분할 영역(900)과 대응되는 데이터 베이스(300)에 저장되어 있는 검색 결과 내용 데이터(910)를 추출할 수 있다. 검색 결과 내용 데이터(910)는 시공간 데이터 검색 연산의 결과 데이터를 의미한다. 검색 대상 시공간 분할 영역(900)에 저장되어 있는 시공간 데이터는 c 시공간 데이터이며, 검색 대상 시공간 분할 영역(900)과 대응되는 데이터 베이스(300)에 저장되어 있는 내용 데이터는 c 내용 데이터이다. 따라서, 시공간 데이터 인덱싱 장치(100)는 검색 결과 내용 데이터(910)로써 c 내용 데이터를 검출할 수 있다.
시공간 데이터 인덱싱 장치(100)는 시공간 데이터 검색 연산의 결과를 사용자 디바이스(200)에게 송신할 수 있다. 시공간 데이터 검색 연산의 결과는 검색 대상이 된 시공간 분할 영역에 대응되는 데이터 베이스(300)에 저장되어 있는 내용 데이터를 포함할 수 있다. 즉, 시공간 데이터 검색 연산의 결과는 검색 결과 내용 데이터(910)를 포함할 수 있다. 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 시공간 데이터 검색 연산의 결과를 시공간 데이터 인덱싱 장치(100)의 통신부(110)로 전달할 수 있다. 이에, 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 사용자 디바이스(200)에게 시공간 데이터 검색 연산의 결과인 내용 데이터를 송신할 수 있다.
본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 분할 영역에 대응되는 데이터 베이스(300)에 저장되어 있는 내용 데이터를 검색함으로써, 검색 연산을 보다 효율적으로 수행할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)는 시공간 질의에 기초하여 시공간 데이터를 생성할 수 있고, 생성한 시공간 데이터에 대응되는 시공간 분할 영역을 검색할 수 있다. 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 검색 연산을 수신한 경우, 검색한 시공간 분할 영역을 검색 대상 시공간 분할 영역(900)으로 정할 수 있고, 검색 대상 시공간 분할 영역(900)만을 대상으로 데이터 베이스(300)에 저장되어 있는 내용 데이터를 추출할 수 있다. 즉, 검색 대상 시공간 분할 영역(900)을 제외한 나머지 시공간 분할 영역은 시공간 데이터 검색 연산이 수행될 때, 연산의 대상이 되지 않는다. 따라서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 검색 연산을 수행할 때, 검색 대상이 되는 시공간 분할 영역을 검색 대상 시공간 분할 영역(900)으로 한정함에 따라 연산 속도를 향상시킬 수 있다. 또한, 시공간 데이터는 시간 및 공간 정보가 인접한 정도에 따라 클러스터링되어 물리적으로 인접하게 저장되어 있을 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 검색 연산을 수행할 때, 보다 빠르게 검색 대상 시공간 분할 영역(900)을 탐색할 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 시공간 인덱스를 구축하여 시공간 데이터 검색 연산을 수행하는데 소요되는 시간을 줄일 수 있고, 시공간 데이터 갱신 연산을 효율적으로 수행할 수 있다.
한편, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 연산이 시공간 데이터 관계 연산인 경우, 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터의 관계에 대한 연산을 수행할 수 있다. 시공간 데이터 관계 연산은 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터의 관계에 대한 결과를 생성할 수 있는 연산을 의미한다.
구체적으로, 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터와의 관계는, contain, disjoint, overlap, cross, touch 및 equal 중 어느 하나와 관련될 수 있다. 시공간 데이터 관계 연산이 contain과 관련된 연산인 경우, 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터의 포함 여부를 판단할 수 있다. 예를 들면, 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터에 시공간 질의에 존재하는 내용 데이터가 포함되는지 여부를 판단할 수 있다. 또는 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터가 시공간 질의에 존재하는 내용 데이터를 포함하는지 여부를 판단할 수 있다. 시공간 데이터 관계 연산이 disjoint와 관련된 연산인 경우, 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터가 시공간 질의에 존재하는 내용 데이터와 만나지 않는지에 대한 여부를 판단할 수 있다. 시공간 데이터 관계 연산이 overlap과 관련된 연산인 경우, 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터가 겹치는지에 대한 여부를 판단할 수 있다. 또한, 시공간 데이터 관계 연산이 cross와 관련된 연산인 경우, 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터가 교차하는지 여부를 판단할 수 있다. 그리고, 시공간 데이터 관계 연산이 touch와 관련된 연산인 경우, 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터의 경계와 시공간 질의에 존재하는 내용 데이터의 경계가 만나는지에 대한 여부를 판단할 수 있다. 또한, 시공간 데이터 관계 연산이 equal과 관련된 연산인 경우, 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터가 같은지에 대한 여부를 판단할 수 있다.
시공간 데이터 인덱싱 장치(100)는 시공간 데이터 관계 연산의 결과로서 '예' 또는 '아니오'와 같은 결과를 생성할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터와의 관계를 판단하고, '예' 또는 '아니오'와 같은 결과를 생성할 수 있다. 예를 들면, 시공간 데이터 관계 연산이 equal과 관련된 연산인 경우, 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터가 같은지에 대한 여부를 판단할 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 각각의 내용 데이터가 동일한 경우 '예'라는 결과를, 각각의 내용 데이터가 동일하지 않은 경우 '아니오'라는 결과를 생성할 수 있다. 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 관계 연산에 대한 결과를 사용자 디바이스(200)로 송신할 수 있다. 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 시공간 데이터 관계 연산의 결과를 생성할 수 있으며, 시공간 데이터 인덱싱 장치(100)의 통신부(110)에게 생성된 시공간 데이터 관계 연산의 결과를 전달할 수 있다. 이에, 통신부(110)는 시공간 데이터 관계 연산의 결과를 사용자 디바이스(200)로 송신할 수 있다.
본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 데이터 관계 연산을 수행함으로써, 각각의 내용 데이터에 대한 관계를 판단할 수 있는 연산을 제공할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 관계 연산에 대한 요청을 수신함에 따라, 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터과 관계를 판단할 수 있다. 예를 들면, 시공간 데이터 인덱싱 장치(100)는 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 존재하는 내용 데이터가 서로를 포함하는지, 서로 만나지 않는지, 서로 겹치는지, 서로 교차되는지, 또는 서로 같은지에 대한 여부를 판단할 수 있다. 이에 따라, 시공간 데이터 인덱싱 장치(100)는 사용자 디바이스(200)에게 시공간 데이터 관계 연산에 대한 결과를 송신할 수 있다. 즉, 사용자는 시공간 질의에 내용 데이터를 포함시키고, 시공간 데이터 관계 연산에 대한 요청을 함으로써, 데이터 베이스(300)에 저장되어 있는 내용 데이터와 시공간 질의에 포함된 내용 데이터와의 관계를 알 수 있다. 또한, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터를 시간 및 공간 정보의 인접도에 따라 클러스터링하여 물리적으로 인접한 시공간 분할 영역에 저장할 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)가 시공간 데이터 관계 연산을 수행할 때, 시공간 분할 영역을 보다 빠르게 탐색할 수 있고, 이에 따라, 시공간 분할 영역과 대응되는 데이터 베이스(300) 및 데이터 베이스(300)에 저장되어 있는 내용 데이터에 빠르게 접근할 수 있다. 따라서, 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는, 시공간 데이터 인덱스를 구축함으로써 시공간 데이터 관계 연산을 수행하는 속도를 향상시킬 수 있고, 시공간 데이터 관계 연산을 제공함으로써, 내용 데이터 사이의 관계에 대한 판단을 제공할 수 있다.
도 10은 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 10을 참조하면, 시공간 데이터 인덱싱 장치(100)는 복수의 시공간 데이터에 접근하여 대응하는 복수의 데이터 베이스(300)에 존재하는 내용 데이터를 이용한 연산을 수행할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)는 복수의 시간 데이터 및 복수의 공간 데이터를 포함하는 시공간 질의를 사용자 디바이스(200)로부터 수신할 수 있다. 예를 들면, 시공간 질의는 제1 시간 데이터, 제1 공간 데이터, 제2 시간 데이터 및 제2 공간 데이터를 포함할 수 있다. 시공간 데이터 인덱싱 장치(100)는 제1 시간 데이터 및 제1 공간 데이터를 기초로 제1 시공간 데이터를 생성할 수 있으며, 제2 시간 데이터 및 제2 공간 데이터를 기초로 제2 시공간 데이터를 생성할 수 있다. 즉, 시공간 데이터는 제1 시공간 데이터 및 제2 시공간 데이터를 포함할 수 있다. 이어서, 시공간 데이터 인덱싱 장치(100)는 제1 시공간 데이터에 대응하는 제1 시공간 분할 영역을 검색할 수 있고, 제2 시공간 데이터에 대응하는 제2 시공간 분할 영역을 검색할 수 있다. 즉, 시공간 분할 영역은 제1 시공간 분할 영역 및 제2 시공간 분할 영역을 포함할 수 있다. 예를 들면, 제1 시공간 분할 영역은 00의 주소코드를 갖는 시공간 분할 영역일 수 있고, 제2 시공간 분할 영역은 01의 주소코드를 갖는 시공간 분할 영역일 수 있다. 또한, 시공간 데이터 인덱싱 장치(100)는 제1 시공간 분할 영역에 대응하는 제1 데이터 베이스(300)를 검출하고, 제2 시공간 분할 영역에 대응하는 제2 데이터 베이스(300)를 검출할 수 있다. 즉, 데이터 베이스(300)는 제1 데이터 베이스(300) 및 제2 데이터 베이스(300)를 포함할 수 있다. 예를 들면, 제1 데이터 베이스(300)는 제1 시공간 분할 영역인 00의 주소코드를 갖는 시공간 분할 영역과 대응되는 데이터 베이스(300)일 수 있다. 또한, 제2 데이터 베이스(300)는 제2시공간 분할 영역인 01의 주소코드를 갖는 시공간 분할 영역일 수 있다. 도 10을 참조하면, 00의 주소코드를 갖는 시공간 분할 영역에는 a 시공간 데이터, c 시공간 데이터 및 d 시공간 데이터가 존재할 수 있다. 또한, 00의 주소코드를 갖는 시공간 데이터에 대응되는 데이터 베이스(300)에는 a 내용 데이터, b 내용 데이터 및 c 내용 데이터가 존재할 수 있다.
시공간 데이터 인덱싱 장치(100)는 제1 시공간 데이터 및 제2 시공간 데이터를 이용하여 제1 데이터 베이스(300) 및 제2 데이터 베이스(300)에 대해서 시공간 데이터 연산을 수행할 수 있다. 구체적으로, 시공간 데이터 연산은 복수의 변수를 갖는 연산일 수 있다. 즉, 시공간 데이터 연산은 복수의 시공간 데이터 및 복수의 내용 데이터를 이용하는 연산일 수 있다.
예를 들면, 시공간 데이터 연산은 시공간 데이터 합집합 연산일 수 있다. 시공간 데이터 합집합 연산은 복수의 내용 데이터를 결합한 내용 데이터를 생성하는 연산을 의미할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 시공간 데이터 합집합 연산에 대한 요청을 사용자 디바이스(200)로부터 수신할 수 있다. 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 제1 데이터 베이스(300)에 저장되어 있는 제1 내용 데이터와 제2 데이터 베이스(300)에 저장되어 있는 제2 내용 데이터를 결합하여 합집합 내용 데이터를 생성할 수 있다. 합집합 내용 데이터는 제1 내용 데이터와 제2 내용 데이터를 결합하여 생성한 하나의 내용 데이터를 의미할 수 있다. 도 10을 참조하면, 제1 시공간 분할 영역은 00의 주소코드를 갖는 시공간 분할 영역일 수 있고, 제2 시공간 분할 영역은 3의 주소코드를 갖는 시공간 분할 영역일 수 있다. 제1 시공간 분할 영역에는 a 시공간 데이터, c 시공간 데이터 및 d 시공간 데이터가 저장되어 있을 수 있다. 또한, 제1 데이터 베이스(300)에는 a 내용 데이터, c 내용 데이터 및 d 내용 데이터가 저장되어 있을 수 있다. 제2 시공간 분할 영역에는 f 시공간 데이터 및 g 시공간 데이터가 저장되어 있을 수 있다. 또한 제2 데이터 베이스(300)에는 f 내용 데이터 및 g 내용 데이터가 저장되어 있을 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 제1 내용 데이터 및 제2 내용 데이터를 결합한 합집합 내용 데이터를 생성할 수 있고, 합집합 내용 데이터는 a 내용 데이터, c 내용 데이터, d 내용 데이터, f 내용 데이터 및 g 내용 데이터를 포함할 수 있다. 이어서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 합집합 연산의 결과로 생성된 합집합 내용 데이터를 사용자 디바이스(200)로 송신할 수 있다. 즉, 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 합집합 내용 데이터가 포함하는 a 내용 데이터, c 내용 데이터, d 내용 데이터, f 내용 데이터 및 g 내용 데이터를 통신부(110)로 전달하고, 통신부(110)는 사용자 디바이스(200)로 합집합 내용 데이터를 송신할 수 있다.
시공간 데이터 연산은 시공간 데이터 차집합 연산일 수 있다. 시공간 데이터 차집합 연산은 복수의 내용 데이터 중 어느 하나의 내용 데이터에서 나머지 내용 데이터를 제외한 차집합 내용 데이터를 생성하는 연산을 의미할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 시공간 데이터 차집합 연산에 대한 요청을 사용자 디바이스(200)로부터 수신할 수 있다. 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 제1 데이터 베이스(300)에 저장되어 있는 제1 내용 데이터에서 제2 데이터 베이스(300)에 저장되어 있는 제2 내용 데이터를 제외하여 차집합 내용 데이터를 생성할 수 있다. 도 10을 참조하면, 제1 시공간 분할 영역은 00의 주소코드를 갖는 시공간 분할 영역일 수 있고, 제2 시공간 분할 영역은 01의 주소코드를 갖는 시공간 분할 영역일 수 있다. 제1 시공간 분할 영역에는 a 시공간 데이터, c 시공간 데이터 및 d 시공간 데이터가 저장되어 있을 수 있다. 또한, 제1 데이터 베이스(300)에는 a 내용 데이터, c 내용 데이터 및 d 내용 데이터가 저장되어 있을 수 있다. 제2 시공간 분할 영역에는 c 시공간 데이터 및 d 시공간 데이터가 저장되어 있을 수 있다. 또한 제2 데이터 베이스(300)에는 c 내용 데이터 및 d 내용 데이터가 저장되어 있을 수 있다. 시공간 데이터 인덱싱 장치(100)는 제1 내용 데이터에서 제2 내용 데이터를 제외하여 차집합 내용 데이터를 생성할 수 있다. 차집합 내용 데이터는 a 내용 데이터를 포함할 수 있다. 이어서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 차집합 연산의 결과로 생성된 차집합 내용 데이터를 사용자 디바이스(200)로 송신할 수 있다. 즉, 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 차집합 내용 데이터가 포함하는 c 내용 데이터를 통신부(110)로 전달하고, 통신부(110)는 사용자 디바이스(200)로 합집합 내용 데이터를 송신할 수 있다.
또한, 시공간 데이터 연산은 시공간 데이터 교집합 연산일 수 있다. 시공간 데이터 교집합 연산은 복수의 내용 데이터 모두에 포함된 내용 데이터인 교집합 내용 데이터를 생성하는 연산을 의미할 수 있다. 즉, 교집합 내용 데이터는 복수의 내용 데이터 모두에 포함된 데이터를 하나의 데이터로 생성한 것일 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)의 통신부(110)는 시공간 데이터 교집합 연산에 대한 요청을 사용자 디바이스(200)로부터 수신할 수 있다. 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 제1 데이터 베이스(300)에 저장되어 있는 제1 내용 데이터와 제2 데이터 베이스(300)에 저장되어 있는 제2 내용 데이터 모두에 포함된 데이터를 검색하고, 모두에 포함된 데이터를 교집합 내용 데이터로 생성할 수 있다. 도 10을 참조하면, 제1 시공간 분할 영역은 00의 주소코드를 갖는 시공간 분할 영역일 수 있고, 제2 시공간 분할 영역은 01의 주소코드를 갖는 시공간 분할 영역일 수 있다. 제1 시공간 분할 영역에는 a 시공간 데이터, c 시공간 데이터 및 d 시공간 데이터가 저장되어 있을 수 있다. 또한, 제1 데이터 베이스(300)에는 a 내용 데이터, c 내용 데이터 및 d 내용 데이터가 저장되어 있을 수 있다. 제2 시공간 분할 영역에는 c 시공간 데이터 및 d 시공간 데이터가 저장되어 있을 수 있다. 또한 제2 데이터 베이스(300)에는 c 내용 데이터 및 d 내용 데이터가 저장되어 있을 수 있다. 시공간 데이터 인덱싱 장치(100)는 제1 내용 데이터에서 제2 내용 데이터를 제외하여 교집합 내용 데이터를 생성할 수 있다. 교집합 내용 데이터는 c 내용 데이터 및 d 내용 데이터를 포함할 수 있다. 이어서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 교집합 연산의 결과로 생성된 교집합 내용 데이터를 사용자 디바이스(200)로 송신할 수 있다. 즉, 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 교집합 내용 데이터가 포함하는 c 내용 데이터 및 d 내용 데이터를 통신부(110)로 전달하고, 통신부(110)는 사용자 디바이스(200)로 교집합 내용 데이터를 송신할 수 있다.
본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는 복수의 시공간 데이터를 이용하여 복수의 데이터 베이스(300)에 대해서 시공간 데이터 연산을 수행함으로써, 복수의 내용 데이터를 이용하는 연산을 효율적으로 제공할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)는 복수의 시간 데이터 및 복수의 공간 데이터를 포함하는 시공간 질의를 수신할 수 있다. 이에 따라, 시공간 데이터 인덱싱 장치(100)는 복수의 시공간 데이터를 생성할 수 있고, 각각의 시공간 데이터에 대응하는 시공간 분할 영역을 검색할 수 있다. 또한, 시공간 데이터 인덱싱 장치(100)는 복수의 시공간 분할 영역(400)에 대응하는 데이터 베이스(300)를 검출할 수 있고, 각각의 데이터 베이스(300)에 저장된 내용 데이터를 탐색할 수 있다. 따라서, 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 장치(100)는 복수의 시공간 데이터가 포함된 시공간 질의를 수신함으로써, 복수의 내용 데이터를 이용한 연산을 수행할 수 있다. 시공간 데이터 인덱싱 장치(100)는 복수의 내용 데이터를 이용하여 시공간 데이터 합집합 연산, 시공간 데이터 교집합 연산 및 시공간 데이터 차집합 연산 등의 다양한 연산을 수행할 수 있다. 즉, 시공간 데이터 인덱싱 장치(100)는 복수의 내용 데이터를 이용하여 합집합 내용 데이터, 교집합 내용 데이터 및 차집합 내용 데이터를 생성할 수 있다. 이에, 사용자는 시공간 데이터 인덱싱 장치(100)를 통하여 복수의 내용 데이터를 이용한 연산 결과를 얻을 수 있다. 또한, 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는 인접한 시간 및 공간 정보를 갖는 시공간 데이터를 물리적으로 인접한 시공간 분할 영역에 저장함에 따라, 복수의 내용 데이터를 이용한 시공간 데이터 연산을 효율적으로 수행할 수 있다. 구체적으로, 복수의 시공간 데이터를 포함하는 시공간 질의를 수행함에 있어, 시공간 데이터 인덱싱 장치(100)는 복수의 시공간 데이터에 각각 대응하는 시공간 분할 영역을 검색해야 할 수 있다. 또한 시공간 데이터 인덱싱 장치(100)는 검색된 시공간 분할 영역에 대응하는 데이터 베이스(300) 및 각각의 데이터 베이스(300)에 저장되어 있는 내용 데이터를 탐색해야 할 수 있다. 이때, 시공간 데이터는 시간 및 공간의 인접도에 따라 물리적으로 인접한 시공간 분할 영역에 클러스터링되어 저장되어 있을 수 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터 연산을 수행하는 시간을 줄일 수 있고, 보다 효율적인 시공간 데이터 연산을 수행할 수 있다.
도 11은 본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법을 설명하기 위한 개략도이다.
도 11을 참조하면, 시공간 데이터 인덱싱 장치(100)는 시공간 데이터에 대응하는 시공간 분할 영역을 검색할 때, 복수의 시공간 분할 영역(400)의 배열내에서 Z 모양의 순서로 시공간 분할 영역을 검색할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)의 제어부(120)는 시공간 분할 영역을 검색할 때, 좌상, 우상, 좌하, 우하의 순서로 시공간 분할 영역을 검색할 수 있다. 즉, 시공간 데이터 인덱싱 장치(100)는 Z 모양을 그리며 시공간 데이터에 대응하는 시공간 분할 영역을 검색할 수 있다. 예를 들면, 시공간 데이터 인덱싱 장치(100)는 도 11에 도시된 화살표가 지나가는 시공간 분할 영역의 순서에 따라 시공간 분할 영역을 검색할 수 있다. 시공간 분할 영역은 복수의 하위 시공간 분할 영역을 포함할 수 있다. 도 11의 경우, 00의 주소코드 내지 33의 주소코드를 갖는 복수의 하위 시공간 분할 영역이 존재한다. 도 11에 도시된 복수의 하위 시공간 분할 영역을 검색할 경우, 시공간 데이터 인덱싱 장치(100)는 00의 주소코드-01 의 주소코드 -02 의 주소코드 -03 의 주소코드-10 의 주소코드-11 의 주소코드-12 의 주소코드-13 의 주소코드-20 의 주소코드-21 의 주소코드-22 의 주소코드-23 의 주소코드-30 의 주소코드-31 의 주소코드-32 의 주소코드-33 의 주소코드의 순서대로 시공간 분할 영역을 검색할 수 있다.
본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 장치(100)는 좌상, 우상, 좌하, 우하의 순서로 시공간 분할 영역을 검색함에 따라, 근접한 시공간 분할 영역을 효율적으로 검색할 수 있다. 구체적으로, 시공간 데이터 인덱싱 장치(100)는 인접한 시간 및 공간 정보를 갖는 시공간 데이터를 검색하는 경우가 비교적 인접하지 않은 시간 및 공간 정보를 갖는 시공간 데이터를 검색하는 경우보다 많을 수 있다. 시공간상 인접도가 높은 시공간 데이터는 물리적으로 인접한 시공간 분할 영역에 저장되어 있다. 따라서, 시공간 데이터 인덱싱 장치(100)는 Z 모양의 순서로 시공간 분할 영역을 검색함에 따라, 검색하는 속도를 향상시킬 수 있고, 시공간 분할 영역을 효율적으로 검색할 수 있다.
도 12는 시공간 데이터 검색 질의에 따른 탐색한 노드 수에 대한 그래프이다.
도 12를 참조하면, 그래프의 가로축은 시공간 질의이며, 그래프의 세로축은 시공간 데이터 인덱싱 장치가 시공간 질의를 수행하며 탐색한 노드 수를 의미한다. 구체적으로, 시공간 데이터 인덱싱 장치는 시공간 질의를 수행하며 시공간 분할 영역을 탐색할 수 있다. 도 12의 그래프는 실시예, 비교에 1 및 비교예 2에 따른 시공간 데이터 인덱싱 장치가 시공간 질의를 수행하는 동안 탐색한 시공간 분할 영역의 수에 대한 그래프이다.
실시예에 따른 장치는 앞서 설명한 본 발명의 일 실시예에 따른 시공간 데이터 인덱싱 장치이다. 비교예 1에 따른 장치는 시공간 인덱스로서 3D R-tree(Three Dimensional R-tree)를 사용한 시공간 데이터 인덱싱 장치이다. 3D R-tree는 공간 데이터를 표현하는 R-tree의 한 축에 시간 데이터를 표현하는 축을 추가함으로써 시공간 데이터를 표현할 수 있는 인덱스이다. 비교예 2에 따른 장치는 시공간 인덱스로서 MV3R-tree(Multi-Version R-tree and 3D R-tree)를 사용한 시공간 데이터 인덱싱 장치이다. MV3R-tree는 3D R-tree와 MVR-tree를 결합시킨 시공간 데이터 인덱스이다.
실시예에 따른 장치, 비교예 1에 따른 장치 및 비교예 2에 따른 장치는 시공간 데이터 인덱스에만 차이가 있으며 장치의 소프트웨어 사양은 모두 동일하다. 소프트웨어 사양으로 운영체제는 Ubuntu 14.04 버전을 사용하였으며, 개발도구는 Hadoop 1.2.1 버전, HBase 0.94.27 버전, JTS Library 1.7 버전을 사용하였다. 각각의 질의에 사용된 시공간 데이터는 LUBM 10k로 생성한 1억개 데이터로 약 22GB정도이다. LUBM(Lehigh University Benchmark)은 미국 Lehigh 대학의 온톨로지 벤치마크 데이터로 최소 140만개(25GB) 트리플에서 최대 138억개(2.5TB) 트리플 데이터를 생성 가능하다.
시공간 질의는 시공간 질의 1 내지 시공간 질의 5를 포함한다. 시공간 질의 1 내지 시공간 질의 5는 시간 속성에 대해 구간을 설정하고 공간 속성에 대해 전체 공간 영역의 일부 영역을 설정하여 5가지 상이한 질의로 구성된다. 구체적으로, 시공간 질의 1은 시간 속성에 대하여 (80, 100)의 구간을 갖고, 공간 속성에 대하여 전체 공간 영역의 0~1%의 영역을 갖는다. 시공간 질의 1은 시간 속성에 대하여 (80, 100)의 구간을 갖고, 공간 속성에 대하여 전체 공간 영역의 0~1%의 영역을 갖는다. 시공간 질의 2은 시간 속성에 대하여 (60, 100)의 구간을 갖고, 공간 속성에 대하여 전체 공간 영역의 0~5%의 영역을 갖는다. 시공간 질의 3은 시간 속성에 대하여 (40, 100)의 구간을 갖고, 공간 속성에 대하여 전체 공간 영역의 0~10%의 영역을 갖는다. 또한, 시공간 질의 4은 시간 속성에 대하여 (20, 100)의 구간을 갖고, 공간 속성에 대하여 전체 공간 영역의 0~15%의 영역을 갖는다. 그리고, 시공간 질의 5은 시간 속성에 대하여 (0, 100)의 구간을 갖고, 공간 속성에 대하여 전체 공간 영역의 0~20%의 영역을 갖는다. 시공간 질의 1 내지 시공간 질의 5는 설정된 시간 속성에 대한 구간 및 공간 속성 영역 내에서 시공간 데이터를 검색하는 질의이다. 즉, 실시예, 비교예 1 및 비교예 2에 따른 장치는 시공간 데이터 검색 연산을 수행할 수 있다.
도 12의 그래프를 참조하면, 실시예에 따른 장치는 비교예 1에 따른 장치 및 비교예 2에 따른 장치에 비하여 시공간 질의를 수행하는 성능이 향상된 것을 확인할 수 있다. 구체적으로, 시공간 질의 1 내지 시공간 질의 5 모두에서 실시예에 따른 장치는 비교예 1에 따른 장치 및 비교예 2에 따른 장치에 비하여 낮은 탐색한 노드 수를 나타낸다. 구체적으로, 시공간 질의 1에서 시공간 질의 5로 나아갈수록 시간 구간은 길어지고 공간 구간은 넓어지며, 따라서, 실시예, 비교예 1 및 비교예 2에 따른 장치 모두 탐색한 노드 수가 증가되는 것이 확인될 수 있다. 즉, 탐색해야 하는 시공간 범위가 넓어짐에 따라 탐색한 노드 수는 증가되는 것이 확인될 수 있다. 이때, 각각의 시공간 질의에서 실시예에 따른 장치는 비교예 1 및 비교예 2에 따른 장치에 비하여 같은 시공간 데이터 검색 연산을 수행하면서도 더 적은 수의 노드를 탐색할 수 있다. 즉, 실시예에 따른 장치는 적은 수의 노드를 탐색하면서 동일한 시공간 질의를 수행할 수 있다.
본 발명의 다양한 실시예에 따른 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치는 시공간 데이터에 대한 인덱스를 구축하고, 인접한 시공간 정보를 포함하는 시공간 데이터를 클러스터링하여 물리적으로 인접한 시공간 분할 영역에 저장할 수 있다. 이에, 시공간 데이터 인덱싱 장치는 동일한 시공간 연산을 수행하면서도 더 적은 수의 시공간 분할 영역을 탐색할 수 있고, 따라서, 시공간 데이터 연산을 수행하는 속도를 향상시킬 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 시공간 데이터 인덱싱 장치
110: 통신부
120: 제어부
200: 사용자 디바이스
300: 데이터 베이스
400: 복수의 시공간 분할 영역
410: 시공간 데이터
500: 맵리듀서
600, 620: 추가 시공간 데이터
610, 630: 추가 내용 데이터
640: 복수의 하위 시공간 분할 영역
800: 갱신 시공간 데이터
810: 갱신 내용 데이터
900: 검색 대상 시공간 분할 영역
910: 검색 결과 내용 데이터

Claims (20)

  1. 사용자로부터 시공간 질의를 수신하는 단계;
    상기 시공간 질의에 시간 데이터 및 공간 데이터가 존재하는지 결정하는 단계;
    상기 시간 데이터 및 상기 공간 데이터를 기초로 시공간 데이터를 생성하는 단계;
    복수의 시공간 분할 영역 중 상기 시공간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계;
    상기 시공간 분할 영역에 기초한 시공간 데이터 연산에 대한 요청을 수신하는 단계;
    상기 시공간 분할 영역에 대응하는 데이터 베이스를 검출하는 단계;
    상기 시공간 데이터를 이용하여 상기 데이터 베이스에 대해서 시공간 데이터 연산을 수행하는 단계; 및
    상기 시공간 데이터 연산의 결과를 상기 사용자에게 송신하는 단계를 포함하며,
    상기 시공간 데이터 연산이 시공간 데이터 저장 연산인 경우,
    상기 시공간 데이터 연산을 수행하는 단계는,
    상기 시공간 분할 영역에 상기 시공간 데이터를 저장하는 단계; 및
    상기 데이터 베이스에 상기 시공간 질의에 존재하는 내용 데이터를 저장하는 단계를 포함하고,
    상기 시공간 데이터 연산을 수행하는 단계는,
    상기 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 오버플로우인 경우,
    상기 시공간 분할 영역을 복수의 하위 시공간 분할 영역으로 분할하는 단계를 더 포함하는, 시공간 데이터 인덱싱 방법.
  2. 제1항에 있어서,
    상기 시공간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계는,
    상기 시간 데이터를 이용하여 상기 복수의 시공간 분할 영역 중에서 시간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계; 및
    상기 공간 데이터를 이용하여 상기 검색된 시간 데이터에 대응하는 시공간 분할 영역 중에서 공간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계를 포함하는, 시공간 데이터 인덱싱 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 시공간 데이터 연산이 시공간 데이터 삭제 연산인 경우,
    상기 시공간 데이터 연산을 수행하는 단계는,
    상기 시공간 분할 영역에 저장되어 있는 시공간 데이터를 삭제하는 단계; 및
    상기 데이터 베이스에 저장되어 있는 내용 데이터를 삭제하는 단계를 포함하는, 시공간 데이터 인덱싱 방법.
  7. 제6항에 있어서,
    상기 시공간 연산을 수행하는 단계는,
    상기 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 언더플로우인 경우,
    상기 시공간 분할 영역을 하나의 시공간 분할 영역로 병합하는 단계를 더 포함하는, 시공간 데이터 인덱싱 방법.
  8. 제1항에 있어서,
    상기 시공간 데이터 연산이 시공간 데이터 갱신 연산인 경우,
    상기 시공간 데이터 연산을 수행하는 단계는,
    상기 시공간 분할 영역에 저장되어 있는 시공간 데이터를 상기 시공간 데이터로 갱신하는 단계; 및
    상기 데이터 베이스에 저장되어 있는 내용 데이터를 상기 시공간 질의에 존재하는 내용 데이터로 갱신하는 단계를 포함하는, 시공간 데이터 인덱싱 방법.
  9. 제1항에 있어서,
    상기 시공간 데이터 연산이 시공간 데이터 검색 연산인 경우,
    상기 시공간 데이터 연산을 수행하는 단계는,
    상기 데이터 베이스에 저장되어 있는 내용 데이터를 추출하는 단계를 포함하며,
    상기 시공간 데이터 연산의 결과를 상기 사용자에게 송신하는 단계는,
    상기 내용 데이터를 상기 사용자에게 송신하는 단계를 포함하는, 시공간 데이터 인덱싱 방법.
  10. 제1항에 있어서,
    상기 시공간 데이터 연산이 시공간 데이터 관계 연산인 경우,
    상기 시공간 데이터 연산을 수행하는 단계는,
    상기 데이터 베이스에 저장되어 있는 내용 데이터와 상기 시공간 질의에 존재하는 내용 데이터의 관계에 대한 연산을 수행하는 단계를 포함하며,
    상기 데이터 베이스에 저장되어 있는 내용 데이터와 상기 시공간 질의에 존재하는 내용 데이터와의 관계는, contain, disjoint, overlap, cross, touch 및 equal 중 어느 하나와 관련되는, 시공간 데이터 인덱싱 방법.
  11. 제1항에 있어서,
    상기 시공간 데이터는 제1 시공간 데이터 및 제2 시공간 데이터를 포함하며,
    상기 시공간 분할 영역은 상기 제1 시공간 데이터에 대응하는 제1 시공간 분할 영역 및 상기 제2 시공간 데이터에 대응하는 제2 시공간 분할 영역을 포함하며,
    상기 데이터 베이스는, 상기 제1 시공간 분할 영역에 대응하는 제1 데이터 베이스 및 상기 제2 시공간 분할 영역에 대응하는 제2 데이터 베이스를 포함하며,
    상기 시공간 데이터 연산을 수행하는 단계는,
    상기 제1 시공간 데이터 및 상기 제2 시공간 데이터를 이용하여 상기 제1 데이터 베이스 및 상기 제2 데이터 베이스에 대해서 시공간 데이터 연산을 수행하는 단계인, 시공간 데이터 인덱싱 방법.
  12. 제11항에 있어서,
    상기 시공간 데이터 연산이 시공간 데이터 합집합 연산인 경우,
    상기 시공간 데이터 연산을 수행하는 단계는,
    상기 제1 데이터 베이스에 저장된 제1 내용 데이터 및 상기 제2 데이터 베이스에 저장된 제2 내용 데이터를 결합한 합집합 내용 데이터를 생성하는 단계를 포함하며,
    상기 시공간 데이터 연산의 결과를 상기 사용자에게 송신하는 단계는,
    상기 합집합 내용 데이터를 상기 사용자에게 송신하는 단계를 포함하는, 시공간 데이터 인덱싱 방법.
  13. 제11항에 있어서,
    상기 시공간 데이터 연산이 시공간 데이터 차집합 연산인 경우,
    상기 시공간 데이터 연산을 수행하는 단계는,
    상기 제1 데이터 베이스에 저장된 제1 내용 데이터에서 상기 제2 데이터 베이스에 저장된 제2 내용 데이터를 제외한 차집합 내용 데이터를 생성하는 단계를 포함하며,
    상기 시공간 데이터 연산의 결과를 상기 사용자에게 송신하는 단계는,
    상기 차집합 내용 데이터를 상기 사용자에게 송신하는 단계를 포함하는, 시공간 데이터 인덱싱 방법.
  14. 제11항에 있어서,
    상기 시공간 데이터 연산이 시공간 데이터 교집합 연산인 경우,
    상기 시공간 데이터 연산을 수행하는 단계는,
    상기 제1 데이터 베이스에 저장된 제1 내용 데이터 및 상기 제2 데이터 베이스에 저장된 제2 내용 데이터 모두에 포함된 내용 데이터인 교집합 내용 데이터를 생성하는 단계를 포함하며,
    상기 시공간 데이터 연산의 결과를 상기 사용자에게 송신하는 단계는,
    상기 교집합 내용 데이터를 상기 사용자에게 송신하는 단계를 포함하는, 시공간 데이터 인덱싱 방법.
  15. 제1항에 있어서,
    상기 시공간 데이터에 대응하는 시공간 분할 영역을 검색하는 단계는,
    상기 복수의 시공간 분할 영역의 배열내에서 좌상, 우상, 좌하, 우하의 순서로 (Z 모양의 순서로) 시공간 분할 영역을 검색함으로써 수행되는, 시공간 데이터 인덱싱 방법.
  16. 사용자로부터 시공간 질의를 수신하도록 구성된 통신부; 및
    상기 시공간 질의에서 시간 데이터 및 공간 데이터가 존재하는지 결정하고,
    상기 시간 데이터 및 상기 공간 데이터를 기초로 시공간 데이터를 생성하고,
    복수의 시공간 분할 영역 중 상기 시공간 데이터에 대응하는 시공간 분할 영역을 검색하도록 구성된 제어부를 포함하며,
    상기 제어부는,
    복수의 데이터 베이스 중 시공간 분할 영역에 대응하는 데이터 베이스를 검출하고,, 상기 시공간 데이터를 이용하여 상기 데이터 베이스에 대해서 시공간 데이터 연산을 수행하도록 더 구성되고,
    상기 통신부는,
    상기 시공간 분할 영역에 기초한 시공간 데이터 연산에 대한 요청을 수신하고, 상기 시공간 데이터 연산의 결과를 상기 사용자에게 송신하도록 더 구성되고,
    상기 시공간 데이터 연산이 시공간 데이터 저장 연산인 경우,
    상기 제어부는,
    상기 시공간 데이터 연산의 수행에 있어, 상기 시공간 분할 영역에 상기 시공간 데이터를 저장하고, 상기 데이터 베이스에 상기 시공간 질의에 존재하는 내용 데이터를 저장하도록 더 구성되며,
    상기 시공간 데이터 연산의 수행에 있어, 상기 시공간 분할 영역에 저장되어 있는 시공간 데이터의 수가 오버플로우인 경우, 상기 시공간 분할 영역을 복수의 하위 시공간 분할 영역으로 분할하도록 더 구성된, 시공간 데이터 인덱싱 장치.
  17. 삭제
  18. 삭제
  19. 제16항에 있어서,
    상기 시공간 데이터 연산이 시공간 데이터 삭제 연산인 경우,
    상기 제어부는,
    상기 시공간 데이터 연산의 수행에 있어, 상기 시공간 분할 영역에 저장되어 있는 시공간 데이터를 삭제하고,
    상기 데이터 베이스에 저장되어 있는 내용 데이터를 삭제하도록 더 구성된, 시공간 데이터 인덱싱 장치.
  20. 제16항에 있어서,
    상기 시공간 데이터 연산이 시공간 데이터 관계 연산인 경우,
    상기 제어부는,
    상기 시공간 데이터 연산의 수행에 있어,
    상기 데이터 베이스에 저장되어 있는 내용 데이터와 상기 시공간 질의에 존재하는 내용 데이터에 대한 연산을 수행하도록 더 구성되고,
    상기 데이터 베이스에 저장되어 있는 내용 데이터와 상기 시공간 질의에 존재하는 내용 데이터와의 관계는, contain, disjoint, overlap, cross, touch 및 equal 중 어느 하나와 관련되는, 시공간 데이터 인덱싱 장치.
KR1020170099845A 2017-08-07 2017-08-07 클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치 KR101815813B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170099845A KR101815813B1 (ko) 2017-08-07 2017-08-07 클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170099845A KR101815813B1 (ko) 2017-08-07 2017-08-07 클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치

Publications (1)

Publication Number Publication Date
KR101815813B1 true KR101815813B1 (ko) 2018-01-30

Family

ID=61070531

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170099845A KR101815813B1 (ko) 2017-08-07 2017-08-07 클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치

Country Status (1)

Country Link
KR (1) KR101815813B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014002519A (ja) * 2012-06-18 2014-01-09 Hitachi Ltd 時空間データ管理システム、時空間データ管理方法、及びそのプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014002519A (ja) * 2012-06-18 2014-01-09 Hitachi Ltd 時空間データ管理システム、時空間データ管理方法、及びそのプログラム

Similar Documents

Publication Publication Date Title
CN107423368B (zh) 一种非关系数据库中的时空数据索引方法
Whitman et al. Spatial indexing and analytics on Hadoop
CN103020204B (zh) 一种对分布式顺序表进行多维区间查询的方法及其系统
JP6032467B2 (ja) 時空間データ管理システム、時空間データ管理方法、及びそのプログラム
CN107423422B (zh) 基于网格的空间数据分布式存储及检索方法和系统
US8229916B2 (en) Method for massively parallel multi-core text indexing
US10733172B2 (en) Method and computing device for minimizing accesses to data storage in conjunction with maintaining a B-tree
CN106528793B (zh) 一种分布式空间数据库的时空分片存储方法
US11216516B2 (en) Method and system for scalable search using microservice and cloud based search with records indexes
US10762068B2 (en) Virtual columns to expose row specific details for query execution in column store databases
US10241963B2 (en) Hash-based synchronization of geospatial vector features
Challa et al. DD-Rtree: A dynamic distributed data structure for efficient data distribution among cluster nodes for spatial data mining algorithms
US20230252012A1 (en) Method for indexing data
US20150293971A1 (en) Distributed queries over geometric objects
de Souza Baptista et al. NoSQL geographic databases: an overview
Makris et al. Database system comparison based on spatiotemporal functionality
CN116431726A (zh) 一种图数据处理方法、装置、设备及计算机存储介质
Dam et al. Efficient top-k recently-frequent term querying over spatio-temporal textual streams
CN116541427B (zh) 数据查询方法、装置、设备及存储介质
KR101815813B1 (ko) 클라우드 서비스에서의 시공간 데이터 인덱싱 방법 및 이를 이용하는 장치
Xu et al. Continuous k nearest neighbor queries over large multi-attribute trajectories: a systematic approach
Kvet Database Block Management using Master Index
KR102354343B1 (ko) 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치
CN111737267B (zh) 基于HBase的索引系统及查询加速方法
Lee et al. Fast mining of spatial frequent wordset from social database

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant