KR100944655B1 - Apparatus and method for constructing data and apparatus and method for retrieving data including non-spatial information - Google Patents

Apparatus and method for constructing data and apparatus and method for retrieving data including non-spatial information Download PDF

Info

Publication number
KR100944655B1
KR100944655B1 KR1020080134641A KR20080134641A KR100944655B1 KR 100944655 B1 KR100944655 B1 KR 100944655B1 KR 1020080134641 A KR1020080134641 A KR 1020080134641A KR 20080134641 A KR20080134641 A KR 20080134641A KR 100944655 B1 KR100944655 B1 KR 100944655B1
Authority
KR
South Korea
Prior art keywords
data
bucket
index
node
information
Prior art date
Application number
KR1020080134641A
Other languages
Korean (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 KR1020080134641A priority Critical patent/KR100944655B1/en
Application granted granted Critical
Publication of KR100944655B1 publication Critical patent/KR100944655B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/189Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE: An apparatus and a method for constructing data and an apparatus and a method for retrieving data including non-spatial information are provided to search documents quickly by generating an index tree and an index bucket including data bucket and address information of data bucket which includes position information and aspatial information of a data object. CONSTITUTION: A data bucket generating unit(110) creates data bucket including the aspatial information. An index tree generating unit(120) creates an index tree by hierarchically arranging a terminal node and a nonterminal node. An index bucket generating unit(130) creates the index bucket including the terminal node information and the index bucket including the nonterminal node information and the address information. A multiplexer(140) creates encoded data. A time information output unit(150) changes the address information of the index bucket and data bucket based on the transfer rate of the encoded data into the time information.

Description

비공간정보를 포함하는 데이터 생성장치 및 방법, 그리고 데이터 검색장치 및 방법{Apparatus and method for constructing data and apparatus and method for retrieving data including non-spatial information}Apparatus and method for constructing data and apparatus and method for retrieving data including non-spatial information}

본 발명은 비공간정보를 포함하는 데이터 생성장치 및 방법, 그리고 데이터 검색장치 및 방법에 관한 것으로, 보다 상세하게는, 무선 브로드캐스팅 채널을 통해 전송할 위치정보 및 비공간정보를 가지는 데이터 객체에 관한 데이터를 생성하는 장치 및 방법, 그리고 무선 브로드캐스팅 채널을 통해 수신되는 데이터 스트림으로부터 데이터 객체에 관한 위치정보 및 비공간정보를 검색하는 장치 및 방법에 관한 것이다.The present invention relates to a data generating apparatus and method and a data retrieval apparatus and method including non-spatial information, and more particularly, to a data object having position information and non-spatial information to be transmitted through a wireless broadcasting channel. An apparatus and method for generating a network and an apparatus and method for retrieving location information and non-spatial information about a data object from a data stream received through a wireless broadcasting channel.

무선 네트워크가 널리 보급되고 범지구위치결정시스템(global positioning system : GPS)와 같은 위치결정기술이 등장하면서, 위치기반서비스(location based services : LBSs)는 이동단말환경에서 유망한 어플리케이션(application)의 하나로 부각되었다. 이는 어떠한 이동단말의 위치에 관한 정보를 활용하는 서비스로서, 이동단말의 현재 위치와 관련된 질의인 공간질의(spatial query)에 대응하는 정보를 제공받을 수 있도록 한다.As wireless networks become widespread and positioning technologies such as global positioning systems (GPS) emerge, location based services (LBSs) are emerging as one of the promising applications in mobile terminal environments. It became. This is a service that utilizes information about the location of a mobile terminal, so that information corresponding to a spatial query, which is a query related to the current location of the mobile terminal, can be provided.

위치기반서비스의 핵심이 되는 공간질의에는 범위질의(range query)와 최근접질의(k-nearest neighbor(k-NN) query)가 있다. 범위질의에서는 주어진 공간질의범위인 q.R 내에 속하는 모든 목표데이터를 검색한다. 예를 들면, 범위질의는 '현재 위치로부터 반경 5마일 내에 위치하는 모든 레스토랑을 검색할 것'의 형식으로 표현될 수 있다. 그에 반해 최근접질의에서는 주어진 공간질의지점인 q.P로부터 가장 가까운 한 개 이상의 목표데이터를 검색한다. 최근접질의는, 예를 들면, '현재 위치로부터 가장 가까운 3개의 레스토랑을 검색할 것'의 형식으로 표현될 수 있다.The spatial queries that are the core of location-based services include range queries and k-nearest neighbor (k-NN) queries. The range query retrieves all target data that falls within q.R, the given spatial query range. For example, a range query can be expressed in the form of "search all restaurants located within a five-mile radius of the current location." In contrast, the most recent query retrieves one or more target data nearest to the given spatial query point q.P. The closest query can be expressed, for example, in the form of 'search for the three restaurants closest to the current location'.

이와 같은 공간질의에 대응하는 목표데이터를 이동단말의 사용자에게 효율적으로 제공하기 위한 방법으로 무선 데이터 브로드캐스팅(wireless data broadcasting) 방법이 보편적으로 사용되고 있다. 이 방법을 사용하면 PDA 또는 휴대전화와 같은 이동단말환경에서 동일한 비용으로 동시에 복수의 이동단말을 수용할 수 있으며, 또한 대역폭 효율과 확장성(scalability)이 우수하기 때문에 위치기반서비스를 제공하기 위한 효과적인 방법이다.As a method for efficiently providing target data corresponding to the spatial query to a user of a mobile terminal, a wireless data broadcasting method is commonly used. This method can accommodate multiple mobile terminals at the same cost and at the same cost in mobile terminal environment such as PDA or mobile phone, and it is effective to provide location based service because of its excellent bandwidth efficiency and scalability. It is a way.

무선 데이터 브로드캐스팅 방법에서 서버는 무선 브로드캐스팅 채널을 통하여 미리 정해진 순서에 의해 복수의 데이터를 주기적으로 퍼뜨린다. 또한 각각의 이동단말은 브로드캐스팅 채널에 접속하여 브로드캐스팅되는 데이터 스트림을 연속적으로 스캔(scan)하여 목표 데이터를 검색한다. 이때 이동단말이 목표데이터를 검색하기 위해 브로드캐스팅 채널에 접속된 상태를 유지하는 시간인 접근시간(access time)과 검색한 목표데이터를 데이터스트림으로부터 다운로드하는 데 걸리는 시간인 동조시간(tuning time)이 길어질수록 에너지소비가 증가하게 된다. 이러한 에너 지소비를 감소시키기 위해 데이터를 검색할 때 필요한 질의어 및 질의어에 대응하는 데이터의 데이터 스트림상에서의 위치를 인덱스(index) 구조로 저장한 다음 이를 데이터 스트림에 포함시켜 브로드캐스팅하는 방법이 제안되었다. 이 방법에 따르면, 이동단말은 데이터를 검색하기 위한 질의어를 인덱스에서 검색하여 질의어에 대응하는 데이터의 데이터 스트림상에서의 위치를 획득하고, 데이터 스트림의 해당 위치에서 데이터를 획득할 수 있다.In the wireless data broadcasting method, the server periodically spreads a plurality of data in a predetermined order through the wireless broadcasting channel. In addition, each mobile terminal accesses a broadcasting channel and continuously scans a broadcast data stream to search for target data. In this case, access time, which is a time for a mobile terminal to remain connected to a broadcasting channel to retrieve target data, and tuning time, which is a time required to download the retrieved target data from a data stream, The longer the energy consumption increases. In order to reduce such energy consumption, a method of storing a query and a location corresponding to the query in a data stream for searching the data is stored in an index structure and then included in the data stream for broadcasting. . According to this method, the mobile terminal can retrieve a query for retrieving data from an index, obtain a position on the data stream of data corresponding to the query, and obtain data at the corresponding position of the data stream.

데이터 스트림과 함께 브로드캐스팅되는 인덱스를 생성하기 위해 트리 구조가 사용되는데, 위치 관련 데이터를 포함하는 인덱스 구조로 가장 널리 사용되는 것이 R-트리 구조이다. R-트리는 다차원의 공간데이터를 저장하는 인덱스 구조로서, 다차원 공간을 복수의 최소경계사각형(minimum bounding rectangles : MBRs)으로 분할하여 저장한다. 이동단말은 브로드캐스팅 채널에 접속하여 위와 같은 방법으로 생성된 R-트리 구조의 인덱스를 포함하는 데이터 스트림으로부터 공간질의에 대응하는 데이터를 검색하게 된다.A tree structure is used to create an index that is broadcast with the data stream. An R-tree structure is the most widely used index structure that includes location-related data. The R-tree is an index structure for storing multidimensional spatial data, and divides and stores the multidimensional space into a plurality of minimum bounding rectangles (MBRs). The mobile station accesses the broadcasting channel and retrieves data corresponding to the spatial query from the data stream including the index of the R-tree structure generated in the above manner.

이러한 과정은 각 공간데이터의 위치정보만을 사용하여 인덱스를 생성하고 목표데이터를 검색하도록 하는 방법이다. 그러나 이러한 공간질의가 목표데이터의 비공간적인 속성값에 대해 추가적인 제한사항을 특정하고 있는 경우가 존재할 수 있다. 예를 들면, 최근접질의가 '평균가격이 30~40달러인 가장 가까운 2개의 프렌치 레스토랑을 검색할 것'의 형식으로 표시되는 경우이다. 이하에서는 이러한 경우를 일반화된 공간질의로 정의한다. 위에서 제시되었던 R-트리 구조의 인덱스 생성방법이나 생성된 인덱스로부터 목표데이터를 검색하는 방법은 이러한 일반화된 공 간질의의 경우에는 적용되기 어렵다. 따라서 비공간적인 사항을 포함할 수 있는 R-트리 인덱스를 생성하고 그로부터 일반화된 공간질의에 해당하는 목표데이터를 검색할 수 있는 방법의 필요성이 제기된다.This process is to create an index and search for the target data using only the location information of each spatial data. However, there may be cases where such spatial queries specify additional restrictions on non-spatial attribute values of the target data. For example, the latest contact is displayed in the form of 'search for the two closest French restaurants with an average price of $ 30 to $ 40'. Hereinafter, this case is defined as a generalized spatial query. The index generation method of the R-tree structure or the method of retrieving the target data from the generated index is difficult to apply in this generalized space query. Therefore, a need arises for a method of generating an R-tree index that can include non-spatial matters and retrieving target data corresponding to a generalized spatial query.

본 발명이 이루고자 하는 기술적 과제는 이동단말에서 무선 브로드캐스팅 채널을 통해 대기시간 및 에너지 소비 면에서 효율적으로 데이터를 검색하도록 할 수 있는 공간정보를 포함하는 데이터 생성장치 및 방법을 제공하는 데 있다.An object of the present invention is to provide a data generating apparatus and method including spatial information that enables the mobile terminal to efficiently retrieve data in terms of standby time and energy consumption through a wireless broadcasting channel.

본 발명이 이루고자 하는 다른 기술적 과제는 이동단말에서 무선 브로드캐스팅 채널을 통해 대기시간 및 에너지 소비 면에서 효율적으로 데이터를 검색하도록 할 수 있는 공간정보를 포함하는 데이터 생성방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.Another technical problem to be solved by the present invention is to provide a program for executing a data generation method on a computer including spatial information that enables the mobile terminal to efficiently retrieve data in terms of latency and energy consumption through a wireless broadcasting channel. To provide a computer-readable recording medium for recording.

본 발명이 이루고자 하는 다른 기술적 과제는 무선 브로드캐스팅 채널을 통하여 수신되는 데이터 스트림을 검색함에 있어서 무선 브로드캐스팅 채널에 접속하는 시간과 데이터를 다운로드하는 시간을 감소시켜 대기시간 및 에너지 소비 면에서 효율적인 공간정보를 포함하는 데이터 검색장치 및 방법을 제공하는 데 있다.Another technical problem to be solved by the present invention is to reduce the time for accessing the wireless broadcasting channel and the time for downloading the data in retrieving the data stream received through the wireless broadcasting channel. It is to provide a data retrieval apparatus and method comprising a.

본 발명이 이루고자 하는 또 다른 기술적 과제는 무선 브로드캐스팅 채널을 통하여 수신되는 데이터 스트림을 검색함에 있어서 무선 브로드캐스팅 채널에 접속하는 시간과 데이터를 다운로드하는 시간을 감소시켜 대기시간 및 에너지 소비 면에서 효율적인 공간정보를 포함하는 데이터 검색방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.Another technical problem to be solved by the present invention is to search for a data stream received through a wireless broadcasting channel, thereby reducing the time for connecting to the wireless broadcasting channel and downloading the data, thereby reducing the latency and energy consumption. The present invention provides a computer-readable recording medium having recorded thereon a program for executing a data retrieval method including information.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 공간정보를 포함하는 데이터 생성장치는, 복수의 데이터 객체 각각에 대응하여 상기 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷을 생성하는 데이터 버킷 생성부; 상기 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 상기 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어진 단말노드와, 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함하는 비단말노드정보로 이루어진 비단말노드를 계층적으로 배치하여 인덱스 트리를 생성하는 인덱스 트리 생성부; 상기 인덱스 트리의 단말노드 각각에 대해 각각의 단말노드에 대응하는 단말노드정보로 이루어진 인덱스 버킷을 생성하고, 인덱스 트리의 비단말노드 각각에 대해 각각의 비단말노드의 비단말노드정보와 각각의 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보로 이루어진 인덱스 버킷을 생성하는 인덱스 버킷 생성부; 상기 인덱스 버킷 및 상기 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성하는 다중화부; 및 상기 데이터 버킷 및 인덱스 버킷의 데이터량 및 상기 다중화부에 의해 생성되는 부호화될 데이터의 전송 속도를 기초로 상기 데이터 버킷 및 인덱스 버킷의 주소정보를 시간정보로 변환하는 시간정보 산출부;를 포함하며, 상기 데이터 버킷 생성부 및 상기 인덱스 버킷 생성부는 각각에 대응하는 상기 데이터 버킷 및 인덱스 버킷의 주소정보를 상기 시간정보 산출부가 산출한 시간정보로 변경한다.In order to achieve the above technical problem, a data generating apparatus including spatial information according to the present invention includes data for generating a data bucket including non-spatial information representing characteristics of the data object corresponding to each of a plurality of data objects. Bucket generation unit; Logical sum of a terminal node comprising a data code encoding non-spatial information of the data objects and terminal node information including address information of data buckets corresponding to the data objects, and a data code included in a lower child node. An index tree generation unit for generating an index tree by hierarchically arranging non-terminal nodes including non-terminal node information including a node code calculated as a result; For each terminal node of the index tree, an index bucket including terminal node information corresponding to each terminal node is generated, and for each non-terminal node of the index tree, non-terminal information of each non-terminal node and each terminal An index bucket generator configured to generate an index bucket including address information of an index bucket corresponding to a child node of a horse node; A multiplexer configured to sequentially arrange the index bucket and the data bucket to generate data to be encoded; And a time information calculator for converting address information of the data bucket and the index bucket into time information based on the data amount of the data bucket and the index bucket and the transmission speed of the data to be encoded generated by the multiplexer. The data bucket generator and the index bucket generator change address information of the data bucket and the index bucket corresponding to the time information calculated by the time information calculator.

상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 공간정보를 포함하는 데이터 생성방법은, 복수의 데이터 객체 각각에 대응하여 상기 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷을 생성하는 데이터 버킷 생성 단계; 상기 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 상기 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어진 단말노드와, 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함하는 비단말노드정보로 이루어진 비단말노드를 계층적으로 배치하여 인덱스 트리를 생성하는 인덱스 트리 생성단계; 상기 인덱스 트리의 단말노드 각각에 대해 각각의 단말노드에 대응하는 단말노드정보로 이루어진 인덱스 버킷을 생성하고, 인덱스 트리의 비단말노드 각각에 대해 각각의 비단말노드의 비단말노드정보와 각각의 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보로 이루어진 인덱스 버킷을 생성하는 인덱스 버킷 생성단계; 상기 인덱스 버킷 및 상기 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성하는 다중화단계; 및 상기 데이터 버킷 및 인덱스 버킷의 데이터량 및 상기 다중화부에 의해 생성되는 부호화될 데이터의 전송 속도를 기초로 상기 데이터 버킷 및 인덱스 버킷의 주소정보를 시간정보로 변환하는 시간정보 산출단계;를 포함하며, 상기 데이터 버킷 생성단계 및 상기 인덱스 버킷 생성단계에서, 각각에 대응하는 상기 데이터 버킷 및 인덱스 버킷의 주소정보를 상기 시간정보 산출부가 산출한 시간정보로 변경한다.According to another aspect of the present invention, there is provided a data generation method including spatial information, the method comprising: generating a data bucket including non-spatial information representing characteristics of the data object corresponding to each of a plurality of data objects. Creating a data bucket; Logical sum of a terminal node comprising a data code encoding non-spatial information of the data objects and terminal node information including address information of data buckets corresponding to the data objects, and a data code included in a lower child node. An index tree generation step of generating an index tree by hierarchically arranging non-terminal nodes formed of non-terminal node information including a node code calculated as; For each terminal node of the index tree, an index bucket including terminal node information corresponding to each terminal node is generated, and for each non-terminal node of the index tree, non-terminal information of each non-terminal node and each terminal An index bucket generation step of generating an index bucket consisting of address information of an index bucket corresponding to a child node of a horse node; Multiplexing the data to be encoded by sequentially placing the index bucket and the data bucket; And a time information calculating step of converting address information of the data bucket and the index bucket into time information based on the data amount of the data bucket and the index bucket and the transmission speed of the data to be encoded generated by the multiplexer. In the data bucket generation step and the index bucket generation step, address information of the data bucket and the index bucket corresponding to the data bucket is changed to the time information calculated by the time information calculator.

상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 공간정보를 포함하는 데이터 검색장치는, 소정의 좌표공간 상에서 복수의 데이터 객체 각각의 위치를 나타내는 위치정보와 상기 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷 및 상기 데이터 버킷의 주소정보를 포함하는 인덱스 트리의 각 노 드에 대응되어 생성된 인덱스 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신하는 데이터 수신부; 상기 데이터 스트림으로부터 추출한 인덱스 버킷에 포함된 상기 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 상기 데이터 버킷을 추출하되, 상기 인덱스 버킷이 상기 인덱스 트리의 비단말노드에 대응되는 경우에는 상기 인덱스 버킷에 포함된 상기 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보에 의하여 파악되는 수신시점에 상기 자식노드에 대응되는 인덱스 버킷을 추출하는 버킷 추출부; 및 상기 데이터 버킷으로부터 상기 데이터 객체의 위치정보 및 비공간정보를 추출하는 데이터 추출부;를 포함하며, 상기 인덱스 트리의 단말노드에 대응되어 생성된 인덱스 버킷은 상기 좌표공간 상에서 서로 인접하는 데이터 객체들의 위치정보, 상기 인접하는 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 상기 인접하는 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어지며, 상기 인덱스 트리의 비단말노드에 대응되어 생성된 인덱스 버킷은 상기 좌표공간 상에서 하위계층에 존재하는 단말노드에 포함된 데이터 객체들을 포함하도록 설정된 최소경계사각형의 위치정보 및 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함하는 비단말노드정보로 이루어진다.In order to achieve the above technical problem, a data retrieval apparatus including spatial information according to the present invention includes position information indicating positions of a plurality of data objects in a predetermined coordinate space and non-space indicating characteristics of the data objects. A data receiver configured to receive a data stream including a data bucket including information and an index bucket generated corresponding to each node of the index tree including address information of the data bucket, from a transmission channel; The data bucket is extracted at a reception point determined by address information of the data bucket included in the index bucket extracted from the data stream, and if the index bucket corresponds to a non-terminal node of the index tree, the data bucket is extracted to the index bucket. A bucket extracting unit for extracting an index bucket corresponding to the child node at a reception point identified by address information of an index bucket corresponding to a child node of the non-terminal node; And a data extracting unit extracting positional information and non-spatial information of the data object from the data bucket, wherein the index buckets generated corresponding to the terminal nodes of the index tree are adjacent to each other in the coordinate space. And terminal node information including location information, a data code encoding non-spatial information of the adjacent data objects, and address information of data buckets corresponding to the adjacent data objects, and the terminal node information including non-terminal nodes of the index tree. The corresponding index bucket is calculated by a logical sum of the location information of the minimum bounding rectangle configured to include the data objects included in the terminal node existing in the lower layer in the coordinate space and the data codes included in the child node located below. Consisting of non-terminal node information including the node code All.

상기의 또 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 공간정보를 포함하는 데이터 검색방법은, 소정의 좌표공간 상에서 복수의 데이터 객체 각각의 위치를 나타내는 위치정보와 상기 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷 및 상기 데이터 버킷의 주소정보를 포함하는 인덱스 트리의 각 노드에 대응되어 생성된 인덱스 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신하는 데이터 수신단계; 상기 데이터 스트림으로부터 추출한 인덱스 버킷에 포함된 상기 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 상기 데이터 버킷을 추출하되, 상기 인덱스 버킷이 상기 인덱스 트리의 비단말노드에 대응되는 경우에는 상기 인덱스 버킷에 포함된 상기 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보에 의하여 파악되는 수신시점에 상기 자식노드에 대응되는 인덱스 버킷을 추출하는 버킷 추출단계; 및 상기 데이터 버킷으로부터 상기 데이터 객체의 위치정보 및 비공간정보를 추출하는 데이터 추출단계;를 포함하며, 상기 인덱스 트리의 단말노드에 대응되어 생성된 인덱스 버킷은 상기 좌표공간 상에서 서로 인접하는 데이터 객체들의 위치정보, 상기 인접하는 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 상기 인접하는 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어지며, 상기 인덱스 트리의 비단말노드에 대응되어 생성된 인덱스 버킷은 상기 좌표공간 상에서 하위계층에 존재하는 단말노드에 포함된 데이터 객체들을 포함하도록 설정된 최소경계사각형의 위치정보 및 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함하는 비단말노드정보로 이루어진다.According to another aspect of the present invention, there is provided a data retrieval method including spatial information, comprising: location information indicating positions of a plurality of data objects in a predetermined coordinate space and a ratio indicating characteristics of the data objects. A data receiving step of receiving a data stream including a data bucket including spatial information and an index bucket generated corresponding to each node of the index tree including address information of the data bucket from a transmission channel; The data bucket is extracted at a reception point determined by address information of the data bucket included in the index bucket extracted from the data stream, and if the index bucket corresponds to a non-terminal node of the index tree, the data bucket is extracted to the index bucket. A bucket extraction step of extracting an index bucket corresponding to the child node at a reception point identified by address information of an index bucket corresponding to a child node of the non-terminal node; And a data extraction step of extracting location information and non-spatial information of the data object from the data bucket, wherein the index buckets generated corresponding to the terminal nodes of the index tree are adjacent to each other in the coordinate space. And terminal node information including location information, a data code encoding non-spatial information of the adjacent data objects, and address information of data buckets corresponding to the adjacent data objects, and the terminal node information including non-terminal nodes of the index tree. The corresponding index bucket is calculated by a logical sum of the location information of the minimum bounding rectangle configured to include the data objects included in the terminal node existing in the lower layer in the coordinate space and the data codes included in the child node located below. It consists of non-terminal node information including node code. Lose.

본 발명에 따른 공간정보를 포함하는 데이터 생성장치 및 방법에 의하면, 부호화되어 무선 브로드캐스팅 채널을 통하여 이동단말로 전송될 데이터를 생성하는 과정에서 데이터 객체의 위치정보 및 비공간정보를 포함하는 데이터 버킷 및 데이 터 버킷의 주소정보를 포함하는 인덱스 트리 및 인덱스 버킷을 생성함으로써, 이동단말측에서 모든 데이터를 다운로드하지 않아도 원하는 검색어를 포함하는 문서를 빠르게 검색하도록 할 수 있다. 또한 부호화될 데이터 내에 인덱스 버킷을 복제하여 여러 번 삽입함으로써, 다음 단위데이터의 수신 시점까지 대기하지 않고 인덱스 버킷을 빠르게 다운로드할 수 있다. 또한 본 발명에 따른 공간정보를 포함하는 데이터 검색장치 및 방법에 의하면, 데이터 스트림으로부터 일반화된 공간질의에 해당하는 목표데이터를 검색할 때 인덱스 버킷 및 데이터 버킷을 데이터 객체의 위치정보 및 비공간정보에 기초하여 선택적으로 추출함으로써, 이동단말이 활동모드로 동작하는 시간을 줄이고, 이동단말의 에너지 소비량을 감소시킬 수 있다.According to an apparatus and method for generating data including spatial information according to the present invention, a data bucket including location information and non-spatial information of a data object in a process of generating data to be encoded and transmitted to a mobile terminal through a wireless broadcasting channel. And by creating an index tree and the index bucket including the address information of the data bucket, it is possible to quickly search for documents containing the desired search words without downloading all the data from the mobile terminal. In addition, by copying and inserting the index bucket several times in the data to be encoded, the index bucket can be downloaded quickly without waiting until the next unit data reception time. In addition, according to the data retrieval apparatus and method including the spatial information according to the present invention, when retrieving the target data corresponding to the generalized spatial query from the data stream, the index bucket and the data bucket to the position information and non-spatial information of the data object By selectively extracting on the basis of this, it is possible to reduce the time for the mobile terminal to operate in the active mode and to reduce the energy consumption of the mobile terminal.

이하에서 첨부된 도면들을 참조하여 본 발명에 따른 공간정보를 포함하는 데이터 생성장치 및 방법, 그리고 데이터 검색장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of a data generating apparatus and method, and a data retrieval apparatus and method including spatial information according to the present invention.

도 1은 본 발명에 따른 공간정보를 포함하는 데이터 생성장치에 대한 바람직한 일 실시예의 구성을 도시한 블록도이다.1 is a block diagram showing the configuration of a preferred embodiment of a data generating device including spatial information according to the present invention.

도 1을 참조하면, 본 발명에 따른 데이터 생성장치는, 데이터 버킷 생성부(110), 인덱스 트리 생성부(120), 인덱스 버킷 생성부(130), 다중화부(140) 및 시간정보 산출부(150)를 구비한다.Referring to FIG. 1, the data generating apparatus according to the present invention includes a data bucket generator 110, an index tree generator 120, an index bucket generator 130, a multiplexer 140, and a time information calculator ( 150).

데이터 버킷 생성부(110)는 복수의 데이터 객체 각각에 대응하여 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷을 생성한다. 또한 데이 터 버킷 생성부(110)에 의해 생성되는 데이터 버킷은 소정의 좌표공간 상에서 데이터 객체의 위치를 나타내는 위치정보를 더 포함할 수 있다.The data bucket generation unit 110 generates a data bucket including non-spatial information representing characteristics of the data object corresponding to each of the plurality of data objects. In addition, the data bucket generated by the data bucket generator 110 may further include location information indicating the location of the data object in a predetermined coordinate space.

사용자 단말에서 공간질의에 의해 목표데이터를 검색할 수 있도록 하기 위해 데이터를 제공하는 서버에서는 검색대상인 데이터 객체들의 위치정보를 제공하여야 한다. 또한 목표데이터를 검색할 때 비공간적인 속성값에 대한 제한사항이 특정되는 일반화된 공간질의에 대응하는 목표데이터를 검색할 수 있도록 하기 위해서는 데이터 객체들의 비공간정보를 함께 제공할 필요가 있다. 따라서 데이터 버킷 생성부(110)는 데이터 객체의 공간정보와 비공간정보를 함께 나타낼 수 있는 데이터 버킷을 생성한다.In order to enable the user terminal to search the target data by spatial query, the server providing the data should provide the location information of the data objects to be searched. In addition, it is necessary to provide non-spatial information of data objects in order to search the target data corresponding to the generalized spatial query in which limitations on non-spatial attribute values are specified when searching the target data. Therefore, the data bucket generator 110 generates a data bucket that can represent both spatial information and non-spatial information of the data object.

데이터 버킷은 (d.P, d.A)의 형식으로 표현된다. 여기서 d.P는 좌표공간에서 데이터 객체의 위치정보를 나타내는 것으로, 보통 (d.x, d.y)와 같이 2차원 좌표형식, 또는 3차원 좌표형식으로 나타낼 수 있다. 또한 d.A는 데이터 객체의 특성을 나타내는 비공간정보를 나타내는 것으로, d.ai(1≤i≤m)로 표현되는 일군의 비공간정보로 표현된다.The data bucket is represented in the form of (dP, dA). Here, dP represents location information of a data object in a coordinate space, and can be expressed in a two-dimensional coordinate format or a three-dimensional coordinate format such as (dx, dy). In addition, dA represents non-spatial information indicating the characteristics of the data object and is represented by a group of non-spatial information expressed by da i (1 ≦ i ≦ m).

다음으로 인덱스 트리 생성부(120)는 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 인접하는 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어진 단말노드와, 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함하는 비단말노드정보로 이루어진 비단말노드를 계층적으로 배치하여 인덱스 트리를 생성한다.Next, the index tree generation unit 120 includes a terminal node including terminal node information including data codes encoding non-spatial information of data objects and address information of data buckets corresponding to adjacent data objects, and a lower node. A non-terminal node composed of non-terminal node information including a node code calculated by a logical sum of data codes included in a child node is hierarchically arranged to generate an index tree.

또한 인덱스 트리의 단말노드를 구성하는 단말노드정보는 좌표공간 상에서 서로 인접하는 데이터 객체들의 위치정보를 더 포함할 수 있으며, 인덱스 트리의 비단말노드를 구성하는 비단말노드정보는 좌표공간 상에서 하위계층에 존재하는 단말노드에 포함된 데이터 객체들을 포함하도록 설정된 최소경계사각형의 위치정보를 더 포함할 수 있다. 여기서 최소경계사각형의 위치정보는 좌표공간에서 최소경계사각형의 대각선상에 위치하는 두 꼭지점의 좌표로 표현될 수 있다.The terminal node information constituting the terminal node of the index tree may further include location information of data objects adjacent to each other in the coordinate space, and the non-terminal node information constituting the non-terminal node of the index tree is a lower layer in the coordinate space. It may further include location information of the minimum bounding rectangle set to include data objects included in the terminal node existing in the. Here, the position information of the minimum boundary rectangle may be expressed as coordinates of two vertices positioned on the diagonal of the minimum boundary rectangle in the coordinate space.

앞에서 설명한 바와 같이 사용자가 목표데이터를 검색할 수 있도록 서버가 데이터 객체를 무선 브로드캐스팅 채널을 통해 전송할 때 데이터의 검색을 용이하게 하기 위해 인덱스 구조를 사용할 수 있다. 또한 데이터 객체의 공간정보를 포함하는 인덱스 구조로 가장 널리 사용되는 것이 R-트리 구조이다. 이하에서는 우선 데이터 객체의 비공간정보를 제외한 공간정보만을 이용하여 R-트리 인덱스 구조를 생성하는 과정을 설명한다.As described above, an index structure may be used to facilitate retrieval of data when the server transmits a data object through a wireless broadcasting channel so that a user can retrieve the target data. In addition, the R-tree structure is most widely used as an index structure including spatial information of a data object. Hereinafter, a process of generating an R-tree index structure using only spatial information excluding non-spatial information of a data object will be described.

도 2는 2차원 공간에 위치하는 복수의 데이터 객체의 위치정보를 나타낸 그래프이고, 도 3은 도 2의 그래프에 나타난 데이터 객체로부터 생성된 R-트리 구조를 도시한 도면이다.FIG. 2 is a graph showing position information of a plurality of data objects located in a two-dimensional space, and FIG. 3 is a diagram illustrating an R-tree structure generated from the data objects shown in the graph of FIG.

도 2를 참조하면, r1 내지 r8은 각각 2차원 좌표를 가지는 데이터 객체이며, 이들의 위치정보를 기초로 하여 최소경계사각형 N1 내지 N6가 생성된다. 또한 각각의 최소경계사각형은 도 3에 도시된 R-트리의 각 노드에 해당한다. R-트리의 각 노드에 포함되는 엔트리의 개수는 사용자의 설정에 따라 달라진다. 이하에서는 R-트 리의 각 노드가 2개의 엔트리를 가진다고 가정한다.Referring to FIG. 2, r 1 to r 8 are data objects each having two-dimensional coordinates, and minimum boundary squares N 1 to N 6 are generated based on their location information. In addition, each minimum boundary rectangle corresponds to each node of the R-tree shown in FIG. 3. The number of entries included in each node of the R-tree depends on the user's setting. In the following, it is assumed that each node of the R-tree has two entries.

먼저 R-트리의 단말노드(leaf node)를 생성하기 위해 r1 내지 r8의 공간데이터 중에서 서로 가장 가까운 거리에 위치하는 2개씩의 공간데이터가 하나의 최소경계사각형에 속하게 된다. 즉, 도 2에 도시된 바와 같이 r1과 r2가 하나의 최소경계사각형 N3를 형성하여 N3의 위치정보가 R-트리의 단말노드 N3를 이루는 단말노드정보에 포함되고, r3와 r4가 또 하나의 최소경계사각형 N4를 형성하여 N4의 위치정보가 R-트리의 단말노드 N4를 이루는 단말노드정보에 포함된다. 동일한 방법에 의해 R-트리의 단말노드 N5와 N6를 이루는 단말노드정보가 각각 생성된다.First, two spatial data located at the closest distance among the spatial data of r 1 to r 8 belong to one minimum boundary rectangle to generate a leaf node of the R-tree. That is, is included in r 1 and r 2 is the terminal node information forming one minimum bounding rectangle N 3 to the position information of N 3 constituting the terminal node N 3 of the R- tree, as illustrated in 2, r 3 and r 4 is formed in another one of the minimum bounding rectangle is included in the leaf node N 4 and the information is position information of N 4 constituting the leaf node N 4 of R- tree. Terminal node information constituting the terminal nodes N 5 and N 6 of the R-tree is generated by the same method.

다음으로 4개의 단말노드에 의해 R-트리에서 2개의 비단말노드를 생성하기 위해 도 2의 그래프에 나타난 4개의 최소경계사각형을 2개씩 결합하여 2개의 최소경계사각형을 형성한다. 즉, N3와 N4에 해당하는 최소경계사각형이 하나의 최소경계사각형 N1을 형성하여 N1의 위치정보가 R-트리의 비단말노드 N1을 이루는 비단말노드정보에 포함되고, N5와 N6에 해당하는 최소경계사각형이 다른 하나의 최소경계사각형 N2를 형성하여 N2의 위치정보가 R-트리의 다른 비단말노드 N2를 이루는 비단말노드정보에 포함된다. 마지막으로 R-트리의 루트노드는 2개의 엔트리를 가질 수 있으므로 최종적으로 형성된 최소경계사각형 N1과 N2의 위치정보가 R-트리의 루트노드를 이루는 비단말노드정보에 포함된다.Next, to form two non-terminal nodes in the R-tree by four terminal nodes, four minimum boundary squares shown in the graph of FIG. 2 are combined two to form two minimum boundary squares. That is, the minimum bounding rectangle corresponding to N 3 and N 4 are included in a non-single end node information to form a minimum bounding rectangle N 1 position information of N 1 constituting the non-single end node N 1 of the R- tree, N the minimum bounding rectangle for the 5 and N 6 forming the other of the minimum bounding rectangle of the N 2 to be included in the non-single end node, the information is position information of N 2 forming the other non-single end node N 2 of the R- tree. Finally, since the root node of the R-tree may have two entries, the position information of the minimum boundary rectangles N 1 and N 2 finally formed is included in the non-terminal node information forming the root node of the R-tree.

인덱스 트리 생성부(120)는 위에서 설명한 R-트리 구조를 기초로 데이터 객체의 비공간정보를 함께 포함할 수 있는 인덱스 트리를 생성한다. 본 발명에서는 이와 같이 위치정보와 비공간정보를 모두 포함하는 수정된 R-트리 구조를 BSR-트리(Bucket-based Signature R-트리)로 정의한다. BSR-트리 구조를 가지는 인덱스 트리의 각 노드는 앞에서 설명한 방법에 의해 생성된 R-트리의 각 노드가 포함하고 있는 정보에 부가적으로 데이터 객체의 비공간정보를 포함한다.The index tree generation unit 120 generates an index tree that may include non-spatial information of the data object based on the R-tree structure described above. In the present invention, the modified R-tree structure including both the location information and the non-spatial information is defined as a BSR-tree (Bucket-based Signature R-tree). Each node of the index tree having the BSR-tree structure includes non-spatial information of the data object in addition to the information contained in each node of the R-tree generated by the method described above.

먼저 인덱스 트리의 단말노드는 좌표공간 상에서 서로 인접하는 데이터 객체의 위치정보, 인접하는 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 인접하는 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어진다. 이때 데이터 객체의 위치정보는 데이터 버킷을 표현하는 (d.P, d.A)의 형식에서 d.P에 해당한다. 즉, 좌표공간에서의 데이터 객체의 좌표를 나타낸다. 또한 데이터 버킷의 주소정보는 무선 브로드캐스팅 채널을 통해 전송되는 데이터 스트림에서의 위치를 나타내며, 시간정보 산출부(150)에 의해 브로드캐스팅 채널을 통한 전송시점으로 변환된다.First, a terminal node of an index tree includes terminal information of location information of adjacent data objects in a coordinate space, a data code encoding non-spatial information of adjacent data objects, and address information of data buckets corresponding to adjacent data objects. It consists of node information. At this time, the location information of the data object corresponds to d.P in the form of (d.P, d.A) representing a data bucket. In other words, it represents the coordinates of the data object in the coordinate space. In addition, the address information of the data bucket indicates a position in the data stream transmitted through the wireless broadcasting channel, and is converted by the time information calculator 150 to a transmission point through the broadcasting channel.

데이터부호는 d.A를 일정한 기준에 따라 부호화하여 표현한 것이다. 앞의 예에서 언급된 레스토랑의 종류 또는 평균 가격대와 같은 객체의 비공간정보는 간단한 좌표로 나타낼 수 있는 위치정보와 달리 보통 문자로 나타내어지므로 이를 구별하기 쉽도록 나타내는 방법이 필요하다. 데이터부호를 생성하는 방법의 일 예로서, 해시함수(hash function)를 이용하여 생성하는 방법이 있다. 즉, 해시함수를 이용 하면 데이터 객체에 대해 d.a1 내지 d.am의 m개의 비공간정보가 존재할 때, 비공간정보 d.A를 부호화한 데이터부호는 h1(d.a1)+h2(d.a2)+…+hm(d.am)과 같이 표현된다. 이를 구체적인 예를 통해 상세히 설명한다.The data code is obtained by encoding dA according to a predetermined criterion. Non-spatial information of an object such as the type of restaurant or the average price point mentioned in the previous example is usually represented by a character, unlike location information that can be represented by simple coordinates, so a method of displaying the object is needed. As an example of a method of generating a data code, there is a method of generating using a hash function. That is, using the hash function, when m non-spatial information of da 1 to da m exists for a data object, the data code encoding non-spatial information dA is h 1 (da 1 ) + h 2 (da 2 ) + … + h m (da m ) This will be described in detail through specific examples.

도 4는 좌표공간에서 위치정보를 가지는 데이터 객체의 비공간정보를 나타낸 도면이다. 도 4를 참조하면, r1 내지 r8의 데이터 객체들은 각각 위치정보를 가지는 레스토랑을 나타내며, 각각의 데이터 객체에 부가적으로 포함되는 비공간정보는 d.a1 내지 d.a3로 모두 세 개이다. d.a1은 각 레스토랑의 고유 식별번호, d.a2는 레스토랑의 종류, 그리고 d.a3는 평균 가격대를 나타낸다. 이들 각각의 비공간정보를 기초로 데이터부호를 생성할 때 적용되는 해시함수는 다음과 같다.4 is a diagram illustrating non-spatial information of a data object having location information in a coordinate space. Referring to FIG. 4, the data objects of r 1 to r 8 each represent a restaurant having location information, and three non-spatial information included in each data object are da 1 to da 3 . da 1 is a unique identification number for each restaurant, da 2 is the type of restaurant, and da 3 is the average price range. The hash function applied when generating a data code based on each of these non-spatial information is as follows.

Figure 112008089385117-pat00001
Figure 112008089385117-pat00001

Figure 112008089385117-pat00002
Figure 112008089385117-pat00002

Figure 112008089385117-pat00003
Figure 112008089385117-pat00003

위 해시함수를 기초로 도 4에 도시된 데이터 객체 중에서 r3의 비공간정보에 해시함수를 적용하면, 먼저 r3의 식별번호가 3이므로 h1은 01, r3는 프렌치 레스토랑이므로 h2는 01, 마지막으로 r3의 평균 가격대는 35달러이므로 h3는 100이다. 따라서 r3의 비공간정보에 대해 생성된 데이터부호는 '01+01+100=0101100'이 된다. 동일한 방법으로 r8의 비공간정보에 대해 데이터부호를 생성하면 h1은 11, h2는 01, h3는100이므로 '1101100'이 된다.Among the data objects showing the above hash function in Figure 4 on the basis of applying a hash function to the non-spatial information of the r 3, because it is the first identification of r 3 No. 3 h 1 is 01, r 3 is so French restaurant h 2 is 01, Finally, the average price of r 3 is $ 35, so h 3 is 100. Therefore, the data code generated for the non-spatial information of r 3 becomes '01 + 01 + 100 = 0101100 '. In the same way, if a data code is generated for the non-spatial information of r 8 , since h1 is 11, h2 is 01, and h3 is 100, it becomes '1101100'.

인덱스 트리의 비단말노드는 데이터 버킷에 관한 정보 대신 하위에 위치하는 자식노드의 정보를 기초로 생성되기 때문에 좌표공간 상에서 하위계층에 존재하는 단말노드에 포함된 데이터 객체들을 포함하도록 설정된 최소경계사각형의 위치정보 및 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함하는 비단말노드정보로 이루어진다.The non-terminal node of the index tree is generated based on the information of the child node located below instead of the information about the data bucket. Therefore, the non-terminal node of the index tree is configured to include data objects included in the terminal node existing in the lower layer in the coordinate space. Non-terminal node information including a node code calculated by the logical sum of the location information and the data codes included in the child nodes located below.

최소경계사각형은 앞에서 설명한 바와 같이 좌표공간에서 복수의 데이터 객체를 포함하는 영역을 말하며, 인덱스 트리의 각 노드에 대응된다. 최소경계사각형을 생성하는 방법은 도 2 및 도 3을 참조하여 R-트리의 생성방법에서 설명한 것과 동일하므로 상세한 설명을 생략한다. 다만, 최소경계사각형은 기존의 R-트리에서와 같이 데이터 객체들의 좌표를 기준으로 생성되지 않고, 데이터 객체들의 비공간정보를 기초로 생성될 수도 있다. 이러한 경우, 인덱스 트리의 단말노드에 포함되는 데이터 객체들에 관한 정보의 구성이 달라질 수 있다.As described above, the minimum bounding rectangle refers to an area including a plurality of data objects in a coordinate space and corresponds to each node of the index tree. Since the method of generating the minimum bounding rectangle is the same as that described in the method of generating the R-tree with reference to FIGS. 2 and 3, a detailed description thereof will be omitted. However, the minimum boundary rectangle may not be generated based on the coordinates of the data objects as in the existing R-tree, but may be generated based on the non-spatial information of the data objects. In this case, the configuration of the information about the data objects included in the terminal node of the index tree may vary.

또한 노드부호는 해당 비단말노드의 하위에 위치하는 자식노드에 포함된 데이터 객체들의 모든 비공간정보를 통합하여 나타내는 부호이다. 예를 들면, 자식노드에 포함된 데이터부호가 각각 '0101100' 및 '1101100'이면 이들의 논리합으로 산출되는 노드부호는 '1101100'이 된다. 도 5에는 도 4에 나타난 데이터 객체의 비공간정보를 기초로 데이터 객체 r1 내지 r8에 대해 생성된 데이터부호 및 데이터 객체를 포함하는 최소경계사각형 N1 내지 N6에 대해 생성된 노드부호가 나타나 있다.In addition, the node code is a code integrating all the non-spatial information of the data objects included in the child node located below the non-terminal node. For example, if the data codes included in the child nodes are '0101100' and '1101100', respectively, the node code calculated by the logical sum of them is '1101100'. FIG. 5 illustrates node codes generated for the minimum boundary rectangles N 1 to N 6 including data codes and data objects generated for the data objects r1 to r8 based on the non-spatial information of the data object shown in FIG. 4. .

이와 같이 단말노드 및 비단말노드에 포함되는 정보를 기초로 인덱스 트리를 생성하는 알고리즘이 도 6에 나타나 있다. 도 6을 참조하면, 먼저 인덱스 트리를 구성하는 각 노드의 팬아웃 f를 설정하여야 한다. f는 전체 데이터 객체의 개수인 |D|보다 훨씬 작은 값으로 설정되어야 하며 다음의 수학식 1에 의해 설정될 수 있다.As described above, an algorithm for generating an index tree based on the information included in the terminal node and the non-terminal node is shown in FIG. 6. Referring to FIG. 6, first, fanout f of each node constituting the index tree should be set. f should be set to a value much smaller than | D | which is the total number of data objects, and may be set by Equation 1 below.

Figure 112008089385117-pat00004
Figure 112008089385117-pat00004

여기서, 'bucket capacity'는 데이터 버킷 및 인덱스 버킷의 데이터 용량을 말하는 것으로, 모든 버킷의 용량은 동일하게 설정된다. 'size of header information'은 버킷의 헤더의 데이터 용량을 말하는 것으로, 버킷의 헤더에는 해당 버킷이 데이터 버킷인지 인덱스 버킷인지 여부를 나타내는 정보, 버킷의 데이터 용량 등이 포함되어 있다. 그리고 'size of an entry'는 인덱스 트리의 하나의 노드에 포함되는 엔트리 하나의 데이터 용량을 말한다.Here, 'bucket capacity' refers to the data capacity of the data bucket and the index bucket, the capacity of all buckets is set equal. 'size of header information' refers to the data capacity of the header of the bucket, and the header of the bucket includes information indicating whether the bucket is a data bucket or an index bucket, the data capacity of the bucket, and the like. 'Size of an entry' refers to the data capacity of one entry included in one node of the index tree.

BSR-트리 구조의 인덱스 트리는 R-트리의 경우와 동일하게 단말노드로부터 시작해서 루트노드를 향해 순차적으로 형성된다. 인덱스 트리 생성부(120)는 먼저 데이터 버킷 생성부(110)에 의해 생성된 데이터 버킷들의 리스트(dlist)를 생성하고(1~5행), 팬아웃 f를 계산한 다음(6행) 인덱스 트리의 각 노드를 생성하는 PACK 함수를 실행시킨다(7행).The index tree of the BSR-tree structure is formed sequentially from the terminal node to the root node in the same manner as in the case of the R-tree. The index tree generator 120 first generates a list (dlist) of data buckets generated by the data bucket generator 110 (rows 1 to 5), calculates a fanout f (row 6), and then index tree Run the PACK function that creates each node of the line (line 7).

PACK 함수가 실행되면 먼저 전체 데이터 버킷들은

Figure 112008089385117-pat00005
개의 그룹으로 분류되는데, 이는 인덱스 트리의 단말노드의 개수와 동일하다(PACK의 1~2행). 또한 동일한 그룹에 속하는 데이터 버킷들은 인덱스 트리의 동일한 단말노드에 속하게 된다(PACK의 3~10행). 다음으로 인덱스 트리 생성부(120)는 단말노드정보, 즉 좌표공간에서의 최소경계사각형에 대한 위치정보들의 리스트(ilist)를 생성하고 다시 PACK 함수를 실행시켜(PACK의 19행) 단말노드의 상위에 위치하는 비단말노드들이 생성되도록 한다(PACK의 11~15행). 이러한 과정은 최종적으로 루트노드가 생성될 때까지 반복된다(PACK의 20~24행). 또한 각각의 노드에 포함될 수 있는 엔트리의 개수는 팬아웃 f보다 적게 설정되는 것이 바람직하다. 이러한 알고리즘을 사용한 일 예로, f를 2로 설정하고 각 노드의 엔트리 역시 두 개가 되도록 하였을 때 생성 된 인덱스 트리의 형태는 도 3에 도시된 R-트리의 구조와 동일하고, 다만 각 노드에 데이터 객체의 비공간정보인 데이터부호 또는 노드부호가 더 포함된다는 점이 상이하다.When the PACK function is executed, first the entire data bucket
Figure 112008089385117-pat00005
It is classified into three groups, which is equal to the number of terminal nodes in the index tree (rows 1 and 2 of PACK). In addition, data buckets belonging to the same group belong to the same terminal node of the index tree (rows 3 to 10 of PACK). Next, the index tree generation unit 120 generates an ilist of terminal node information, that is, location information of the minimum boundary rectangle in the coordinate space, and executes the PACK function again (row 19 of the PACK) to the upper level of the terminal node. Causes non-terminal nodes to be created (lines 11-15 of the PACK). This process is repeated until the root node is finally created (lines 20-24 of the PACK). It is also desirable that the number of entries that can be included in each node is set less than the fanout f. As an example of using this algorithm, when f is set to 2 and each node has two entries, the shape of the index tree generated is the same as that of the R-tree shown in FIG. The difference is that the non-spatial information of the data code or node code is further included.

인덱스 버킷 생성부(130)는 인덱스 트리의 단말노드 각각에 대해 각각의 단말노드에 대응하는 단말노드정보로 이루어진 인덱스 버킷을 생성하고, 인덱스 트리의 비단말노드 각각에 대해 각각의 비단말노드의 비단말노드정보와 각각의 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보로 이루어진 인덱스 버킷을 생성한다.The index bucket generation unit 130 generates an index bucket including terminal node information corresponding to each terminal node for each terminal node of the index tree, and each non-terminal node for each non-terminal node of the index tree. An index bucket is created that includes end node information and address information of an index bucket corresponding to a child node of each non-terminal node.

인덱스 버킷은 인덱스 트리의 각 노드에 포함된 단말노드정보 또는 비단말노드정보가 무선 브로드캐스팅 채널을 통해 전송되는 데이터 스트림에 포함되도록 하기 위해 생성된다. 인덱스 트리를 생성할 때에는 단말노드를 가장 먼저 생성하고 상위노드로 이동하여 최종적으로 루트노드를 생성하였다. 그러나 생성된 인덱스 버킷의 전송 순서는 인덱스 트리의 각 노드의 생성 순서와 반대가 되어 루트노드에서 시작하여 너비우선탐색(breath-first search) 방식에 의해 각 노드로부터 생성된 인덱스 버킷이 전송된다. 따라서 이동단말이 전송 채널에 접속하여 데이터를 검색할 때 루트노드에 해당하는 인덱스 버킷으로부터 순차적으로 검색을 수행하게 된다. 이를 위해 인덱스 트리의 비단말노드로부터 생성되는 인덱스 버킷은 비단말노드정보 외에 각 비단말노드의 하위에 위치하는 자식노드에 대응되는 인덱스 버킷의 주소정보를 더 포함하고 있어야 한다. 이렇게 함으로써 인덱스 트리의 모든 노드를 순차적으로 검색하지 않고 목표데이터를 포함하는 노드로 직접 이동할 수 있게 되 어 데이터의 검색시간이 감소된다. 데이터 버킷의 주소정보와 마찬가지로 인덱스 버킷의 주소정보 역시 시간정보 산출부(150)에 의해 무선 브로드캐스팅 채널을 통한 전송시점으로 변환된다.The index bucket is created so that terminal node information or non-terminal node information included in each node of the index tree is included in the data stream transmitted through the wireless broadcasting channel. When generating the index tree, the terminal node is created first, and then the root node is finally generated by moving to the upper node. However, the transmission order of the created index buckets is reversed to the order of creation of each node of the index tree, and the index buckets generated from each node by the breadth-first search method are transmitted starting from the root node. Therefore, when the mobile station accesses the transport channel and retrieves data, the mobile station sequentially searches from the index bucket corresponding to the root node. To this end, the index bucket generated from the non-terminal node of the index tree should further include address information of the index bucket corresponding to the child node located below each non-terminal node in addition to the non-terminal node information. By doing so, it is possible to move directly to the node containing the target data without sequentially searching all nodes of the index tree, thereby reducing the search time of the data. Similar to the address information of the data bucket, the address information of the index bucket is also converted by the time information calculator 150 to a transmission point through the wireless broadcasting channel.

다중화부(140)는 인덱스 버킷 및 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성한다.The multiplexer 140 sequentially generates an index bucket and a data bucket to generate data to be encoded.

위에 설명된 바와 같은 방법으로 생성된 데이터 버킷 및 인덱스 버킷은 일정한 순서에 의해 정렬되어 부호화된 후 데이터 스트림을 형성하여 무선 브로드캐스팅 채널로 보내지게 된다. 이때 데이터 스트림을 수신하는 사용자 단말측에서는 먼저 인덱스 버킷을 추출하여 공간질의에 대응하는 목표데이터를 포함하는 데이터 버킷의 주소정보를 알아내고, 다음으로 해당 데이터 버킷을 추출하여 그로부터 목표데이터를 획득하게 된다. 따라서 부호화되어 전송될 데이터를 본 발명에 따른 데이터 생성장치에서 생성할 때에도 사용자 단말측에서의 검색 과정을 고려하여 인덱스 버킷 및 데이터 버킷 순으로 정렬된 데이터를 생성하는 것이 바람직하다.The data buckets and index buckets created in the manner as described above are sorted and encoded in a certain order and then form a data stream to be sent to the wireless broadcasting channel. At this time, the user terminal receiving the data stream first extracts the index bucket to find out the address information of the data bucket including the target data corresponding to the spatial query, and then extracts the corresponding data bucket to obtain the target data therefrom. Therefore, when generating the data to be encoded and transmitted in the data generating apparatus according to the present invention, it is preferable to generate the data arranged in the order of the index bucket and the data bucket in consideration of the searching process on the user terminal side.

도 7에는 도 4에 나타난 데이터 객체들의 정보를 기초로 한 데이터 버킷 및 인덱스 버킷을 이용하여 다중화부(140)에 의해 생성된 부호화될 데이터가 도시되어 있다. 도 7에서, 'Root'는 인덱스 트리 생성부(120)에 의해 생성된 인덱스 트리의 루트노드에 대응되는 인덱스 버킷, N1 내지 N6는 각각 인덱스 트리의 루트노드를 제외한 단말노드 및 비단말노드에 대응되는 인덱스 버킷, 그리고 r1 내지 r8은 각각 도 4에 나타난 데이터 객체들로부터 생성된 데이터 버킷을 나타낸다. 인덱스 버킷 의 정렬 기준은 인덱스 트리의 각 노드를 특정한 순회 방식, 예를 들면 너비우선탐색 방법에 의해 순회하여 각 노드로부터 생성된 인덱스 버킷이 순차적으로 정렬되도록 할 수 있다. 또한 데이터 버킷의 경우에는 임의의 정렬 기준, 예를 들면, 각 데이터 버킷에 해당하는 데이터 객체에 부여된 식별번호에 따라 순차적으로 정렬되도록 할 수 있다. 이와 같이 모든 인덱스 버킷 및 데이터 버킷이 다중화부(140)에 의해 순차적으로 정렬되어 생성된 하나의 부호화될 데이터를 단위데이터라 한다. 무선 브로드캐스팅 채널을 통해 전송되는 데이터 스트림 상에는 이러한 단위데이터가 부호화되어 반복적으로 나타나게 된다.FIG. 7 illustrates data to be encoded generated by the multiplexer 140 using the data bucket and the index bucket based on the information of the data objects shown in FIG. 4. In FIG. 7, 'Root' is an index bucket corresponding to the root node of the index tree generated by the index tree generator 120, and N 1 to N 6 are terminal nodes and non-terminal nodes except for the root node of the index tree, respectively. Index buckets corresponding to and r 1 to r 8 represent data buckets generated from the data objects shown in FIG. 4, respectively. The sorting criteria of the index buckets may be configured to traverse each node of the index tree by a specific traversal method, for example, a breadth-first search method, so that the index buckets generated from each node may be sequentially sorted. In addition, in the case of the data bucket, it can be arranged in accordance with any sorting criteria, for example, according to the identification number assigned to the data object corresponding to each data bucket. As described above, one data to be encoded is generated by sequentially arranging all index buckets and data buckets by the multiplexer 140 as unit data. This unit data is encoded and repeatedly displayed on a data stream transmitted through a wireless broadcasting channel.

앞에서 설명한 바와 같이 다중화부(140)에 의해 생성되고 부호화되어 무선 브로드캐스팅 채널을 통해 전송되는 데이터를 사용자 단말측에서 수신하여 공간질의에 해당하는 목표데이터를 검색하기 위해서는 가장 먼저 인덱스 버킷을 추출하여야 한다. 그런데 하나의 단위데이터에 인덱스 버킷이 한 번씩만 포함되어 있는 경우에 인덱스 버킷을 추출하기 위해 대기하여야 하는 최장시간은 인덱스 버킷의 일부와 데이터 버킷이 전송되는 데 걸리는 시간이 된다. 다라서 이러한 대기시간을 감소시킨 효율적인 데이터 생성 및 검색 시스템의 필요성이 제기되었다.As described above, in order to receive data generated and encoded by the multiplexer 140 and transmitted through a wireless broadcasting channel at the user terminal and to search for target data corresponding to a spatial query, an index bucket must first be extracted. . However, when the index bucket is included only once in one unit data, the longest time to wait to extract the index bucket is a part of the index bucket and the time taken to transfer the data bucket. Thus, there is a need for an efficient data generation and retrieval system that reduces such latency.

인덱스 버킷의 추출을 위한 대기시간을 감소시키기 위한 한 가지 방안은 단위데이터 내에 인덱스 버킷을 여러 번 삽입하는 것이다. 이와 같은 방법에 의해 생성된 단위데이터가 도 7에 도시된 단위데이터의 형태이다. 도 7을 참조하면, 하나의 단위데이터에 인덱스 버킷이 두 번 삽입되어 있는 것을 확인할 수 있다. 구체적인 과정을 살펴보면, 먼저 데이터 버킷 생성부(110)는 사전에 설정된 인덱스 복제 횟수로 데이터 버킷을 분할하여 복수의 부분 데이터 버킷을 생성하고, 인덱스 버킷 생성부(130)는 인덱스 복제횟수에 따라 인덱스 버킷을 복제한다. 마지막으로 다중화부(140)는 인덱스 버킷 및 부분 데이터 버킷을 순차적으로 반복 배치하여 부호화될 데이터를 생성한다. 도 7을 참조하여 예를 들면, 인덱스 복제횟수가 2일 때, 전체 데이터 버킷은 r1 내지 r4와 r5 내지 r8의 두 그룹으로 나누어진다. 다음으로 Root 내지 N6의 전체 인덱스 버킷이 복제되어 그와 동일한 Root' 내지 N6'의 인덱스 버킷이 생성된다. 다중화부(140)는 우선 Root 내지 N6의 인덱스 버킷을 순차적으로 배치하고 그 뒤에 r1 내지 r4에 해당하는 데이터 버킷을 배치한다. 다음으로 다시 Root' 내지 N6'의 인덱스 버킷을 순차적으로 배치하고 그 뒤에 r5 내지 r8에 해당하는 데이터 버킷을 배치한다. 이렇게 함으로써 이동단말이 데이터를 검색할 때 단위데이터의 중간 부분으로부터 인덱스 버킷을 추출할 수 있게 되어 대기시간을 감소시킬 수 있다. 다만, 인덱스 복제횟수가 지나치게 많아지면 이동단말의 접속시간이 증가하게 되므로 최적의 복제횟수를 결정하는 것이 중요하다.One way to reduce the latency for extracting the index bucket is to insert the index bucket multiple times in the unit data. The unit data generated by this method is in the form of unit data shown in FIG. Referring to FIG. 7, it can be seen that an index bucket is inserted twice in one unit data. Looking at the specific process, first, the data bucket generator 110 generates a plurality of partial data buckets by dividing the data buckets by a preset index replication number, and the index bucket generator 130 generates an index bucket according to the number of index replications. Duplicate Finally, the multiplexer 140 sequentially and repeatedly arranges the index bucket and the partial data bucket to generate data to be encoded. Referring to FIG. 7, for example, when the index replication count is 2, the entire data bucket is divided into two groups, r1 to r4 and r5 to r8. Next, the entire index buckets of Root to N 6 are replicated to create the same index buckets of Root 'to N 6 '. The multiplexer 140 first sequentially arranges the index buckets of Root to N 6 , and then arranges the data buckets corresponding to r1 to r4. Next, index buckets of Root 'through N 6 ' are sequentially arranged, followed by data buckets corresponding to r5 through r8. By doing so, the mobile terminal can extract the index bucket from the middle portion of the unit data when retrieving the data, thereby reducing the waiting time. However, if the number of index replications is too large, the access time of the mobile terminal increases, so it is important to determine the optimal number of replications.

시간정보 산출부(150)는 데이터 버킷 및 인덱스 버킷의 데이터량 및 다중화부(140)에 의해 생성되는 부호화될 데이터의 전송 속도를 기초로 데이터 버킷 및 인덱스 버킷의 주소정보를 시간정보로 변환한다.The time information calculator 150 converts address information of the data bucket and the index bucket into time information based on the data amount of the data bucket and the index bucket and the transmission speed of the data to be encoded generated by the multiplexer 140.

인덱스 버킷 생성부(130)에 의해 생성되는 인덱스 버킷 중에서 인덱스 트리의 단말노드에 대응되는 인덱스 버킷은 데이터 버킷의 주소정보를, 인덱스 트리의 비단말노드에 대응되는 인덱스 버킷은 자식노드에 대응되는 인덱스 버킷의 주소정 보를 포함하고 있다. 이러한 주소정보는 각 버킷들의 데이터량을 기초로 한 위치정보에 해당한다. 인덱스 버킷에 포함된 주소정보를 위치정보의 상태 그대로 유지하여 다중화부(140)에 의해 단위데이터를 구성하고 이를 부호화하여 전송할 경우 이동단말이 데이터를 검색할 때 버킷들에 포함된 주소정보를 직접 시간정보로 변환하여 각 버킷의 수신 시점을 알아내야 하므로, 기존에 사용되는 이동단말과 본 발명에 따른 데이터 생성장치 간에 호환이 어렵다는 문제가 있다. 따라서 데이터를 전송하는 서버 측에서 주소정보를 미리 시간정보로 변환하여 전송하게 되면 이동단말에서는 전송되는 버킷에 포함된 시간정보만 추출하여 그에 따라 원하는 목표데이터를 다운로드할 수 있으므로 효율적이다.Among the index buckets generated by the index bucket generating unit 130, an index bucket corresponding to a terminal node of the index tree corresponds to address information of a data bucket, and an index bucket corresponding to a non-terminal node of the index tree corresponds to a child node. It contains the bucket's address information. This address information corresponds to location information based on the data amount of each bucket. If the address information included in the index bucket is composed of unit data by the multiplexing unit 140 by maintaining the state of the location information as it is, and encoded and transmitted, the mobile terminal directly searches the address information included in the buckets when searching for data. Since it is necessary to find the reception time of each bucket by converting the information, there is a problem that compatibility between the mobile terminal and the data generating apparatus according to the present invention is difficult to use. Therefore, when the server transmitting the data converts the address information into time information in advance, the mobile terminal can efficiently extract only the time information included in the transmitted bucket and download desired target data accordingly.

시간정보 산출부(150)는 먼저 데이터 버킷 생성부(110) 및 인덱스 버킷 생성부(130)로부터 각각 데이터 버킷 및 인덱스 버킷의 데이터량을 입력받는다. 다음으로 인덱스 복제횟수에 관한 정보가 잇어야 전체 단위데이터의 데이터량 및 각 버킷의 위치를 파악할 수 있으므로 다중화부(140)로부터 부호화될 데이터를 구성하기 위한 인덱스 복제횟수를 입력받는다. 또한 무선 브로드캐스팅 채널을 통하여 전송되는 데이터 스트림은 미리 정해진 일정한 전송속도로 전송되므로 이들 정보를 이용하여 주소정보를 시간정보로 변환할 수 있다.The time information calculator 150 first receives data amounts of the data bucket and the index bucket from the data bucket generator 110 and the index bucket generator 130, respectively. Next, since information on the number of times of index replication must be present, the amount of data of the entire unit data and the location of each bucket can be grasped so that the multiplexer 140 receives the number of indexes for configuring data to be encoded. In addition, since the data stream transmitted through the wireless broadcasting channel is transmitted at a predetermined constant transmission rate, address information may be converted into time information using these information.

시간정보 산출부(150)에 의해 각 버킷의 시간정보가 산출되면, 데이터 버킷 생성부(110) 및 인덱스 버킷 생성부(130)는 산출된 시간정보를 다시 입력받아 버킷에 포함된 주소정보를 시간정보로 변경한다. 따라서 앞에서 설명하였던 데이터 버킷 및 인덱스 버킷의 주소정보는 모두 시간정보로 변경되어 출력되며, 다중화 부(140)에 의해 생성되는 부호화될 데이터에 위치하는 버킷들은 모두 시간정보를 포함하게 된다.When the time information of each bucket is calculated by the time information calculator 150, the data bucket generator 110 and the index bucket generator 130 input the calculated time information again to time the address information included in the bucket. Change to information. Therefore, the address information of the data bucket and the index bucket described above are all changed to time information and output. The buckets located in the data to be encoded generated by the multiplexing unit 140 include time information.

이와 같이 부호화될 데이터가 각 버킷의 시간정보를 포함하게 되므로 이동단말은 목표데이터가 언제 수신되는지 알 수 있게 된다. 따라서 목표데이터의 수신시점에만 이동단말의 상태를 활동모드로 전환하여 데이터를 다운로드하면 된다. 이에 따라 이동단말이 활동모드로 동작하는 시간이 감소하여 무선 브로드캐스팅 채널에 접속하는 시간을 줄일 수 있고, 데이터 검색에 필요한 에너지 소비도 감소시킬 수 있다.Since the data to be encoded includes time information of each bucket, the mobile terminal can know when the target data is received. Therefore, it is only necessary to download the data by switching the state of the mobile terminal to the active mode only when the target data is received. Accordingly, the time for operating the mobile terminal in the active mode is reduced, thereby reducing the time for accessing the wireless broadcasting channel and reducing the energy consumption required for data retrieval.

도 8은 본 발명에 따른 데이터 생성방법에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도이다.8 is a flowchart illustrating a process of performing a preferred embodiment of the data generation method according to the present invention.

도 8을 참조하면, 데이터 버킷 생성부(110)는 복수의 데이터 객체 각각에 대응하여 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷을 생성한다(S810). 이때 데이터 버킷에는 소정의 좌표공간 상에서 데이터 객체의 위치를 나타내는 위치정보가 더 포함될 수 있다. 다음으로 인덱스 트리 생성부(120)는 인접하는 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 인접하는 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어진 단말노드와, 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함함하는 비단말노드정보로 이루어진 비단말노드를 계층적으로 배치하여 인덱스 트리를 생성한다(S820). 또한 인덱스 트리의 단말노드를 구성하는 단말노드정보에는 좌표공간 상에서 서로 인접하는 데이터 객체들의 위치정보가 더 포함될 수 있으며, 인덱스 트리의 비단말노드를 구성하는 비단말노드정보에는 좌표공간 상에서 하위계층에 존재하는 단말노드에 포함된 데이터 객체들을 포함하도록 설정된 최소경계사각형의 위치정보가 더 포함될 수 있다. 인덱스 트리의 생성과정은 도 6에 나타난 알고리즘을 이용하여 앞에서 설명한 방법에 의해 수행된다.Referring to FIG. 8, the data bucket generator 110 generates a data bucket including non-spatial information representing characteristics of the data object in response to each of the plurality of data objects (S810). In this case, the data bucket may further include location information indicating the location of the data object in a predetermined coordinate space. Next, the index tree generation unit 120 includes a terminal node including terminal node information including data codes encoding non-spatial information of adjacent data objects and address information of data buckets corresponding to the adjacent data objects, and a lower node. An index tree is generated by hierarchically arranging non-terminal nodes including non-terminal node information including a node code calculated by a logical sum of data codes included in a child node located at (S820). In addition, the terminal node information constituting the terminal node of the index tree may further include location information of data objects adjacent to each other in the coordinate space, and the non-terminal node information constituting the non-terminal node of the index tree may be located in a lower layer in the coordinate space. The location information of the minimum boundary rectangle set to include the data objects included in the existing terminal node may be further included. The generation of the index tree is performed by the method described above using the algorithm shown in FIG.

인덱스 버킷 생성부(130)는 인덱스 트리의 단말노드 각각에 대해 각각의 단말노드에 대응하는 단말노드정보로 이루어진 인덱스 버킷을 생성하고, 인덱스 트리의 비단말노드 각각에 대해 비단말노드의 비단말노드정보와 각각의 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보로 이루어진 인덱스 버킷을 생성한다(S830).The index bucket generation unit 130 generates an index bucket including terminal node information corresponding to each terminal node for each terminal node of the index tree, and non-terminal node of the non-terminal node for each non-terminal node of the index tree. In operation S830, an index bucket including information and address information of an index bucket corresponding to a child node of each non-terminal node is generated.

다중화부(140)는 인덱스 버킷 및 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성한다(S840). 마지막으로 시간정보 산출부(150)는 데이터 버킷 및 인덱스 버킷의 데이터량 및 다중화부(140)에 생성되는 부호화될 데이터의 전송 속도를 기초로 데이터 버킷 및 인덱스 버킷의 주소정보를 시간정보로 변환한다(S850). 이에 따라 데이터 버킷 생성부(110) 및 인덱스 버킷 생성부(130)는 각각에 대응되는 데이터 버킷 및 인덱스 버킷의 주소정보를 시간정보 산출부(150)가 산출한 시간정보로 변경한다. 또한 본 발명에 따른 데이터 생성방법은 본 발명에 따른 데이터 생성장치에 의해 수행될 수 있다.The multiplexer 140 sequentially generates an index bucket and a data bucket to generate data to be encoded (S840). Finally, the time information calculator 150 converts the address information of the data bucket and the index bucket into time information based on the data amount of the data bucket and the index bucket and the transmission speed of the data to be encoded generated in the multiplexer 140. (S850). Accordingly, the data bucket generator 110 and the index bucket generator 130 change the address information of the data bucket and the index bucket corresponding to the time information calculated by the time information calculator 150. In addition, the data generating method according to the present invention may be performed by the data generating apparatus according to the present invention.

도 9는 본 발명에 따른 공간정보를 포함하는 데이터 검색장치 및 방법에 대한 바람직한 일 실시예의 구성을 도시한 블록도이고, 도 10은 본 발명에 따른 공간정보를 포함하는 데이터 검색장치 및 방법에 대한 바람직한 다른 실시예의 구성을 도시한 블록도이다.9 is a block diagram showing the configuration of a preferred embodiment of a data retrieval apparatus and method including spatial information according to the present invention, Figure 10 is a data retrieval apparatus and method including spatial information according to the present invention A block diagram showing the configuration of another preferred embodiment.

도 9를 참조하면, 본 발명에 따른 데이터 검색장치는, 데이터 수신부(910), 버킷 추출부(920) 및 데이터 추출부(930)를 구비한다. 또한 도 10을 참조하면, 본 발명에 따른 데이터 검색장치는 데이터 수신부(910), 버킷 추출부(920), 데이터 추출부(930) 외에 제어부(940) 및 데이터 버킷 저장부(950)를 더 구비한다.9, a data retrieval apparatus according to the present invention includes a data receiver 910, a bucket extractor 920, and a data extractor 930. 10, the data retrieval apparatus according to the present invention further includes a controller 940 and a data bucket storage unit 950 in addition to the data receiver 910, the bucket extractor 920, and the data extractor 930. do.

데이터 수신부(910)는 소정의 좌표공간 상에서 복수의 데이터 객체 각각의 위치를 나타내는 위치정보와 상기 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷 및 상기 데이터 버킷의 주소정보를 포함하는 인덱스 트리의 각 노드에 대응되어 생성된 인덱스 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신한다. 데이터 수신부(910)에 의해 수신되는 데이터 스트림은 본 발명에 따른 데이터 생성장치에 의해 생성되고 부호화되어 무선 브로드캐스팅 채널을 통하여 전송되는 데이터 스트림이 될 수 있다.The data receiving unit 910 includes a data bucket including position information indicating positions of a plurality of data objects in a predetermined coordinate space and non-spatial information indicating characteristics of the data object, and an index tree including address information of the data bucket. Receives a data stream from the transport channel, the data stream including the index bucket generated corresponding to each node of the. The data stream received by the data receiver 910 may be a data stream generated and encoded by the data generating apparatus according to the present invention and transmitted through a wireless broadcasting channel.

버킷 추출부(920)는 데이터 스트림으로부터 추출한 인덱스 버킷에 포함된 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 데이터 버킷을 추출하되, 인덱스 버킷이 인덱스 트리의 비단말노드에 대응되는 경우에는 인덱스 버킷에 포함된 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보에 의하여 파악되는 수신시점에 자식노드에 대응되는 인덱스 버킷을 추출한다.The bucket extractor 920 extracts the data bucket at a reception point identified by the address information of the data bucket included in the index bucket extracted from the data stream, but when the index bucket corresponds to a non-terminal node of the index tree, the index bucket The index bucket corresponding to the child node is extracted at the reception point identified by the address information of the index bucket corresponding to the child node of the non-terminal node included in the.

앞에서 설명한 바와 같이 위치정보를 포함하는 데이터 객체들에 대한 인덱스 구조로 주로 사용되는 것이 R-트리 구조이다. 따라서 이동단말에서 공간질의에 해당하는 목표데이터를 검색할 때에도 R-트리 구조의 인덱스로부터 데이터를 검색하 는 방법이 사용된다. 이하에서 비공간정보를 제외한 공간정보만을 포함하는 공간질의를 처리하기 위해 R-트리 구조의 인덱스를 이용하여 데이터를 검색하는 과정을 설명한다.As described above, an R-tree structure is mainly used as an index structure for data objects including location information. Therefore, when searching for the target data corresponding to the spatial query in the mobile terminal, a method of searching the data from the index of the R-tree structure is used. Hereinafter, a process of retrieving data using an index of an R-tree structure to process a spatial query including only spatial information excluding non-spatial information will be described.

도 11은 R-트리 구조의 인덱스를 이용하여 공간질의 중 범위질의에 해당하는 목표데이터를 검색하기 위한 도면이다. 도 11에 공간질의 범위 q.R이 표시되어 있고, 이동단말은 q.R에 포함되는 모든 공간데이터인 목표데이터를 획득하기 위해 R-트리의 루트노드로부터 차례로 검색한다. 즉, 루트노드의 엔트리 중에서 N1에 해당하는 최소경계사각형만 q.R과 겹치므로 다음의 검색을 위해 최소경계사각형 N1의 위치정보를 포함하는 노드 N1으로 이동한다. 마찬가지로 노드 N1의 엔트리 중에서는 N3와 N4에 해당하는 최소경계 사각형이 모두 q.R과 겹치므로 이동단말은 노드 N3와 N4에 차례로 이동하여 다음의 검색을 수행한다. 노드 N3와 N4는 단말노드이므로 노드의 엔트리는 데이터스트림에 속하는 공간데이터의 전송시점을 나타내는 포인터가 된다. 먼저 N3의 엔트리 중에서는 공간데이터 r2만 q.R에 속하고, 다음으로 N4의 엔트리 중에서는 공간데이터 r4만 q.R에 속한다. 따라서 범위질의에 해당하는 목표데이터는 r2와 r4가 되고, 이동단말은 R-트리로부터 획득한 r2와 r4의 전송시점을 기초로 데이터스트림으로부터 목표데이터 r2와 r4를 다운로드한다.11 is a diagram for searching for target data corresponding to a middle range query of a spatial query using an index of an R-tree structure. A range qR of spatial quality is indicated in FIG. 11, and the mobile terminal searches in turn from the root node of the R-tree to obtain target data, which is all spatial data included in qR. That is, since only the minimum boundary rectangle corresponding to N 1 of the root node's entry overlaps with qR, the node moves to node N 1 including the location information of minimum boundary rectangle N 1 for the next search. Similarly, since the minimum boundary rectangles corresponding to N 3 and N 4 overlap with qR among the entries of node N 1 , the mobile station moves to nodes N 3 and N 4 in order and performs the next search. Since nodes N 3 and N 4 are terminal nodes, an entry of a node becomes a pointer indicating a transmission time of spatial data belonging to a data stream. First, only spatial data r 2 belongs to qR among the entries of N 3 , and only spatial data r 4 belongs to qR among the entries of N 4 . Therefore, the target data corresponding to the range query becomes r 2 and r 4 , and the mobile terminal downloads the target data r 2 and r 4 from the data stream based on the transmission time of r 2 and r 4 obtained from the R-tree. .

다음으로 R-트리를 이용하여 최근접질의에 해당하는 목표데이터를 검색하는 방법에는 최우선 탐색 알고리즘(best-first algorithm)과 상황우선 탐색 알고리즘(appearance-first algorithm)의 두 가지가 있다. 도 12는 R-트리 구조의 인덱스를 이용하여 최근접질의에 해당하는 목표데이터를 검색하기 위한 도면이다. 도 12의 그래프에 나타난 mindist는 공간질의지점 q.P로부터 각각의 최소경계사각형까지의 최단거리를 나타낸 것이다. 최우선 탐색 알고리즘에서는 이와 같은 mindist를 이용하여 최근접질의에 해당하는 목표데이터를 검색한다. 예를 들면, 최근접질의에서 검색하고자 하는 목표데이터의 개수가 2인 경우, 우선 이동단말은 R-트리의 루트노드의 모든 엔트리를 우선순위 큐(queue)에 집어넣는다. 이때 각 엔트리에 해당하는 최소경계사각형과 q.P 사이의 mindist도 함께 우선순위 큐에 들어가게 된다. 다음으로 이동단말은 우선순위 큐에 저장된 루트노드의 엔트리 중에서 q.P로부터의 mindist가 최소인 노드를 우선순위 큐로부터 제거하고, 해당 노드로 이동한다. 즉, 도 12의 경우에는 N2에 해당하는 최소경계사각형까지의 거리가 최소이므로 최소경계사각형 N2의 위치정보를 포함하는 노드 N2로 이동하고, 다음으로 N2의 모든 엔트리를 우선순위 큐에 추가시킨다. 따라서 우선순위 큐에 현재 저장되어 있는 노드는 N1, N5 및 N6이다. 이 노드들에 해당하는 최소경계사각형 중에서 q.P로부터의 mindist가 최소인 노드는 N1이므로 이동단말은 우선순위 큐로부터 N1을 제거하고, 노드 N1으로 이동한다음 N1의 엔트리인 N3와 N4를 우선순위 큐에 추가시킨다. 그에 따라 우선순위 큐에 저장되어 있는 노드는 N3, N4, N5 및 N6가 된다. 이 중에서는 N4 에 해당하는 최소경계사각형이 q.P로부터의 mindist가 최소이므로 이동단말은 N4를 우선순위 큐로부터 제거하고 노드 N4로 이동하여 N4의 엔트리인 r3와 r4를 우선순위 큐에 추가시킨다. 그에 의해 우선순위 큐에 저장되어 있는 N3, r3, r4, N5 및 N6 중에서 q.P로부터의 mindist가 최소인 것은 r3이므로 2개의 목표데이터 중 하나인 r3를 획득할 수 있다. 하나의 목표데이터를 더 획득하기 위해 이동단말은 r3가 제외된 우선순위 큐의 구성요소 중에서 q.P로부터의 mindist가 최소인 N6로 이동한다. N6의 엔트리는 r7 및 r8이고, 이들 중에서 q.P로부터의 mindist가 최소인 것은 r7이므로 또 하나의 목표데이터인 r7을 획득할 수 있다.Next, there are two methods of retrieving the target data corresponding to the nearest neighbor query using the R-tree: a best-first algorithm and an appearance-first algorithm. 12 is a diagram for searching for target data corresponding to a nearest neighbor query using an index of an R-tree structure. The mindist shown in the graph of FIG. 12 represents the shortest distance from the spatial query point qP to each minimum boundary rectangle. The highest priority search algorithm uses the mindist to search for the target data corresponding to the nearest query. For example, when the number of target data to be searched in the most recent query is 2, first, the mobile terminal puts all entries of the root node of the R-tree into the priority queue. At this time, the mindist between the minimum bounding square and qP corresponding to each entry also enters the priority queue. Next, the mobile station removes the node whose mindist from qP is the smallest among the entry of the root node stored in the priority queue from the priority queue, and moves to the node. That is, in the case of FIG. 12, since the distance to the minimum boundary square corresponding to N 2 is the minimum, it moves to the node N 2 including the location information of the minimum boundary square N 2 , and next, all entries of N 2 are priority queues. Add to Thus, the nodes currently stored in the priority queue are N 1 , N 5 and N 6 . Node mindist is the minimum from the qP from the minimum bounding rectangle corresponding to the node N 1, so the mobile terminal must first remove the N 1 from the priority queue, and the node N 1 to yidonghan next entry of N 3 the N 1 N Add 4 to the priority queue. Accordingly, the nodes stored in the priority queue are N 3 , N 4 , N 5, and N 6 . Among them, because it is a minimum bounding rectangle for at least a mindist from qP corresponding to N 4 the mobile station N 4, first removed from the priority queue and moves to node N 4 first the entry of r 3 and r 4 of the N 4 Rank To the queue. Thereto that by priority stored in the priority queue, N 3, r 3, r 4 , N 5 and N 6 is in the mindist at least from qP may obtain r 3 of r 3 because one of the two target data. In order to acquire one more target data, the mobile station moves to N 6 , which has a minimum mindist from qP among the components of the priority queue excluding r3. The entries of N 6 are r 7 and r 8 , and among these, the minimum mindist from qP is r 7, so that another target data r 7 can be obtained.

이와 같은 최우선 탐색 알고리즘은 이동단말의 접근시간을 증가시킬 수 있다는 문제가 있다. 도 13은 최근접질의에 대한 최우선 탐색 알고리즘이 적용되는 데이터스트림을 도시한 도면이다. R-트리 구조의 인덱스는 채널을 통해 브로드캐스팅될 때 R-트리의 각 노드가 너비우선 탐색순위(breath-first order)에 의해 순차적으로 브로드캐스팅된다. 즉, 도 13에 도시된 바와 같이 도 12의 R-트리 구조의 인덱스가 브로드캐스팅되는 순서는 루트노드-N1-N2-N3-N4-N5-N6이다. 따라서 위에서 제시한 예에서 이동단말이 루트노드로부터 먼저 N2로 이동한 후 N1으로 이동하기 위해서는 다음 순서의 데이터 스트림이 브로드캐스팅될 때까지 브로드캐스팅 채널에 접속한 채로 대기하여야 한다. 이에 따라 접근시간이 증가되는 문제가 발생하는 것이 다. 이렇게 R-트리의 각 노드가 순차적으로 브로드캐스팅됨에 따라 발생할 수 있는 문제를 해결하기 위한 상황우선 탐색 알고리즘은 q.P로부터 각 최소경계사각형까지의 최단거리 뿐만 아니라 최장거리도 함께 고려하여 목표데이터를 검색하는 방법이다.This first priority search algorithm has a problem that can increase the access time of the mobile terminal. FIG. 13 is a diagram illustrating a data stream to which a highest priority search algorithm for a nearest neighbor is applied. The index of the R-tree structure is broadcasted sequentially by breadth-first order for each node of the R-tree when broadcast over the channel. That is, as shown in FIG. 13, the order in which the index of the R-tree structure of FIG. 12 is broadcast is root node-N 1 -N 2 -N 3 -N 4 -N 5 -N 6 . Therefore, while waiting to be after the mobile terminal in the present example, the movement from the root node to the first N 2 from above to move to the N 1 are connected to the broadcast channel until the data stream in the following order to be broadcast. This raises the problem of increased access time. The situation-first search algorithm to solve the problems that may occur as each node of the R-tree is broadcasted sequentially searches for the target data considering not only the shortest distance but also the longest distance from qP to each minimum boundary rectangle. It is a way.

위와 같은 방법들은 데이터 객체의 비공간정보를 배제하고 위치정보만을 기초로 한 데이터 검색방법을 나타낸 것이다. 본 발명에 따른 데이터 검색장치는 데이터 객체의 위치정보 뿐만 아니라 비공간정보도 함께 목표데이터의 검색에 활용할 수 있다. 우선 본 발명에 따른 데이터 검색장치에 의해 공간질의 중 일반화된 범위질의를 처리하는 방법에 관하여 설명한다.The above methods show a data retrieval method based only on location information without excluding non-spatial information of the data object. The data retrieval apparatus according to the present invention can utilize not only the positional information of the data object but also non-spatial information for the retrieval of the target data. First, a method of processing a generalized range query among spatial queries by the data retrieval apparatus according to the present invention will be described.

사용자로부터 입력받는 일반화된 범위질의는 (q.R, q.V)와 같은 형식으로 표현된다. q.R은 좌표공간에서 질의범위를 나타내며, q.V는 검색하고자 하는 목표데이터의 비공간정보를 나타낸다. (d.P, d.A)의 형식으로 표현되었던 데이터 객체의 비공간정보인 d.A에 대응하는 것으로, 검색조건인 비공간정보의 개수에 따라 q.v1 내지 q.vm(m은 비공간정보의 개수)으로 표현된다. 이러한 범위질의에 해당하는 목표데이터를 검색하기 위해 비공간정보를 포함하지 않는 기존의 R-트리 형식의 인덱스 트리(이하에서 BR-트리라 정의한다.)를 사용할 경우, 먼저 질의범위인 q.R을 기준으로 하여 데이터 스트림에 포함된 인덱스 버킷 및 데이터 버킷을 추출한 후 추출된 데이터 버킷 중에서 비공간정보가 q.V와 일치하는 데이터 버킷들을 선택하는 방법을 사용할 수 있다. 그러나 이러한 방법은 이동단말의 동조시간을 증가시킨다는 단점을 가진다.The generalized range query received from the user is expressed in the form (qR, qV). qR represents a query range in a coordinate space, and qV represents non-spatial information of target data to be searched. Corresponds to dA, which is non-spatial information of a data object expressed in the form of (dP, dA), and is represented by qv 1 to qv m (m is the number of non-spatial information) according to the number of non-spatial information that is a search condition. . When using the existing R-tree index tree (hereinafter, referred to as BR-tree) that does not include non-spatial information to search for target data corresponding to such a range query, it first refers to the query range qR. After extracting the index bucket and the data bucket included in the data stream, a method of selecting data buckets whose non-spatial information matches qV from the extracted data buckets may be used. However, this method has the disadvantage of increasing the synchronization time of the mobile terminal.

본 발명에 따른 데이터 생성장치의 인덱스 트리 생성부(120)에 의해 생성된 인덱스 트리, 즉 BSR-트리의 각 노드는 데이터 객체의 비공간정보를 포함하고 있으므로, 데이터 스트림으로부터 인덱스 버킷 및 데이터 버킷을 추출하는 과정에서 비공간정보를 함께 고려하는 것이 바람직하다.Since each node of the index tree, that is, the BSR-tree, generated by the index tree generating unit 120 of the data generating apparatus according to the present invention includes non-spatial information of a data object, an index bucket and a data bucket are extracted from the data stream. It is desirable to consider nonspatial information together during the extraction process.

본 발명에 따른 데이터 생성장치에서 데이터 객체의 비공간정보를 부호화하여 데이터부호를 생성하였던 것과 마찬가지로, 본 발명에 따른 데이터 검색장치는 비공간정보인 q.V가 부호화되어 생성된 질의부호를 사용자로부터 입력받을 수 있다. 질의부호는 해시함수를 이용하여 데이터부호의 생성방법과 동일한 방법에 의해 생성된다. 즉, 질의부호는 h1(q.v1)+h2(q.v2)+…hm(q.vm)과 같은 형식으로 생성된다. 앞에서 설명한 데이터부호의 생성방법에서와 동일한 예에 의하면, 질의부호가 '**01100'의 형식으로 표현되는 경우, '**'는 목표데이터의 검색조건에 데이터 객체의 식별번호는 포함되지 않는다는 것을 의미하며, '01'은 목표데이터가 데이터 객체 중에서 프렌치 레스토랑임을 의미한다. 또한 '100'은 평균 가격대가 30달러에서 40달러 사이인 데이터 객체가 목표데이터임을 의미한다. 이와 같이 질의부호가 데이터부호와 동일한 방법에 의해 생성되어야 각 자리에 해당하는 숫자를 일대일로 비교할수 있어 목표데이터의 검색이 용이하다.In the data generating apparatus according to the present invention, the non-spatial information of the data object is encoded to generate a data code. The data searching apparatus according to the present invention receives a query code generated by encoding qV, which is non-spatial information, from a user. Can be. The query code is generated by the same method as the data code generation method using the hash function. That is, the query code is h 1 (qv 1 ) + h 2 (qv 2 ) +. h m (qv m ) According to the same example as in the method of generating the data code described above, when the query code is expressed in the form of '** 01100', '**' means that the identification number of the data object is not included in the search condition of the target data. '01' means that the target data is a French restaurant among the data objects. '100' also means that the data object with an average price range of $ 30 to $ 40 is the target data. In this way, the query code must be generated by the same method as the data code so that the number corresponding to each digit can be compared one-to-one, so that the target data can be easily retrieved.

버킷 추출부(920)는 데이터 수신부(910)에 의해 수신된 데이터 스트림에 포함된 인덱스 버킷 및 데이터 버킷을 순차적으로 검토하고 추출한다. 데이터 스트림 에는 인덱스 버킷 및 데이터 버킷이 도 7에 도시된 바와 같이 순차적으로 배치되어 있으며, 버킷 추출부(920)는 루트노드에 대응되는 인덱스 버킷으로부터 목표데이터의 검색을 시작한다. 본 발명에 따른 데이터 검색장치가 무선 브로드캐스팅 채널에 접속한 시점에 전송되는 데이터가 인덱스 트리의 각 노드를 너비우선 방식으로 순회하여 생성되는 복수의 인덱스 버킷이 순차적으로 배치된 인덱스 버킷 스트림의 처음 부분에 해당하지 않는 경우에는 다음 인덱스 버킷 스트림의 수신 시점까지 대기한다. 즉, 버킷 추출부(920)는 언제나 인덱스 트리의 루트노드에 대응되는 인덱스 버킷을 가장 먼저 추출하게 된다. 루트노드에 대응되는 인덱스 버킷에는 최소경계사각형의 위치정보, 루트노드의 자식노드에 포함된 데이터부호의 논리합으로 산출되는 노드부호 및 자식노드에 대응되는 인덱스 버킷의 주소정보가 포함된다. 버킷 추출부(920)는 최소경계사각형의 위치정보 및 노드부호를 이용하여 다음 차례의 인덱스 버킷을 추출한다.The bucket extractor 920 sequentially reviews and extracts the index bucket and the data bucket included in the data stream received by the data receiver 910. The index bucket and the data bucket are sequentially arranged in the data stream as shown in FIG. 7, and the bucket extractor 920 starts searching for the target data from the index bucket corresponding to the root node. The first portion of an index bucket stream in which a plurality of index buckets are sequentially arranged, in which data transmitted when a data retrieval apparatus according to the present invention accesses a wireless broadcasting channel is traversed in a width-first manner to each node of an index tree. If not, wait until the next index bucket stream received. That is, the bucket extractor 920 always first extracts the index bucket corresponding to the root node of the index tree. The index bucket corresponding to the root node includes the location information of the minimum boundary rectangle, the node code calculated by the logical sum of the data codes included in the child node of the root node, and the address information of the index bucket corresponding to the child node. The bucket extractor 920 extracts the next index bucket using the location information of the minimum bounding rectangle and the node code.

먼저 버킷 추출부(920)는 질의범위 q.R과 인덱스 버킷에 포함된 최소경계사각형의 위치정보를 비교하여 최소경계사각형이 질의범위와 교차하면 해당 최소경계사각형에 대응하는 인덱스 트리의 노드로부터 생성된 인덱스 버킷을 추출 대상으로 본다. 그러나 여기에 부가적으로 비공간정보를 고려하여 질의부호와 노드부호의 비교 결과에 따라 인덱스 버킷의 추출 여부를 결정하게 된다. 질의부호와 노드부호의 비교에 있어서, 질의부호에서 1로 표시된 자리에 대응하는 노드부호가 동일하게 1로 설정되어 있으면 해당 노드부호에 대응하는 인덱스 버킷을 추출한다. 즉, 질의부호와 노드부호의 논리합이 노드부호와 일치하면 해당 노드부호에 대응하는 인덱 스 버킷이 추출되는 것이다. 예를 들면, 질의부호가 '**11011'이고 노드부호가 '0111111'이면 질의부호의 1에 대응하는 노드부호의 각 자리가 모두 1로 표시되어 질의부호와 노드부호의 논리합인 '0111111'이 노드부호와 일치하므로 질의부호와 노드부호는 부분적 매치(partially-matched condition)가 성립하여 해당 노드부호에 대응하는 인덱스 버킷을 추출한다. 그러나 노드부호가 '0111100'이면 제일 끝자리에서 질의부호는 1로 표시되어 있으나 노드부호는 0으로 표시되어 있으므로 해당 노드부호에 대응하는 인덱스 버킷은 추출되지 않는다.First, the bucket extractor 920 compares the query range qR and the location information of the minimum bounding rectangle included in the index bucket, and when the minimum bounding crosses the querying range, an index generated from the node of the index tree corresponding to the minimum bounding rectangle. View the bucket as an extraction target. However, in addition to the non-spatial information, it is determined whether to extract the index bucket according to the comparison result of the query code and the node code. In the comparison between the query code and the node code, if the node code corresponding to the position indicated by 1 in the query code is set to 1, the index bucket corresponding to the node code is extracted. That is, if the logical sum of the query code and the node code matches the node code, the index bucket corresponding to the node code is extracted. For example, if the query code is '** 11011' and the node code is '0111111', each position of the node code corresponding to 1 of the query code is displayed as 1, so that '0111111', which is the logical sum of the query code and the node code, is Since the node code matches the node code, the query code and the node code have a partially-matched condition to extract the index bucket corresponding to the node code. However, if the node code is '0111100', the query code is displayed as 1 but the node code is 0 at the end of the node code. Therefore, the index bucket corresponding to the node code is not extracted.

버킷 추출부(920)는 이와 같은 방법으로 질의범위와 최소경계사각형의 위치정보, 그리고 질의부호와 논리부호를 비교하여 인덱스버킷을 추출한 후, 추출된 인덱스 버킷이 인덱스 트리의 단말노드에 대응되는 인덱스 버킷인 경우에는 다음 순서로 데이터 버킷을 추출한다.In this way, the bucket extractor 920 extracts an index bucket by comparing the query range, the location information of the least bounded rectangle, the query code and the logical code, and then extracts the index bucket corresponding to the terminal node of the index tree. In the case of a bucket, the data bucket is extracted in the following order.

데이터 버킷을 추출할 때에는 질의범위와 데이터 객체의 좌표공간에서의 위치정보, 그리고 질의부호와 데이터부호를 비교하여 데이터 버킷의 추출 여부를 결정한다. 먼저 질의범위와 데이터 객체의 위치정보를 비교하여 데이터 객체의 위치정보, 즉 좌표공간에서의 데이터 객체의 좌표가 질의범위에 포함되면 해당 위치정보를 포함하는 데이터 버킷을 추출대상으로 한다. 그러나 여기에 부가적으로 질의부호와 데이터부호를 비교하여 양자가 일치하면 버킷 추출부(920)는 해당 데이터부호에 대응하는 데이터 버킷을 추출한다. 예를 들면, 질의부호가 '**11011'이고 데이터부호가 '0111011'이면 *이 무정의조건(don't care)이므로 양자는 정확하게 일치하게 된다. 따라서 버킷 추출부(920)는 해당 데이터부호에 대응하는 데이터 버킷 을 추출한다. 그러나 질의부호가 '**11011'이고 데이터부호가 '0111111'이면 양자가 일치하지 않으므로 비록 데이터 객체의 위치정보가 질의범위에 포함된다 하여도 버킷 추출부(920)는 해당 데이터부호에 대응하는 데이터 버킷을 추출하지 않는다.When extracting the data bucket, it is determined whether to extract the data bucket by comparing the query range, the location information in the coordinate space of the data object, and the query code and the data code. First, when the query range is compared with the location information of the data object, when the location information of the data object, that is, the coordinates of the data object in the coordinate space is included in the query range, a data bucket including the location information is extracted. However, if the query code and the data code are additionally compared and the two match, the bucket extractor 920 extracts the data bucket corresponding to the data code. For example, if the query code is '** 11011' and the data code is '0111011', since * is a don't care, the two are exactly the same. Therefore, the bucket extractor 920 extracts a data bucket corresponding to the corresponding data code. However, if the query code is '** 11011' and the data code is '0111111', the two do not match. However, even if the location information of the data object is included in the query range, the bucket extractor 920 stores the data corresponding to the data code. Do not extract the bucket.

또한 버킷 추출부(920)는 인덱스 버킷 및 데이터 버킷을 추출하기 위해 버킷의 추출 결과를 저장하는 검색리스트(search_list) 및 결과리스트(result_list)를 사용할 수 있다. 도 14는 검색리스트 및 결과리스트를 사용하여 일반화된 범위질의를 처리하는 알고리즘을 나타낸 도면이다. 도 14를 참조하면, 먼저 이동단말이 무선 브로드캐스팅 채널에 접속하고, 버킷 추출부(920)는 데이터 수신부(910)가 수신한 데이터 스트림으로부터 루트노드에 대응되는 인덱스 버킷을 추출하여 루트노드의 엔트리를 검색리스트에 추가한다(2행). 즉, 루트노드에 대응되는 인덱스 버킷에 포함된 최소경계사각형의 위치정보가 검색리스트에 추가된다. 다음으로 버킷 추출부(920)는 데이터 스트림을 통해 전송되는 인덱스 버킷을 순차적으로 검토하여 해당 인덱스 버킷을 추출하고 인덱스 버킷에 포함된 정보를 검색리스트에 추가시킬 것인지를 결정한다. 또한 검색리스트에 있던 정보는 버킷 추출부(920)가 해당 인덱스 버킷을 검토하게 되면 삭제되며, 버킷 추출 과정은 검색리스트에 있던 정보가 모두 삭제될 때까지 반복된다.In addition, the bucket extractor 920 may use a search list (search_list) and a result list (result_list) that store the extraction result of the bucket to extract the index bucket and the data bucket. 14 is a diagram illustrating an algorithm for processing a generalized range query using a search list and a result list. Referring to FIG. 14, first, a mobile terminal accesses a wireless broadcasting channel, and a bucket extractor 920 extracts an index bucket corresponding to a root node from a data stream received by the data receiver 910 to enter an entry of a root node. To the search list (line 2). That is, the location information of the minimum bounding rectangle included in the index bucket corresponding to the root node is added to the search list. Next, the bucket extractor 920 sequentially examines the index buckets transmitted through the data stream, and extracts the corresponding index buckets and determines whether to add information included in the index buckets to the search list. In addition, the information in the search list is deleted when the bucket extraction unit 920 examines the corresponding index bucket, and the bucket extraction process is repeated until all the information in the search list is deleted.

검토 대상인 인덱스 버킷이 인덱스 트리의 비단말노드로부터 생성된 인덱스 버킷인 경우에는 버킷 추출부(920)는 현재 검토중인 인덱스 버킷에 포함된 최소경계사각형의 위치정보가 질의범위와 교차하고 노드부호와 질의부호의 논리합이 노드부호와 일치하면 해당 노드부호에 대응하는 인덱스 버킷을 추출하고, 그에 관한 정 보를 검색리스트에 추가한다(11~16행). 또한 검토 대상인 인덱스 버킷이 인덱스 트리의 단말노드로부터 생성된 인덱스 버킷인 경우에는 버킷 추출부(920)는 검토중인 인덱스 버킷에 포함된 데이터 객체의 위치정보가 질의범위에 포함되고 데이터부호가 질의부호와 일치하면 해당 데이터부호에 대응하는 데이터 버킷을 추출하고, 그에 관한 정보를 결과리스트에 추가한다(17~22행). If the index bucket to be examined is an index bucket created from a non-terminal node of the index tree, the bucket extractor 920 determines that the location information of the minimum boundary rectangle included in the index bucket under review intersects the query range, and the node code and query If the logical sum of the codes coincides with the node code, the index bucket corresponding to the node code is extracted and the information about it is added to the search list (lines 11-16). In addition, when the index bucket to be reviewed is an index bucket created from a terminal node of the index tree, the bucket extractor 920 includes location information of a data object included in the index bucket under review in the query range, and the data code corresponds to the query code. If there is a match, the data bucket corresponding to the data code is extracted and the information is added to the result list (lines 17-22).

마지막으로 데이터 추출부(930)는 추출된 데이터 버킷으로부터 데이터 객체를 추출한다. 도 14에 나타난 알고리즘을 사용하는 경우에는 결과리스트에 저장된 데이터 버킷으로부터 데이터 객체를 추출한다. 즉, 데이터 버킷에 포함된 데이터 객체의 좌표평면에서의 위치정보 및 부가적인 비공간정보를 추출하는 것이다. 이렇게 추출된 데이터 객체는 이동단말에서 검색하고자 하는 일반화된 범위질의에 해당하는 목표데이터이다.Finally, the data extractor 930 extracts a data object from the extracted data bucket. In the case of using the algorithm shown in FIG. 14, a data object is extracted from a data bucket stored in a result list. That is, location information and additional non-spatial information on the coordinate plane of the data object included in the data bucket are extracted. The extracted data object is the target data corresponding to the generalized range query to be searched in the mobile terminal.

이하에서 도 5에 나타난 데이터 객체들 및 도 7에 도시된 데이터 스트림에 의하여 위 과정을 구체적으로 설명한다. 도 5에 나타난 데이터 객체들을 기초로 생성된 인덱스 트리는 도 3에 도시된 것과 동일한 형태를 가진다. 질의범위가 도 11에 나타난 q.R과 동일하게 설정되고, 질의부호가 '**11011'이라 가정한다. 먼저 버킷 추출부(920)는 인덱스 트리의 루트노드에 대응되는 인덱스 버킷을 추출하고, 추출된 인덱스 버킷에 포함된 최소경계사각형, 즉 N1과 N2의 정보를 검색리스트에 추가한다. 다음으로 버킷 추출부(920)는 N1과 N2를 차례로 검토하여 그에 대응하는 인덱스 버킷을 추출할 것이지 여부를 결정하게 된다. N1에 해당하는 최소경계사각형은 질의범위와 교차하며, N1의 노드부호인 '0111111'와 질의부호의 논리합은 노드부호와 일치한다. 따라서 버킷 추출부(920)는 N1에 대응되는 인덱스 버킷을 추출하고, N1의 엔트리인 N3와 N4의 정보를 검색리스트에 추가한다. N2의 경우는 최소경계사각형이 질의범위와 교차하지 않으므로 N2에 대응하는 인덱스 버킷을 추출하지 않는다. 이제 검색리스트에는 N3와 N4가 저장되어 있다. N3에 해당하는 최소경계사각형은 질의범위와 교차하지만, N3의 노드부호인 '0010010'과 질의부호의 논리합은 노드부호와 일치하지 않는다. 따라서 버킷 추출부(920)는 N3에 대응되는 인덱스 버킷을 추출하지 않는다. N4의 경우, 최소경계사각형이 질의범위와 교차하며, 그 노드부호인 '0111111'과 질의부호의 논리합이 노드부호와 일치한다. 따라서 버킷 추출부(920)는 N4에 해당하는 인덱스 버킷을 추출하고, 그 엔트리인 데이터 객체 r3와 r4에 대응되는 데이터 버킷을 검토한다. r3와 r4 중에서 r3에 해당하는 위치정보가 질의범위에 포함되며, r3의 데이터부호인 '0111011'이 질의부호와 일치하므로, 버킷 추출부(920)는 r3에 대응하는 데이터 버킷을 추출하고, 그에 관한 정보를 결과리스트에 추가한다. 최종적으로 데이터 추출부(930)는 결과리스트에 저장된 데이터 버킷으로부터 데이터 객체를 추출한다.Hereinafter, the above process will be described in detail with reference to the data objects shown in FIG. 5 and the data stream shown in FIG. 7. The index tree generated based on the data objects shown in FIG. 5 has the same form as that shown in FIG. 3. It is assumed that the query range is set equal to qR shown in FIG. 11 and that the query code is '** 11011'. First, the bucket extractor 920 extracts an index bucket corresponding to the root node of the index tree, and adds information of the minimum boundary rectangles, ie, N 1 and N 2 , included in the extracted index bucket to the search list. Next, the bucket extractor 920 examines N 1 and N 2 in order to determine whether to extract the index bucket corresponding thereto. The minimum bounding rectangle corresponding to N 1 intersects the query range, and the logical sum of '0111111', which is the node code of N 1 , and the query code, coincide with the node code. Thus bucket extraction unit 920 extracts a bucket index corresponding to N 1, and adds an entry of information of N 3 and N 4 N 1 of the search list. In the case of N 2 , since the minimum bounding rectangle does not intersect the query range, the index bucket corresponding to N 2 is not extracted. The search list now contains N 3 and N 4 . The minimum bounding rectangle for the N 3 is a cross-range and quality, but logical node code is "0010010" and the quality of the code N 3 is inconsistent with the code node. Therefore, the bucket extractor 920 does not extract the index bucket corresponding to N 3 . In case of N 4 , the minimum bounding rectangle intersects the query range, and the logical sum of the node code '0111111' and the query code coincides with the node code. Accordingly, the bucket extractor 920 extracts the index bucket corresponding to N 4 and examines the data buckets corresponding to the data objects r 3 and r 4 , which are the entries. Since the location information corresponding to r 3 among r 3 and r 4 is included in the query range, '0111011', which is the data code of r 3 , matches the query code, so that the bucket extractor 920 stores the data bucket corresponding to r 3 . Extract and add information about it to the result list. Finally, the data extractor 930 extracts the data object from the data bucket stored in the result list.

일반화된 공간질의의 또 다른 형식으로 최근접질의에 해당하는 목표데이터를 검색하기 위해서는 일반화된 범위질의와는 다른 방법이 사용된다. 이를 위해 본 발명에 따른 데이터 검색장치는 제어부(940) 및 데이터 버킷 저장부(950)를 더 구비한다. 또한 최근접질의는 (q.P, q.V)의 형식으로 표현되는데, q.P는 질의지점을, q.V는 목표데이터의 비공간정보에 대한 조건을 나타낸다.In another form of generalized spatial query, a method different from generalized range query is used to retrieve the target data corresponding to the most recent query. To this end, the data retrieval apparatus according to the present invention further includes a control unit 940 and a data bucket storage unit 950. In addition, the most recent query is expressed in the form of (q.P, q.V), where q.P represents a query point and q.V represents a condition for nonspatial information of the target data.

데이터 버킷 저장부(950)에는 사용자로부터 입력받은 질의개수와 동일한 개수의 데이터 버킷의 주소정보가 좌표공간에서 각각의 데이터 버킷에 포함되는 데이터 객체와 사용자로부터 입력받은 질의지점사이의 거리에 대응되어 저장된다. 또한 제어부(940)는 좌표공간에서 데이터 객체와 질의지점 사이의 거리가 데이터 버킷 저장부(950)에 저장된 데이터 객체와 질의지점 사이의 거리 중 최대값보다 작고 데이터부호와 사용자로부터 입력받은 질의부호가 일치하면 데이터부호에 대응하는 데이터 버킷의 주소정보를 데이터 버킷 저장부(950)에 저장한다.The data bucket storage unit 950 stores address information of the same number of data buckets as the number of queries input from the user in correspondence with the distance between the data object included in each data bucket in the coordinate space and the query points input from the user. do. In addition, the controller 940 determines that the distance between the data object and the query point in the coordinate space is smaller than the maximum value between the data object and the query point stored in the data bucket storage unit 950, and the query code received from the user If it matches, the address information of the data bucket corresponding to the data code is stored in the data bucket storage unit 950.

본 발명에 따른 데이터 검색장치에 의해 일반화된 최근접질의에 해당하는 목표데이터를 검색하는 과정에 있어서도 일반화된 범위질의에 해당하는 목표데이터의 검색에서와 동일하게 데이터 수신부(910)는 데이터 버킷 및 인덱스 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신한다.In the process of searching for the target data corresponding to the generalized recent query by the data searching apparatus according to the present invention, the data receiving unit 910 is the data bucket and the index as in the search for the target data corresponding to the generalized range query. Receive a data stream containing a bucket from a transport channel.

버킷 추출부(920) 역시 데이터 스트림으로부터 추출한 인덱스 버킷에 포함된 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 데이터 버킷을 추출한다. 다만, 본 발명에 따른 데이터 검색장치가 최근접질의의 처리에 사용되는 경우에는 데이터 버킷 저장부(950)가 더 구비되어 버킷 추출부(920)는 데이터 버킷을 추출할 때 데이터 버킷 저장부(950)에 저장된 데이터 버킷의 주소정보에 의해 추출하게 된 다. 이를 이하에서 상세하게 설명한다.The bucket extractor 920 also extracts the data bucket at the reception point identified by the address information of the data bucket included in the index bucket extracted from the data stream. However, when the data retrieval apparatus according to the present invention is used for the processing of the closest query, the data bucket storage unit 950 is further provided so that the bucket extraction unit 920 extracts the data buckets. ) Is extracted by the address information of the data bucket stored in). This will be described in detail below.

데이터 수신부(910)에 의해 수신되는 데이터 스트림에는 본 발명에 따른 데이터 생성장치에 의해 생성된 인덱스 버킷 및 데이터 버킷이 순차적으로 배치되어 있다. 버킷 추출부(920)는 일반화된 범위질의의 경우와 동일하게 인덱스 트리의 루트노드에 대응되는 인덱스 버킷을 가장 먼저 추출하고, 뒤에 전송되는 인덱스 버킷들을 순차적으로 검토한다. 이때 본 발명에 따른 데이터 검색장치가 무선 브로드캐스팅에 접속한 시점에 전송되는 데이터가 인덱스 트리의 각 노드를 너비우선 방식으로 순회하여 생성되는 복수의 인덱스 버킷이 순차적으로 배치된 인덱스 버킷 스트림의 처음 부분에 해당하지 않는 경우에는 다음 인덱스 버킷 스트림의 수신 시점까지 대기한다.In the data stream received by the data receiving unit 910, the index bucket and the data bucket generated by the data generating apparatus according to the present invention are sequentially arranged. The bucket extractor 920 first extracts the index bucket corresponding to the root node of the index tree as in the case of the generalized range query, and sequentially examines the index buckets transmitted later. At this time, the first portion of the index bucket stream in which a plurality of index buckets sequentially generated when data transmitted when the data retrieval apparatus according to the present invention accesses wireless broadcasting is traversed in a width-first manner in each node of the index tree. If not, wait until the next index bucket stream received.

버킷 추출부(920)에서 인덱스 버킷을 추출할 때에는 일반화된 범위질의의 경우에서와 달리 위치정보를 고려하지 않는다. 따라서 노드부호와 질의부호의 논리합이 노드부호와 일치하는 경우에는 노드부호에 대응하는 인덱스 버킷을 추출한다. 노드부호와 질의부호를 비교하는 방식은 일반화된 범위질의의 경우와 동일하다. 인덱스 트리의 단말노드에 대응되는 인덱스 버킷까지 추출된 후에는 데이터 버킷을 추출하게 되는데, 이때 제어부(940)가 동작하여 추출 대상인 데이터 버킷의 주소정보를 데이터 버킷 저장부(950)에 저장한다.When extracting the index bucket from the bucket extractor 920, unlike the case of the generalized range query, the location information is not considered. Therefore, if the logical sum of the node code and the query code matches the node code, the index bucket corresponding to the node code is extracted. The method of comparing node code with query code is the same as that of generalized range query. After extracting the index bucket corresponding to the terminal node of the index tree, the data bucket is extracted. In this case, the control unit 940 operates to store address information of the data bucket to be extracted in the data bucket storage unit 950.

제어부(940)는 좌표공간에서 데이터 객체와 질의지점 사이의 거리가 데이터 버킷 저장부(950)에 저장된 데이터 객체와 질의지점 사이의 거리 중 최대값보다 작고, 데이터부호와 질의부호가 일치하면 데이터부호에 대응하는 데이터 버킷의 주소 정보를 데이터 버킷 저장부(950)에 저장한다. 데이터 객체와 질의지점 사이의 거리는 양자가 모두 좌표공간에서 특정 지점의 좌표로 나타내어지므로 두 점 사이의 거리를 구하는 방식으로 계산할 수 있다. 또한 데이터 버킷 저장부(950)에 저장된 데이터 버킷의 주소정보의 개수가 질의개수보다 적은 경우에는 데이터 객체와 질의지점 사이의 거리의 최대값을 무한대(∞)로 보고 검토 대상이 되었던 데이터부호에 대응하는 데이터 버킷의 주소정보를 데이터 버킷 저장부(950)에 저장한다. 버킷 추출부(920)는 데이터 버킷 저장부(950)에 저장된 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 데이터 버킷을 추출한다. If the distance between the data object and the query point in the coordinate space is smaller than the maximum value of the distance between the data object and the query point stored in the data bucket storage unit 950 and the data code matches the query code, the data code Address information of the data bucket corresponding to the data bucket storage unit 950 is stored. Since the distance between the data object and the query point is both represented by the coordinates of a specific point in the coordinate space, the distance between the two points can be calculated. In addition, when the number of address information of the data bucket stored in the data bucket storage unit 950 is less than the number of queries, the maximum value of the distance between the data object and the query point is reported as infinity (∞) to correspond to the data code that has been examined. The address information of the data bucket is stored in the data bucket storage unit 950. The bucket extractor 920 extracts the data bucket at a reception point identified by the address information of the data bucket stored in the data bucket storage unit 950.

이와 같이 일반화된 최근접질의의 경우에 데이터 버킷의 주소정보를 저장하는 별개의 장치를 사용하는 이유는 최근접질의의 특성 때문이다. 최근접질의는 '질의지점으로부터 최단거리에 위치하는 k개의 데이터 객체를 검색할 것'의 형식으로 나타낸다. 따라서 인덱스 트리의 단말노드에 대응되는 모든 인덱스 버킷에 대하여 검토하기 전까지는 인덱스 버킷에 포함된 데이터 버킷의 주소정보에 따라 데이터 버킷을 추출하여야 하는지 여부를 확정할 수 없다. 데이터 버킷 저장부(950)에는 질의개수와 동일한 개수의 데이터 버킷의 주소정보가 저장되어 버킷 추출부(920)가 인덱스 트리의 단말노드에 대응되는 모든 인덱스 버킷에 대한 검토를 마치는 시점에 추출 대상이 되는 데이터 버킷이 확정되도록 한다.The reason for using a separate device for storing address information of the data bucket in the case of the generalized recent contact is that of the recent contact. The nearest query is of the form "search for k data objects that are located at the shortest distance from the query point". Therefore, it is not possible to determine whether to extract the data bucket according to the address information of the data bucket included in the index bucket until all index buckets corresponding to the terminal node of the index tree are examined. The data bucket storage unit 950 stores address information of the same number of data buckets as the number of queries so that the extraction target is completed when the bucket extraction unit 920 finishes examining all index buckets corresponding to the terminal node of the index tree. Ensure that the data bucket to be established is

일반화된 최근접질의의 경우에도 일반화된 범위질의와 마찬가지로 질의를 처리할 때 검색리스트를 사용할 수 있으며, 결과리스트 대신 데이터 버킷 저장부(950)에 저장되는 데이터 버킷의 주소정보의 리스트인 후보리스 트(candidate_list)를 사용할 수 있다. 도 15는 검색리스트 및 후보리스트를 사용하여 일반화된 최근접질의를 처리하는 알고리즘을 나타낸 도면이다. 도 15의 알고리즘을 참조하여 본 발명에 따른 데이터 검색장치에 의한 일반화된 최근접질의 처리과정을 상세하게 설명한다.In the case of generalized nearest neighbor query, search list can be used when processing query like generalized range query, and candidate list which is a list of address information of data bucket stored in data bucket storage unit 950 instead of result list. You can use (candidate_list). 15 is a diagram illustrating an algorithm for processing a generalized nearest query using a search list and a candidate list. Referring to the algorithm of FIG. 15, the generalized processing of the recent contact by the data retrieval apparatus according to the present invention will be described in detail.

먼저 데이터 수신부(910)가 무선 브로드캐스팅 채널로부터 데이터 스트림을 수신하면, 버킷 추출부(920)는 인덱스 트리의 루트노드에 대응되는 인덱스 버킷을 데이터 스트림으로부터 추출하고, 루트노드의 엔트리에 해당하는 최소경계사각형의 정보를 검색리스트에 추가한다(2행). 이는 일반화된 범위질의 처리과정과 동일하다. 다음으로 버킷 추출부(920)는 검색리스트에 저장된 최소경계사각형이 나타내는 인덱스 트리의 노드에 대응되는 인덱스 버킷을 차례로 검토하여 해당 인덱스 버킷을 추출할 것인지 여부를 결정한다. 인덱스 버킷의 추출 여부는 노드부호와 질의부호의 비교에 의해 결정되고, 노드부호와 질의부호의 논리합이 노드부호와 일치하지 않으면 버킷 추출부(920)는 해당 노드부호에 대응하는 최소경계사각형의 정보를 검색리스트로부터 삭제한다(7~9항). 검색리스트에 저장된 최소경계사각형에 대응하는 노드부호와 질의부호의 논리합이 노드부호와 일치하는 경우에는 해당 노드부호에 대응하는 인덱스 버킷을 추출하여 노드의 엔트리를 검색리스트에 추가하는 과정을 반복한다(11행).First, when the data receiver 910 receives a data stream from the wireless broadcasting channel, the bucket extractor 920 extracts an index bucket corresponding to the root node of the index tree from the data stream, and then applies the minimum corresponding to the entry of the root node. Add bounding rectangle information to the search list (line 2). This is identical to the generalized range processing. Next, the bucket extractor 920 sequentially determines the index bucket corresponding to the node of the index tree indicated by the minimum bounding rectangle stored in the search list, and determines whether to extract the index bucket. Whether the index bucket is extracted or not is determined by comparing the node code and the query code, and if the logical sum of the node code and the query code does not match the node code, the bucket extractor 920 informs the minimum boundary square information corresponding to the node code. Delete from the search list (paragraphs 7-9). If the logical sum of the node code and the query code corresponding to the minimum bounding rectangle stored in the search list matches the node code, the process of extracting the index bucket corresponding to the node code and adding the entry of the node to the search list is repeated. Line 11).

구체적으로 살펴보면, 인덱스 버킷이 인덱스 트리의 비단말노드에 대응되는 것인 경우에는 위에서 설명한 바와 같이 버킷 추출부(920)는 노드부호와 질의부호를 비교하여 양자의 논리합이 노드부호와 일치하면 해당 노드부호에 대응하는 인덱 스 버킷을 추출한다(12~17행). 그러나 인덱스 버킷이 인덱스 트리의 단말노드에 대응되는 경우에는 인덱스 버킷이 데이터 버킷에 관한 정보를 포함하고 있으므로 인덱스 버킷에 대한 검토과정이 제어부(940)에 의해 수행된다. 즉, 인덱스 버킷에 포함된 데이터 객체의 위치정보를 기초로 하여 좌표공간에서 데이터 객체와 질의지점 사이의 거리가 데이터 버킷 저장부에 저장된 데이터 객체와 질의지점 사이의 거리 중 최대값보다 작고, 데이터부호와 질의부호가 일치하면 해당 데이터부호에 대응하는 데이터 버킷의 주소정보를 데이터 버킷 저장부(950), 즉 후보리스트에 저장한다(18~24행). 이때 후보리스트에 저장될 수 있는 데이터 버킷의 주소정보의 개수는 질의개수와 동일하다.In detail, when the index bucket corresponds to a non-terminal node of the index tree, as described above, the bucket extractor 920 compares the node code and the query code, and if the logical sum of the two matches the node code, the corresponding node. Extract the index bucket corresponding to the sign (lines 12-17). However, when the index bucket corresponds to a terminal node of the index tree, since the index bucket includes information about the data bucket, a review process for the index bucket is performed by the controller 940. That is, the distance between the data object and the query point in the coordinate space based on the location information of the data object included in the index bucket is smaller than the maximum value of the distance between the data object and the query point stored in the data bucket storage. If and the query code match, the address information of the data bucket corresponding to the data code is stored in the data bucket storage unit 950, that is, the candidate list (lines 18 to 24). At this time, the number of address information of the data bucket that can be stored in the candidate list is equal to the number of queries.

일반화된 범위질의의 경우에서와 마찬가지로 버킷 추출부(920) 또는 제어부(940)는 검토가 끝난 인덱스 버킷에 대해 검색리스트에 저장되어 있던 정보를 삭제한다. 따라서 검색리스트에 저장된 정보가 모두 삭제되면 모든 인덱스 버킷에 대한 검토가 완료되었다는 것을 의미하므로 그 시점에서 후보리스트, 즉 데이터 버킷 저장부(950)에 저장된 데이터 버킷의 주소정보가 목표데이터의 주소정보에 해당한다. 따라서 버킷 추출부(920)는 데이터 버킷 저장부(950)에 저장된 데이터 버킷의 주소정보에 따라 데이터 버킷을 추출한다.As in the case of the generalized range query, the bucket extraction unit 920 or the control unit 940 deletes the information stored in the search list for the index bucket that has been examined. Therefore, when all the information stored in the search list is deleted, all index buckets have been reviewed. Therefore, the candidate list, that is, the address information of the data bucket stored in the data bucket storage unit 950, is stored in the address information of the target data. Corresponding. Therefore, the bucket extractor 920 extracts the data bucket according to the address information of the data bucket stored in the data bucket storage 950.

이하에서 도 5에 나타난 데이터 객체들 및 도 7에 도시된 데이터 스트림에 의하여 위와 같은 일반화된 최근접질의 처리과정을 구체적으로 설명한다. 도 5에 나타난 데이터 객체들을 기초로 생성된 인덱스 트리는 도 3에 도시된 것과 동일한 형태를 가진다. 질의지점이 도 12에 나타난 q.P와 동일하게 설정되고, 질의부호가 '**01100'이며 k=2, 즉 질의개수가 2인 것으로 가정한다. 버킷 추출부(920)는 우선 데이터 수신부(910)가 수신한 데이터 스트림으로부터 인덱스 트리의 루트노드에 대응되는 인덱스 버킷을 추출한다. 그리고 루트노드의 엔트리인 N1과 N2를 검색리스트에 추가한다. N1에 대응하는 노드부호는 '0111111'이고 질의부호와의 논리합이 노드부호와 일치하므로 버킷 추출부(920)는 N1에 해당하는 인덱스 버킷을 추출하고 N1에 해당하는 인덱스 트리의 노드에 포함된 엔트리인 N3와 N4를 검색리스트에 추가한다. 동시에 N1은 검색리스트에서 삭제한다. N2에 해당하는 노드부호는 '1111111'이고 역시 질의부호와의 논리합이 노드부호와 일치하므로 버킷 추출부(920)는 N2에 해당하는 인덱스 버킷을 추출하고, N2에 해당하는 노드에 포함된 엔트리인 N5와 N6를 검색리스트에 추가한다. 따라서 현재 검색리스트에 저장된 인덱스 버킷은 {N3, N4, N5, N6}이다. 다음으로 N3의 경우, 노드부호가 '0010010'이므로 제어부호와의 논리합이 노드부호와 일치하지 않는다. 또한 N5의 경우도 노드부호가 '1010101'이므로 제어부호와의 논리합이 노드부호와 일치하지않는다. 따라서 버킷 추출부(920)는 N3와 N5에 대응하는 인덱스 버킷은 추출하지 않는다. N4에 해당하는 노드부호는 '0111111'이고 N6에 해당하는 노드부호는 '1101110'이므로 양자 모두 제어부호와의 논리합이 노드부호와 일치한다. 따라서 버킷 추출부(920)는 N4와 N6에 해당하는 인덱스 버킷을 추 출한다.Hereinafter, a process of the generalized recent concatenation described above by the data objects shown in FIG. 5 and the data stream shown in FIG. 7 will be described in detail. The index tree generated based on the data objects shown in FIG. 5 has the same form as that shown in FIG. 3. It is assumed that the query point is set equal to qP shown in FIG. 12, and the query code is '** 01100' and k = 2, that is, the number of questions is two. The bucket extractor 920 first extracts an index bucket corresponding to the root node of the index tree from the data stream received by the data receiver 910. Then add the root node's entries, N 1 and N 2, to the search list. Node code corresponding to N 1 is "0111111", and since the logical sum of the query code matches the node marks bucket extraction unit 920 to the node of the index tree for extracting index bucket corresponding to N 1, and corresponds to the N 1 Add the included entries N 3 and N 4 to the search list. At the same time N 1 is deleted from the search list. Node code for the N 2 is '1111111', and also stored in nodes bucket extracting unit 920 because the logical OR of the query code matches the node code is extracted index bucket corresponding to N 2, and corresponds to the N 2 Add the entries N 5 and N 6 to the search list. Therefore, the index bucket currently stored in the search list is {N 3 , N 4 , N 5 , N 6 }. Next, in the case of N 3 , since the node code is '0010010', the logical sum with the control code does not match the node code. Also, in the case of N 5 , since the node code is '1010101', the logical sum with the control code does not match the node code. Therefore, the bucket extractor 920 does not extract index buckets corresponding to N 3 and N 5 . Since the node code corresponding to N 4 is '0111111' and the node code corresponding to N 6 is '1101110', both the logical sum of the control code matches the node code. Therefore, the bucket extractor 920 extracts index buckets corresponding to N 4 and N 6 .

다음으로 N4와 N6에 해당하는 인덱스 버킷은 인덱스 트리의 단말노드에 대응되는 것들이므로 이들에 대한 검토는 제어부(940)가 수행한다. 먼저 N4 노드의 엔트리 중 r4의 데이터부호는 질의부호와 일치하지 않고 r3의 데이터부호만 질의부호와 일치한다. 또한 데이터 버킷 저장부(950)에는 현재 저장된 데이터 버킷의 주소정보가 존재하지 않는다. 따라서 제어부(940)는 좌표공간에서 데이터 객체와 질의지점 사이의 거리를 고려하지 않고 r3에 해당하는 데이터 버킷의 주소정보를 데이터 버킷 저장부(950)에 저장한다. 다음으로 N6 노드의 엔트리 중에서 r8의 노드부호인 '1101100'만 질의부호와 일치하며, 데이터 버킷 저장부(950)에 저장된 데이터 객체의 주소정보가 질의개수인 2보다 적으므로 제어부(940)는 r8에 해당하는 데이터 버킷의 주소정보를 데이터 버킷 저장부(950)에 추가한다.Next, since the index buckets corresponding to N 4 and N 6 are those corresponding to the terminal nodes of the index tree, the control unit 940 examines them. First, the data code of r 4 among the entries of N 4 nodes does not match the query code, but only the data code of r 3 matches the query code. In addition, the address information of the currently stored data bucket does not exist in the data bucket storage unit 950. Therefore, the controller 940 stores the address information of the data bucket corresponding to r 3 in the data bucket storage unit 950 without considering the distance between the data object and the query point in the coordinate space. Next, only '1101100', which is the node code of r 8 , among the entries of the N 6 nodes matches the query code, and since the address information of the data object stored in the data bucket storage unit 950 is less than 2, which is the number of queries, the controller 940. Adds address information of the data bucket corresponding to r 8 to the data bucket storage unit 950.

버킷 추출부(920)는 데이터 버킷 저장부(950)에 저장된 r3와 r8에 해당하는 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 r3와 r8에 해당하는 데이터 버킷을 추출하며, 데이터 추출부(930)는 추출된 데이터 버킷으로부터 데이터 객체를 추출한다. 추출된 데이터 객체는 일반화된 최근접질의에 해당하는 목표데이터가 된다.The bucket extractor 920 extracts the data buckets corresponding to r 3 and r 8 at a reception point determined by the address information of the data buckets corresponding to r 3 and r 8 stored in the data bucket storage unit 950. The data extractor 930 extracts a data object from the extracted data bucket. The extracted data object becomes the target data corresponding to the generalized nearest query.

도 16은 본 발명에 따른 데이터 검색방법에 대한 바람직한 일 실시예의 수행 과정을 도시한 흐름도이다.16 is a flowchart illustrating a process of performing a preferred embodiment of the data retrieval method according to the present invention.

도 16을 참조하면, 데이터 수신부(910)는 소정의 좌표공간 상에서 복수의 데이터 객체 각각의 위치를 나타내는 위치정보와 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷 및 데이터 버킷의 주소정보를 포함하는 인덱스 트리의 각 노드에 대응되어 생성된 인덱스 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신한다(S1610). 다음으로 버킷 추출부(920)는 (q.R, q.V)의 형식을 가지는 일반화된 범위질의를 수행하기 위해 데이터 스트림으로부터 추출한 인덱스 버킷에 포함된 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 데이터 버킷을 추출한다. 이때 인덱스 버킷이 인덱스 트리의 비단말노드에 대응되는 경우에는 인덱스 버킷에 포함된 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보에 의하여 파악되는 수신시점에 자식노드에 대응되는 인덱스 버킷을 추출한다. 또한 인덱스 버킷을 추출할 때 좌표공간에 형성된 최소경계사각형이 사용자로부터 입력받은 질의범위와 교차하고 노드부호와 질의부호의 논리합이 노드부호와 일치하면 노드부호에 대응하는 인덱스 버킷을 추출한다(S1620). 데이터 버킷을 추출할 때는 데이터 객체의 위치정보가 질의범위에 포함되고 데이터부호와 질의부호가 일치하면 데이터부호에 대응하는 데이터 버킷을 추출한다(S1630). 마지막으로 데이터 추출부(930)는 추출된 데이터 버킷으로부터 데이터 객체를 추출한다(S1640). 이와 같은 일반화된 범의질위 처리과정은 본 발명에 따른 데이터 검색장치에 의해 수행될 수 있다.Referring to FIG. 16, the data receiver 910 may include address information of a data bucket and data bucket including location information indicating positions of a plurality of data objects and non-spatial information indicating characteristics of the data object in a predetermined coordinate space. A data stream including an index bucket generated corresponding to each node of the included index tree is received from the transport channel (S1610). Next, the bucket extractor 920 extracts the data bucket at the reception point identified by the address information of the data bucket included in the index bucket extracted from the data stream to perform a generalized range query having a format of (qR, qV). Extract. In this case, when the index bucket corresponds to the non-terminal node of the index tree, the index bucket corresponding to the child node is extracted at the reception point identified by the address information of the index bucket corresponding to the child node of the non-terminal node included in the index bucket. do. When the index bucket is extracted, if the minimum boundary rectangle formed in the coordinate space intersects the query range received from the user and the logical sum of the node code and the query code matches the node code, the index bucket corresponding to the node code is extracted (S1620). . When extracting the data bucket, if the location information of the data object is included in the query range and the data code and the query code match, the data bucket corresponding to the data code is extracted (S1630). Finally, the data extractor 930 extracts a data object from the extracted data bucket (S1640). Such generalized quality processing may be performed by the data retrieval apparatus according to the present invention.

도 17은 본 발명에 따른 데이터 검색방법에 대한 바람직한 다른 실시예의 수행 과정을 도시한 흐름도이다.17 is a flowchart illustrating a process of performing another preferred embodiment of the data retrieval method according to the present invention.

도 17을 참조하면, 데이터 수신부(910)는 소정의 좌표공간 상에서 복수의 데이터 객체 각각의 위치를 나타내는 위치정보와 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷 및 데이터 버킷의 주소정보를 포함하는 인덱스 트리의 각 노드에 대응되어 생성된 인덱스 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신한다(S1710). 다음으로 버킷 추출부(920)는 (q.P, q.V)의 형식을 가지는 일반화된 최근접질의를 수행하기 위해 데이터 스트림으로부터 추출한 인덱스 버킷에 포함된 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 데이터 버킷을 추출한다. 이때 인덱스 버킷이 인덱스 트리의 비단말노드에 대응되는 경우에는 인덱스 버킷에 포함된 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보에 의하여 파악되는 수신시점에 자식노드에 대응되는 인덱스 버킷을 추출한다. 인덱스 버킷을 추출할 때에는 노드부호와 질의부호의 논리합이 노드부호와 일치하면 노드부호에 대응하는 인덱스 버킷을 추출한다(S1720). 데이터 버킷을 추출하기에 앞서 제어부(940)는 좌표공간에서 데이터 객체와 질의지점 사이의 거리가 데이터 버킷 저장부에 저장된 데이터 객체와 질의지점 사이의 거리 중 최대값보다 작고 데이터부호와 질의부호가 일치하면 데이터부호에 대응하는 데이터 버킷의 주소정보를 데이터 버킷 저장부(950)에 저장한다(S1730). 버킷 추출부(920)는 데이터 버킷 저장부(950)에 저장된 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 데이터 버킷을 추출한다(S1740). 마지막으로 데이터 추출부(930)는 추출된 데이터 버킷으로부터 데이터 객체를 추출한다(S1750). 이와 같은 일반화된 최근접질의 처리과정 역시 본 발명에 따른 데이터 검색장치에 의해 수행될 수 있다.Referring to FIG. 17, the data receiver 910 may include address information of a data bucket and data bucket including location information indicating positions of a plurality of data objects and non-spatial information indicating characteristics of the data object in a predetermined coordinate space. A data stream including an index bucket generated corresponding to each node of the included index tree is received from the transport channel (S1710). Next, the bucket extractor 920 receives the data bucket at the reception point identified by the address information of the data bucket included in the index bucket extracted from the data stream to perform a generalized recent query having a format (qP, qV). Extract In this case, when the index bucket corresponds to the non-terminal node of the index tree, the index bucket corresponding to the child node is extracted at the reception point identified by the address information of the index bucket corresponding to the child node of the non-terminal node included in the index bucket. do. When extracting the index bucket, if the logical sum of the node code and the query code matches the node code, the index bucket corresponding to the node code is extracted (S1720). Before extracting the data bucket, the controller 940 determines that the distance between the data object and the query point in the coordinate space is smaller than the maximum value between the data object and the query point stored in the data bucket storage, and the data code and the query code match. In operation S1730, address information of the data bucket corresponding to the data code is stored in the data bucket storage unit 950. The bucket extracting unit 920 extracts the data bucket at the reception point determined by the address information of the data bucket stored in the data bucket storage unit 950 (S1740). Finally, the data extractor 930 extracts a data object from the extracted data bucket (S1750). This generalized process of recent contact can also be performed by the data retrieval apparatus according to the present invention.

본 발명에 따른 데이터 생성장치 및 방법, 그리고 데이터 검색장치 및 방법을 실제 시스템에 적용하여 그 성능을 확인하는 실험을 수행하였다. 시스템은 서버, 이동단말 및 브로드캐스팅 채널을 포함하도록 구현하였고, 좌표공간에 균일하게 분포된 6000개의 데이터 객체로 구성된 UNIFORM 데이터셋과 실제 존재하는 레스토랑을 바탕으로 한 5922개의 데이터 객체로 구성된 REAL 데이터셋을 이용하여 각각 실험하였다. 각각의 데이터 객체에 부여된 비공간적 정보는 레스토랑의 식별번호(a1), 레스토랑의 종류(a2) 및 평균 가격대(a3)이다. 이러한 데이터 객체들에 대한 일반화된 공간질의형식은 두 가지로 구성하였다. 첫번째는 a1과 a2만을 한정한 형식(그래프에서 q1으로 표시)이고, 두번째는 a1 내지 a3를 모두 한정한 형식(그래프에서 q2로 표시)이다. 또한 일반화된 범위질의에 있어서 실제 좌표공간의 너비에 대한 질의범위의 너비의 비를 SizeRatio라 정의하였다. 각각의 최소경계사각형에 대한 데이터량은 16바이트, 인덱스 버킷 및 데이터 버킷의 주소정보에 대하여는 2바이트, 데이터부호, 노드부호 및 질의부호의 데이터량 역시 2바이트로 설정되었다. 이동단말의 접근시간을 감소시키기 위한 인덱스 복제횟수인 m은

Figure 112008089385117-pat00006
와 같이 정의된다. 이때 DATAsize는 전체 데이터 객체들의 데이터량이고, INDEXsize는 인덱스 트리의 데이터량이다. 데이터량의 단위는 버킷으로 나타내어진다.Experiments were conducted to confirm the performance by applying the data generating apparatus and method, and the data searching apparatus and method according to the present invention to a real system. The system is implemented to include servers, mobile terminals, and broadcasting channels, a UNIFORM dataset consisting of 6000 data objects uniformly distributed in coordinate space, and a REAL dataset consisting of 5922 data objects based on a real restaurant. Each was experimented using. Non-spatial information assigned to each data object is a restaurant identification number (a 1 ), a restaurant type (a 2 ), and an average price range (a 3 ). There are two generalized forms of spatial query for these data objects. The first is the form of defining only a1 and a2 (indicated by q 1 in the graph), and the second is the form of defining both a 1 to a 3 (indicated by q 2 in the graph). Also, in the generalized range query, the ratio of the width of the query range to the width of the actual coordinate space is defined as SizeRatio. The data amount for each minimum bounding rectangle is set to 16 bytes, and the data amount of the data code, node code, and query code is set to 2 bytes for the address bucket and the address information of the data bucket. M, the number of index replications to reduce the access time of the mobile terminal,
Figure 112008089385117-pat00006
Is defined as: DATA size is the data amount of all data objects, and INDEX size is the data amount of the index tree. The unit of data amount is represented by a bucket.

먼저 일반화된 범위질의에 대한 실험결과를 검토한다. 도 18은 UNIFORM 데이 터셋과 REAL 데이터셋에 대하여 측정한 SizeRatio에 대한 동조시간의 길이를 공간질의의 형식 및 인덱스 트리의 형태에 따라 도시한 그래프이고, 도 19는 UNIFORM 데이터셋과 REAL 데이터셋에 대하여 측정한 SizeRatio에 대한 접근시간의 길이를 공간질의의 형식 및 인덱스 트리의 형태에 따라 도시한 그래프이다. 동조시간과 접근시간의 단위는 버킷의 수로 표시하였다. BSR-트리는 인덱스 트리에 데이터 객체의 비공간정보가 포함된 경우이고, BR-트리는 인덱스 트리에 비공간정보가 포함되지 않은 경우이다. 도 18 및 도 19를 참조하면, 버킷의 데이터량이 256바이트로 고정되고, SizeRatio는 0.05에서 0.2까지 변화하였다. UNIFORM 데이터셋과 REAL 데이터셋의 두 경우에서 모두 동조시간과 접근시간이 SizeRatio가 증가함에 따라 증가하는 것을 확인할 수 있다.First, we review the results of the generalized range query. FIG. 18 is a graph showing the length of the tuning time for the SizeRatio measured for the UNIFORM dataset and the REAL dataset according to the format of the spatial query and the shape of the index tree. FIG. 19 is a diagram for the UNIFORM dataset and the REAL dataset. This graph shows the length of the access time for the SizeRatio according to the spatial query type and the index tree type. Units of tuning time and access time are expressed in number of buckets. The BSR-tree is a case where nonspatial information of a data object is included in an index tree and the BR-tree is a case where nonspatial information is not included in an index tree. 18 and 19, the data amount of the bucket is fixed at 256 bytes, and the SizeRatio is changed from 0.05 to 0.2. In both the UNIFORM and REAL datasets, the tuning time and access time increase as the SizeRatio increases.

도 20은 UNIFORM 데이터셋에 대하여 측정한 버킷의 데이터량에 따른 동조시간과 접근시간의 길이를 도시한 그래프이다. 도 20에 도시되지 않았으나, REAL 데이터셋에 대하여도 거의 동일한 결과가 나타났다. 도 20을 참조하면, SizeRatio는 0.1로 고정되고, 버킷의 데이터량을 64에서 512까지 변화시켰다. 이때 일반화된 범위질의의 형식(q1 또는 q2)과 인덱스 트리의 구조에 무관하게 버킷의 데이터량이 증가함에 따라 동조시간과 접근시간이 감소하여 데이터 검색의 성능이 좋아지는 것을 확인할 수 있다.FIG. 20 is a graph showing the lengths of the tuning time and the access time according to the data amount of the bucket measured for the UNIFORM data set. Although not shown in FIG. 20, the same results are obtained for the REAL data set. Referring to Fig. 20, the SizeRatio is fixed at 0.1 and the bucket data amount is changed from 64 to 512. In this case, regardless of the generalized range query format (q 1 or q 2 ) and the structure of the index tree, as the amount of data in the bucket increases, the tuning time and access time decrease, resulting in better data retrieval performance.

또한 도 18 내지 도 20에서 BR-트리 구조의 인덱스를 사용한 경우보다 BSR-트리 구조의 인덱스를 사용한 경우에서 동조시간과 접근시간이 짧은 것으로 보아 인덱스 트리에 비공간정보를 포함시켜 목표데이터를 검색할 때 이용하도록 하는 것이 좋은 성능을 보인다는 점을 확인하였다.In addition, since the tuning time and the access time are shorter in the case of using the BSR-tree index than in the case of the BR-tree index in FIGS. I found out that it is good to use it.

다음으로 일반화된 최근접질의에 대한 실험결과를 검토한다. 도 21은 UNIFORM 데이터셋과 REAL 데이터셋에 대하여 측정한 질의개수(k)에 대한 동조시간의 길이를 공간질의의 형식 및 인덱스 트리의 형태에 따라 도시한 그래프이고, 도 22는 UNIFORM 데이터셋과 REAL 데이터셋에 대하여 측정한 질의개수(k)에 대한 접근시간의 길이를 공간질의의 형식 및 인덱스 트리의 형태에 따라 도시한 그래프이다. 도 21 및 도 22를 참조하면, 버킷의 데이터량을 256바이트로 고정하고, 질의개수를 1에서 9까지 증가시켰다. 도 21의 그래프에서는 BSR-트리 구조의 인덱스 트리를 사용한 경우가 BR-트리를 사용한 경우보다 훨씬 짧은 동조시간을 보인다. 이는 BR-트리를 사용할 경우 인덱스 트리에 비공간정보가 포함되어 있지 않으므로 노드부호와 질의부호의 비교 없이 모든 노드에 대응되는 인덱스 버킷을 추출하여야 하기 때문이다. 도 22에는 BR-트리 구조의 인덱스 트리를 사용한 경우가 제외되어 있다. 이는 BR-트리를 사용한 경우가 BSR-트리를 사용한 경우에 비하여 현저하게 긴 접근시간, 예를 들면, 질의개수가 1일 때 약 34,000 버킷의 접근시간을 보이기 때문이다.Next, review the experimental results for the generalized recent cognate. FIG. 21 is a graph showing the length of the tuning time for the number of queries (k) measured for the UNIFORM data set and the REAL data set according to the format of the spatial query and the form of the index tree. FIG. 22 is a UNIFORM data set and the REAL. This is a graph showing the length of access time for the number of queries (k) measured for a dataset according to the form of spatial query and index tree. 21 and 22, the amount of data in the bucket is fixed to 256 bytes, and the number of queries is increased from 1 to 9. In the graph of FIG. 21, the use of the index tree of the BSR-tree structure shows a much shorter tuning time than the case of using the BR-tree. This is because, when the BR-tree is used, non-spatial information is not included in the index tree and an index bucket corresponding to all nodes must be extracted without comparing the node code and the query code. In FIG. 22, the case where the index tree of the BR-tree structure is used is excluded. This is because the use of the BR-tree shows a significantly longer access time, for example, an access time of about 34,000 buckets when the number of queries is 1 compared with the use of the BSR-tree.

도 23은 UNIFORM 데이터셋에 대하여 측정한 버킷의 데이터량에 따른 동조시간과 접근시간의 길이를 도시한 그래프이다. 도 20의 경우와 마찬가지로 REAL 데이터셋에 대하여도 거의 동일한 결과를 보인다. 도 23을 참조하면, 질의개수 k는 5로 고정되며, 버킷의 데이터량은 64에서 512바이트로 변화시켰다. 실험 결과, 버킷의 데이터량이 증가함에 따라 동조시간과 접근시간이 감소하여 데이터 검색의 성능이 좋아진다는 것을 확인할 수 있다. 또한 BSR-트리를 사용한 경우에서 BR-트리를 사용한 것보다 짧은 동조시간과 접근시간을 보인다. 특히 BR-트리를 사용한 경우에 버킷 사이즈가 512바이트일 때 약 20,000버킷의 접근시간을 보이므로 도 23에 도시되지 않았다.FIG. 23 is a graph showing the tuning time and the access time length according to the data amount of the bucket measured for the UNIFORM data set. As in the case of Fig. 20, the same result is obtained for the REAL data set. Referring to Fig. 23, the number of queries k is fixed at 5, and the data amount of the bucket is changed from 64 to 512 bytes. As a result of the experiment, it can be seen that as the data volume of the bucket increases, the tuning time and access time decrease, thereby improving the performance of data retrieval. Also, the use of BSR-tree shows shorter tuning time and access time than that of BR-tree. In particular, in the case of using the BR-tree, when the bucket size is 512 bytes, the access time of about 20,000 buckets is shown, which is not illustrated in FIG. 23.

이러한 실험 결과들을 참조하면, 본 발명에 따른 공간정보를 포함하는 데이터 생성장치 및 방법, 그리고 데이터 검색장치 및 방법이 종래의 방법들에 비하여 대기 시간과 에너지 소비의 면에서 효율적이라는 점을 확인할 수 있다.Referring to these experimental results, it can be seen that the data generating apparatus and method including the spatial information according to the present invention, and the data searching apparatus and method are more efficient in terms of standby time and energy consumption than the conventional methods. .

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The invention can also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.Although the preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific preferred embodiments described above, and the present invention belongs to the present invention without departing from the gist of the present invention as claimed in the claims. Various modifications can be made by those skilled in the art, and such changes are within the scope of the claims.

도 1은 본 발명에 따른 공간정보를 포함하는 데이터 생성장치에 대한 바람직한 일 실시예의 구성을 도시한 블록도,1 is a block diagram showing the configuration of a preferred embodiment of a data generating apparatus including spatial information according to the present invention;

도 2는 2차원 공간에 위치하는 복수의 공간데이터를 나타낸 그래프,2 is a graph showing a plurality of spatial data located in a two-dimensional space;

도 3은 도 2의 그래프에 나타난 공간데이터를 이용하여 생성된 R-트리 구조를 도시한 도면,3 is a diagram illustrating an R-tree structure generated using spatial data shown in the graph of FIG. 2;

도 4는 좌표공간에서 위치정보를 가지는 데이터 객체의 비공간정보를 나타낸 도면,4 is a diagram illustrating non-spatial information of a data object having location information in a coordinate space;

도 5는 도 4에 나타난 데이터 객체의 비공간정보를 기초로 r1 내지 r8에 대해 생성된 데이터부호 및 N1 내지 N6에 대해 생성된 노드부호를 나타낸 도면,5 is a diagram illustrating a data code generated for r1 to r8 and a node code generated for N1 to N6 based on the non-spatial information of the data object shown in FIG. 4;

도 6은 단말노드 및 비단말노드에 포함되는 정보를 기초로 인덱스 트리를 생성하는 알고리즘을 나타낸 도면,6 is a diagram illustrating an algorithm for generating an index tree based on information included in a terminal node and a non-terminal node;

도 7은 도 4에 나타난 데이터 객체들의 정보를 기초로 한 데이터 버킷 및 인덱스 버킷을 이용하여 다중화부에 의해 생성된 부호화될 데이터를 도시한 도면,7 is a diagram illustrating data to be encoded generated by a multiplexer using a data bucket and an index bucket based on information of data objects shown in FIG. 4;

도 8은 본 발명에 따른 데이터 생성방법에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도,8 is a flowchart illustrating a process of performing a preferred embodiment of the data generation method according to the present invention;

도 9는 본 발명에 따른 공간정보를 포함하는 데이터 검색장치 및 방법에 대한 바람직한 일 실시예의 구성을 도시한 블록도,9 is a block diagram showing the configuration of a preferred embodiment of a data retrieval apparatus and method including spatial information according to the present invention;

도 10은 본 발명에 따른 공간정보를 포함하는 데이터 검색장치 및 방법에 대한 바람직한 다른 실시예의 구성을 도시한 블록도,10 is a block diagram showing the configuration of another preferred embodiment of a data retrieval apparatus and method including spatial information according to the present invention;

도 11은 R-트리 구조의 인덱스를 이용하여 범위질의에 해당하는 목표데이터를 검색하기 위한 도면,11 is a diagram for searching for target data corresponding to a range query using an index of an R-tree structure;

도 12는 R-트리 구조의 인덱스를 이용하여 최근접질의에 해당하는 목표데이터를 검색하기 위한 도면,12 is a diagram for searching for target data corresponding to a nearest neighbor query using an index of an R-tree structure;

도 13은 최근접질의에 대한 최우선 탐색 알고리즘이 적용되는 데이터스트림을 도시한 도면,FIG. 13 is a diagram showing a data stream to which the highest priority search algorithm for the nearest neighbor is applied; FIG.

도 14는 검색리스트 및 결과리스트를 사용하여 일반화된 범위질의를 처리하는 알고리즘을 나타낸 도면,14 is a diagram illustrating an algorithm for processing a generalized range query using a search list and a result list.

도 15는 검색리스트 및 후보리스트를 사용하여 일반화된 최근접질의를 처리하는 알고리즘을 나타낸 도면,15 is a diagram illustrating an algorithm for processing a generalized nearest query using a search list and a candidate list;

도 16은 본 발명에 따른 데이터 검색방법에 대한 바람직한 일 실시예의 수행 과정을 도시한 흐름도,16 is a flowchart illustrating a process of performing a preferred embodiment of a data retrieval method according to the present invention;

도 17은 본 발명에 따른 데이터 검색방법에 대한 바람직한 다른 실시예의 수행 과정을 도시한 흐름도,17 is a flowchart illustrating a process of performing another preferred embodiment of a data retrieval method according to the present invention;

도 18은 UNIFORM 데이터셋과 REAL 데이터셋에 대하여 측정한 SizeRatio에 대한 동조시간의 길이를 공간질의의 형식 및 인덱스 트리의 형태에 따라 도시한 그래프,18 is a graph showing the length of the tuning time for the SizeRatio measured for the UNIFORM and REAL datasets according to the format of the spatial query and the shape of the index tree;

도 19는 UNIFORM 데이터셋과 REAL 데이터셋에 대하여 측정한 SizeRatio에 대한 접근시간의 길이를 공간질의의 형식 및 인덱스 트리의 형태에 따라 도시한 그래프,19 is a graph showing the length of the access time for the SizeRatio measured for the UNIFORM and REAL datasets according to the format of the spatial query and the shape of the index tree;

도 20은 UNIFORM 데이터셋에 대하여 측정한 버킷의 데이터량에 따른 동조시간과 접근시간의 길이를 도시한 그래프,20 is a graph showing the tuning time and the access time length according to the data amount of the bucket measured for the UNIFORM data set;

도 21은 UNIFORM 데이터셋과 REAL 데이터셋에 대하여 측정한 질의개수(k)에 대한 동조시간의 길이를 공간질의의 형식 및 인덱스 트리의 형태에 따라 도시한 그래프,FIG. 21 is a graph showing the length of synchronization time for the number of queries (k) measured for UNIFORM and REAL datasets according to the form of spatial query and index tree;

도 22는 UNIFORM 데이터셋과 REAL 데이터셋에 대하여 측정한 질의개수(k)에 대한 접근시간의 길이를 공간질의의 형식 및 인덱스 트리의 형태에 따라 도시한 그래프, 그리고,22 is a graph showing the length of the access time for the number of queries (k) measured for the UNIFORM data set and the REAL data set according to the format of the spatial query and the index tree;

도 23은 UNIFORM 데이터셋에 대하여 측정한 버킷의 데이터량에 따른 동조시간과 접근시간의 길이를 도시한 그래프이다.FIG. 23 is a graph showing the tuning time and the access time length according to the data amount of the bucket measured for the UNIFORM data set.

Claims (18)

복수의 데이터 객체 각각에 대응하여 상기 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷을 생성하는 데이터 버킷 생성부;A data bucket generation unit for generating a data bucket including non-spatial information representing characteristics of the data object corresponding to each of a plurality of data objects; 상기 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 상기 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어진 단말노드와, 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함하는 비단말노드정보로 이루어진 비단말노드를 계층적으로 배치하여 인덱스 트리를 생성하는 인덱스 트리 생성부;Logical sum of a terminal node comprising a data code encoding non-spatial information of the data objects and terminal node information including address information of data buckets corresponding to the data objects, and a data code included in a lower child node. An index tree generation unit for generating an index tree by hierarchically arranging non-terminal nodes including non-terminal node information including a node code calculated as a result; 상기 인덱스 트리의 단말노드 각각에 대해 각각의 단말노드에 대응하는 단말노드정보로 이루어진 인덱스 버킷을 생성하고, 인덱스 트리의 비단말노드 각각에 대해 각각의 비단말노드의 비단말노드정보와 각각의 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보로 이루어진 인덱스 버킷을 생성하는 인덱스 버킷 생성부;For each terminal node of the index tree, an index bucket including terminal node information corresponding to each terminal node is generated, and for each non-terminal node of the index tree, non-terminal information of each non-terminal node and each terminal An index bucket generator configured to generate an index bucket including address information of an index bucket corresponding to a child node of a horse node; 상기 인덱스 버킷 및 상기 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성하는 다중화부; 및A multiplexer configured to sequentially arrange the index bucket and the data bucket to generate data to be encoded; And 상기 데이터 버킷 및 인덱스 버킷의 데이터량 및 상기 다중화부에 의해 생성되는 부호화될 데이터의 전송 속도를 기초로 상기 데이터 버킷 및 인덱스 버킷의 주소정보를 시간정보로 변환하는 시간정보 산출부;를 포함하며,And a time information calculator for converting address information of the data bucket and the index bucket into time information based on the data amount of the data bucket and the index bucket and the transmission speed of the data to be encoded generated by the multiplexer. 상기 데이터 버킷 생성부 및 상기 인덱스 버킷 생성부는 각각에 대응하는 상 기 데이터 버킷 및 인덱스 버킷의 주소정보를 상기 시간정보 산출부가 산출한 시간정보로 변경하는 것을 특징으로 하는 데이터 생성장치.And the data bucket generator and the index bucket generator change address information of the data bucket and the index bucket corresponding to the time information calculated by the time information calculator. 제 1항에 있어서,The method of claim 1, 상기 데이터 버킷 생성부는 소정의 좌표공간 상에서 상기 데이터 객체의 위치를 나타내는 위치정보를 더 포함하는 데이터 버킷을 생성하며,The data bucket generator generates a data bucket further including location information indicating a location of the data object in a predetermined coordinate space. 상기 인덱스 트리 생성부는 상기 좌표공간 상에서 서로 인접하는 데이터 객체들의 위치정보를 더 포함하는 단말노드정보로 이루어진 단말노드와, 상기 좌표공간 상에서 하위계층에 존재하는 단말노드에 포함된 데이터 객체들을 포함하도록 설정된 최소경계사각형의 위치정보를 더 포함하는 비단말노드정보로 이루어진 비단말노드를 계층적으로 배치하여 인덱스 트리를 생성하는 것을 특징으로 하는 데이터 생성장치.The index tree generation unit is configured to include a terminal node including terminal node information further including location information of data objects adjacent to each other in the coordinate space, and data objects included in terminal nodes existing in a lower layer in the coordinate space. And generating an index tree by hierarchically arranging non-terminal nodes formed of non-terminal node information including position information of a minimum boundary rectangle. 제 1항 또는 제 2항에 있어서,The method according to claim 1 or 2, 상기 데이터부호 및 상기 노드부호는 이진수로 표시되는 것을 특징으로 하는 데이터 생성장치.The data code and the node code is characterized in that the binary representation. 제 1항 또는 제 2항에 있어서,The method according to claim 1 or 2, 상기 데이터 버킷 생성부는 사전에 설정된 인덱스 복제횟수로 상기 데이터 버킷을 분할하여 복수의 부분 데이터 버킷을 생성하고,The data bucket generation unit generates a plurality of partial data buckets by dividing the data buckets by a preset index replication number, 상기 인덱스 버킷 생성부는 상기 인덱스 복제횟수에 따라 상기 인덱스 버킷을 복제하며,The index bucket generation unit replicates the index bucket according to the number of times of index replication, 상기 다중화부는 상기 각각의 인덱스 버킷 및 부분 데이터 버킷을 순차적으로 반복 배치하여 부호화될 데이터를 생성하는 것을 특징으로 하는 데이터 생성장치.And the multiplexing unit sequentially and repeatedly arranges each of the index buckets and the partial data buckets to generate data to be encoded. 복수의 데이터 객체 각각에 대응하여 상기 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷을 생성하는 데이터 버킷 생성단계;Generating a data bucket corresponding to each of a plurality of data objects, the data bucket including non-spatial information representing characteristics of the data objects; 상기 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 상기 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어진 단말노드와, 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함하는 비단말노드정보로 이루어진 비단말노드를 계층적으로 배치하여 인덱스 트리를 생성하는 인덱스 트리 생성단계;Logical sum of a terminal node comprising a data code encoding non-spatial information of the data objects and terminal node information including address information of data buckets corresponding to the data objects, and a data code included in a lower child node. An index tree generation step of generating an index tree by hierarchically arranging non-terminal nodes formed of non-terminal node information including a node code calculated as; 상기 인덱스 트리의 단말노드 각각에 대해 각각의 단말노드에 대응하는 단말노드정보로 이루어진 인덱스 버킷을 생성하고, 인덱스 트리의 비단말노드 각각에 대해 각각의 비단말노드의 비단말노드정보와 각각의 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보로 이루어진 인덱스 버킷을 생성하는 인덱스 버킷 생성단계;For each terminal node of the index tree, an index bucket including terminal node information corresponding to each terminal node is generated, and for each non-terminal node of the index tree, non-terminal information of each non-terminal node and each terminal An index bucket generation step of generating an index bucket consisting of address information of an index bucket corresponding to a child node of a horse node; 상기 인덱스 버킷 및 상기 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성하는 다중화단계; 및Multiplexing the data to be encoded by sequentially placing the index bucket and the data bucket; And 상기 데이터 버킷 및 인덱스 버킷의 데이터량 및 상기 다중화단계에서 생성되는 부호화될 데이터의 전송 속도를 기초로 상기 데이터 버킷 및 인덱스 버킷의 주소정보를 시간정보로 변환하는 시간정보 산출단계;를 포함하며,And a time information calculating step of converting address information of the data bucket and the index bucket into time information based on the data amount of the data bucket and the index bucket and the transmission speed of the data to be encoded generated in the multiplexing step. 상기 데이터 버킷 생성단계 및 상기 인덱스 버킷 생성단계에서, 각각에 대응하는 상기 데이터 버킷 및 인덱스 버킷의 주소정보를 상기 시간정보 산출부가 산출한 시간정보로 변경하는 것을 특징으로 하는 데이터 생성방법.The data bucket generation step and the index bucket generation step, characterized in that for changing the address information of the data bucket and the index bucket corresponding to each of the time information calculated by the time information calculator. 제 5항에 있어서,The method of claim 5, 상기 데이터 버킷 생성단계에서, 소정의 좌표공간 상에서 상기 데이터 객체의 위치를 나타내는 위치정보를 더 포함하는 데이터 버킷을 생성하며,In the data bucket generation step, generating a data bucket further comprising location information indicating the location of the data object in a predetermined coordinate space, 상기 인덱스 트리 생성단계에서, 상기 좌표공간 상에서 서로 인접하는 데이터 객체들의 위치정보를 더 포함하는 단말노드정보로 이루어진 단말노드와, 상기 좌표공간 상에서 하위계층에 존재하는 단말노드에 포함된 데이터 객체들을 포함하도록 설정된 최소경계사각형의 위치정보를 더 포함하는 비단말노드정보로 이루어진 비단말노드를 계층적으로 배치하여 인덱스 트리를 생성하는 것을 특징으로 하는 데이터 생성방법.In the index tree generation step, a terminal node including terminal node information further including position information of data objects adjacent to each other in the coordinate space, and data objects included in terminal nodes existing in a lower layer in the coordinate space. And generating an index tree by hierarchically arranging non-terminal nodes formed of non-terminal node information including position information of a minimum boundary rectangle. 제 5항 또는 제 6항에 있어서,The method according to claim 5 or 6, 상기 데이터부호 및 상기 노드부호는 이진수로 표시되는 것을 특징으로 하는 데이터 생성방법.The data code and the node code is characterized in that the binary representation. 제 5항 또는 제 6항에 있어서,The method according to claim 5 or 6, 상기 데이터 버킷 생성단계에서, 사전에 설정된 인덱스 복제횟수로 상기 데이터 버킷을 분할하여 복수의 부분 데이터 버킷을 생성하고,In the data bucket generation step, the data bucket is divided by a preset index replication number to generate a plurality of partial data buckets, 상기 인덱스 버킷 생성단계에서, 상기 인덱스 복제횟수에 따라 상기 인덱스 버킷을 복제하며,In the index bucket generation step, the index bucket is replicated according to the number of times of index replication, 상기 다중화단계에서, 상기 각각의 인덱스 버킷 및 부분 데이터 버킷을 순차적으로 반복 배치하여 부호화될 데이터를 생성하는 것을 특징으로 하는 데이터 생성방법.In the multiplexing step, the data generation method comprising generating the data to be encoded by sequentially placing each of the index buckets and the partial data buckets sequentially. 소정의 좌표공간 상에서 복수의 데이터 객체 각각의 위치를 나타내는 위치정보와 상기 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷 및 상기 데이터 버킷의 주소정보를 포함하는 인덱스 트리의 각 노드에 대응되어 생성된 인덱스 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신하는 데이터 수신부;Corresponding to each node of the index tree including location information indicating the location of each of the plurality of data objects in the predetermined coordinate space and non-spatial information indicating the characteristics of the data object and address information of the data bucket. A data receiver configured to receive a data stream including a generated index bucket from a transport channel; 상기 데이터 스트림으로부터 추출한 인덱스 버킷에 포함된 상기 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 상기 데이터 버킷을 추출하되, 상기 인덱스 버킷이 상기 인덱스 트리의 비단말노드에 대응되는 경우에는 상기 인덱스 버킷에 포함된 상기 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보에 의하여 파악되는 수신시점에 상기 자식노드에 대응되는 인덱스 버킷을 추출하는 버킷 추출부; 및The data bucket is extracted at a reception point determined by address information of the data bucket included in the index bucket extracted from the data stream, and if the index bucket corresponds to a non-terminal node of the index tree, the data bucket is extracted to the index bucket. A bucket extracting unit for extracting an index bucket corresponding to the child node at a reception point identified by address information of an index bucket corresponding to a child node of the non-terminal node; And 상기 데이터 버킷으로부터 상기 데이터 객체의 위치정보 및 비공간정보를 추출하는 데이터 추출부;를 포함하며,And a data extractor configured to extract positional information and non-spatial information of the data object from the data bucket. 상기 인덱스 트리의 단말노드에 대응되어 생성된 인덱스 버킷은 상기 좌표공간 상에서 서로 인접하는 데이터 객체들의 위치정보, 상기 인접하는 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 상기 인접하는 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어지며,The index bucket generated corresponding to the terminal node of the index tree corresponds to position information of data objects adjacent to each other in the coordinate space, a data code encoding non-spatial information of the adjacent data objects, and the adjacent data objects. Terminal node information including address information of data buckets 상기 인덱스 트리의 비단말노드에 대응되어 생성된 인덱스 버킷은 상기 좌표공간 상에서 하위계층에 존재하는 단말노드에 포함된 데이터 객체들을 포함하도록 설정된 최소경계사각형의 위치정보 및 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함하는 비단말노드정보로 이루어지는 것을 특징으로 하는 데이터 검색장치.The index bucket generated corresponding to the non-terminal node of the index tree is included in the location information of the minimum boundary rectangle and the child node located below the minimum boundary rectangle configured to include data objects included in the terminal node existing in the lower layer in the coordinate space. And non-terminal node information including a node code calculated by a logical sum of the obtained data codes. 제 9항에 있어서,The method of claim 9, 상기 버킷 추출부는 상기 좌표공간에 형성된 상기 최소경계사각형이 사용자로부터 입력받은 질의범위와 교차하고 상기 노드부호와 사용자로부터 입력받은 질의부호의 논리합이 상기 노드부호와 일치하면 상기 노드부호에 대응하는 인덱스 버킷을 추출하며, 상기 데이터 객체의 위치정보가 상기 질의범위에 포함되고 상기 데이터부호와 상기 질의부호가 일치하면 상기 데이터부호에 대응하는 데이터 버킷을 추출하는 것을 특징으로 하는 데이터 검색장치.The bucket extractor indexes a bucket corresponding to the node code when the minimum boundary rectangle formed in the coordinate space intersects the query range received from the user and the logical sum of the node code and the query code input from the user matches the node code. And extracting a data bucket corresponding to the data code when the location information of the data object is included in the query range and the data code matches the query code. 제 9항에 있어서,The method of claim 9, 사용자로부터 입력받은 질의개수와 동일한 개수의 상기 데이터 버킷의 주소정보가 상기 좌표공간에서 상기 각각의 데이터 버킷에 포함되는 데이터 객체와 사용자로부터 입력받은 질의지점 사이의 거리에 대응되어 저장되는 데이터 버킷 저장부; 및Data bucket storage unit for storing the address information of the data bucket of the same number of queries input from the user corresponding to the distance between the data object included in each data bucket in the coordinate space and the query point received from the user ; And 상기 좌표공간에서 상기 데이터 객체와 상기 질의지점 사이의 거리가 상기 데이터 버킷 저장부에 저장된 상기 데이터 객체와 상기 질의지점 사이의 거리 중 최대값보다 작고 상기 데이터부호와 사용자로부터 입력받은 질의부호가 일치하면 상기 데이터부호에 대응하는 데이터 버킷의 주소정보를 상기 데이터 버킷 저장부에 저장하는 제어부;를 더 포함하며,When the distance between the data object and the query point in the coordinate space is smaller than the maximum value between the data object and the query point stored in the data bucket storage unit and the data code matches the query code input from the user And a controller configured to store address information of the data bucket corresponding to the data code, in the data bucket storage unit. 상기 버킷 추출부는 상기 노드부호와 상기 질의부호의 논리합이 상기 노드부호와 일치하면 상기 노드부호에 대응하는 인덱스 버킷을 추출하며, 상기 데이터 버킷 저장부에 저장된 상기 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 상기 데이터 버킷을 추출하는 것을 특징으로 하는 데이터 검색장치.The bucket extractor extracts an index bucket corresponding to the node code when the logical sum of the node code and the query code matches the node code, and is received by the address information of the data bucket stored in the data bucket storage unit. And extracting the data bucket at a point in time. 제 9항 내지 제 11항 중 어느 한 항에 있어서,The method according to any one of claims 9 to 11, 상기 인덱스 버킷이 상기 인덱스 트리의 각 노드를 너비 우선(breath first) 방식으로 순회하여 생성되는 복수의 인덱스 버킷이 순차적으로 배치된 인덱스 버킷 스트림의 처음 부분에 해당하지 않는 경우에는 다음 인덱스 버킷 스트림의 수신 시 점까지 대기하는 것을 특징으로 하는 데이터 검색장치.Receiving the next index bucket stream when the index bucket does not correspond to the first portion of the index bucket stream in which a plurality of index buckets are generated by traversing each node of the index tree in a breadth first manner. A data retrieval apparatus, characterized by waiting until a point in time. 소정의 좌표공간 상에서 복수의 데이터 객체 각각의 위치를 나타내는 위치정보와 상기 데이터 객체의 특성을 나타내는 비공간정보를 포함하는 데이터 버킷 및 상기 데이터 버킷의 주소정보를 포함하는 인덱스 트리의 각 노드에 대응되어 생성된 인덱스 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신하는 데이터 수신단계;Corresponding to each node of the index tree including location information indicating the location of each of the plurality of data objects in the predetermined coordinate space and non-spatial information indicating the characteristics of the data object and address information of the data bucket. Receiving a data stream including a created index bucket from a transmission channel; 상기 데이터 스트림으로부터 추출한 인덱스 버킷에 포함된 상기 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 상기 데이터 버킷을 추출하되, 상기 인덱스 버킷이 상기 인덱스 트리의 비단말노드에 대응되는 경우에는 상기 인덱스 버킷에 포함된 상기 비단말노드의 자식노드에 대응되는 인덱스 버킷의 주소정보에 의하여 파악되는 수신시점에 상기 자식노드에 대응되는 인덱스 버킷을 추출하는 버킷 추출단계; 및The data bucket is extracted at a reception point determined by address information of the data bucket included in the index bucket extracted from the data stream, and if the index bucket corresponds to a non-terminal node of the index tree, the data bucket is extracted to the index bucket. A bucket extraction step of extracting an index bucket corresponding to the child node at a reception point identified by address information of an index bucket corresponding to a child node of the non-terminal node; And 상기 데이터 버킷으로부터 상기 데이터 객체의 위치정보 및 비공간정보를 추출하는 데이터 추출단계;를 포함하며,And a data extraction step of extracting location information and non-spatial information of the data object from the data bucket. 상기 인덱스 트리의 단말노드에 대응되어 생성된 인덱스 버킷은 상기 좌표공간 상에서 서로 인접하는 데이터 객체들의 위치정보, 상기 인접하는 데이터 객체들의 비공간정보를 부호화한 데이터부호 및 상기 인접하는 데이터 객체들에 대응하는 데이터 버킷들의 주소정보를 포함하는 단말노드정보로 이루어지며,The index bucket generated corresponding to the terminal node of the index tree corresponds to position information of data objects adjacent to each other in the coordinate space, a data code encoding non-spatial information of the adjacent data objects, and the adjacent data objects. Terminal node information including address information of data buckets 상기 인덱스 트리의 비단말노드에 대응되어 생성된 인덱스 버킷은 상기 좌표 공간 상에서 하위계층에 존재하는 단말노드에 포함된 데이터 객체들을 포함하도록 설정된 최소경계사각형의 위치정보 및 하위에 위치하는 자식노드에 포함된 데이터부호들의 논리합으로 산출되는 노드부호를 포함하는 비단말노드정보로 이루어지는 것을 특징으로 하는 데이터 검색방법.The index bucket generated corresponding to the non-terminal node of the index tree is included in the location information of the minimum boundary rectangle and the child node positioned below the minimum boundary rectangle configured to include data objects included in the terminal node existing in the lower layer in the coordinate space. And non-terminal node information including a node code calculated by a logical sum of the data codes. 제 13항에 있어서,The method of claim 13, 상기 버킷 추출단계에서, 상기 좌표공간에 형성된 상기 최소경계사각형이 사용자로부터 입력받은 질의범위와 교차하고 상기 노드부호와 사용자로부터 입력받은 질의부호의 논리합이 상기 노드부호와 일치하면 상기 노드부호에 대응하는 인덱스 버킷을 추출하며, 상기 데이터 객체의 위치정보가 상기 질의범위에 포함되고 상기 데이터부호와 상기 질의부호가 일치하면 상기 데이터부호에 대응하는 데이터 버킷을 추출하는 것을 특징으로 하는 데이터 검색방법.In the bucket extracting step, if the minimum boundary rectangle formed in the coordinate space intersects the query range input from the user and the logical sum of the node code and the query code input from the user coincides with the node code, the node code corresponds to the node code. Extracting an index bucket, and extracting a data bucket corresponding to the data code when the location information of the data object is included in the query range and the data code and the query code match. 제 13항에 있어서,The method of claim 13, 사용자로부터 입력받은 질의개수와 동일한 개수의 상기 데이터 버킷의 주소정보를 상기 좌표공간에서 상기 각각의 데이터 버킷에 포함되는 데이터 객체와 사용자로부터 입력받은 질의지점 사이의 거리에 대응하여 데이터 버킷 저장부에 저장하는 저장단계;및Address information of the same number of data buckets as the number of queries input from the user is stored in the data bucket storage corresponding to the distance between the data object included in each data bucket in the coordinate space and the query point received from the user. A storage step; and 상기 좌표공간에서 상기 데이터 객체와 상기 질의지점 사이의 거리가 상기 데이터 버킷 저장부에 저장된 상기 데이터 객체와 상기 질의지점 사이의 거리 중 최대값보다 작고 상기 데이터부호와 사용자로부터 입력받은 질의부호가 일치하면 상기 데이터부호에 대응하는 데이터 버킷의 주소정보를 상기 데이터 버킷 저장부에 저장하는 제어단계;를 더 포함하며,When the distance between the data object and the query point in the coordinate space is smaller than the maximum value between the data object and the query point stored in the data bucket storage unit and the data code matches the query code input from the user And storing the address information of the data bucket corresponding to the data code in the data bucket storage unit. 상기 버킷 추출단계에서, 상기 노드부호와 상기 질의부호의 논리합이 상기 노드부호와 일치하면 상기 노드부호에 대응하는 인덱스 버킷을 추출하며, 상기 데이터 버킷 저장부에 저장된 상기 데이터 버킷의 주소정보에 의하여 파악되는 수신시점에 상기 데이터 버킷을 추출하는 것을 특징으로 하는 데이터 검색방법.In the bucket extracting step, if the logical sum of the node code and the query code matches the node code, the index bucket corresponding to the node code is extracted and identified by the address information of the data bucket stored in the data bucket storage unit. And extracting the data bucket at the time of reception. 제 13항 내지 제 15항 중 어느 한 항에 있어서,The method according to any one of claims 13 to 15, 상기 인덱스 버킷이 상기 인덱스 트리의 각 노드를 너비 우선(breath first) 방식으로 순회하여 생성되는 복수의 인덱스 버킷이 순차적으로 배치된 인덱스 버킷 스트림의 처음 부분에 해당하지 않는 경우에는 다음 인덱스 버킷 스트림의 수신 시점까지 대기하는 것을 특징으로 하는 데이터 검색방법.Receiving the next index bucket stream when the index bucket does not correspond to the first portion of the index bucket stream in which a plurality of index buckets are generated by traversing each node of the index tree in a breadth first manner. A data retrieval method comprising waiting until a point in time. 제 5항 또는 제 6항에 기재된 데이터 생성방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the data generating method according to claim 5 or 6. 제 13항 내지 제 15항 중 어느 한 항에 기재된 데이터 검색방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the data retrieval method according to any one of claims 13 to 15.
KR1020080134641A 2008-12-26 2008-12-26 Apparatus and method for constructing data and apparatus and method for retrieving data including non-spatial information KR100944655B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080134641A KR100944655B1 (en) 2008-12-26 2008-12-26 Apparatus and method for constructing data and apparatus and method for retrieving data including non-spatial information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080134641A KR100944655B1 (en) 2008-12-26 2008-12-26 Apparatus and method for constructing data and apparatus and method for retrieving data including non-spatial information

Publications (1)

Publication Number Publication Date
KR100944655B1 true KR100944655B1 (en) 2010-03-04

Family

ID=42182767

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080134641A KR100944655B1 (en) 2008-12-26 2008-12-26 Apparatus and method for constructing data and apparatus and method for retrieving data including non-spatial information

Country Status (1)

Country Link
KR (1) KR100944655B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990046910A (en) * 1997-12-01 1999-07-05 정선종 Spatial Database Management Apparatus and Method Using Spatial Index of Al * -TIAL on Internet
KR19990079165A (en) * 1998-04-02 1999-11-05 이계철 Spatial Search Method using Spatial Index in Spatial Database System
KR20010109945A (en) * 2000-06-05 2001-12-12 박동주 RS-tree for k-nearest neighbor queries with non spatial selection predicates and method for using it

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990046910A (en) * 1997-12-01 1999-07-05 정선종 Spatial Database Management Apparatus and Method Using Spatial Index of Al * -TIAL on Internet
KR19990079165A (en) * 1998-04-02 1999-11-05 이계철 Spatial Search Method using Spatial Index in Spatial Database System
KR20010109945A (en) * 2000-06-05 2001-12-12 박동주 RS-tree for k-nearest neighbor queries with non spatial selection predicates and method for using it

Similar Documents

Publication Publication Date Title
US8171029B2 (en) Automatic generation of ontologies using word affinities
US7010308B2 (en) Managing and querying moving point data
CN102246172A (en) System and method for distributed index searching of electronic content
WO2013030595A1 (en) Identifying data items
Demiryurek et al. Indexing network voronoi diagrams
US10372736B2 (en) Generating and implementing local search engines over large databases
CN105357247A (en) Multi-dimensional cloud resource interval finding method based on hierarchical cloud peer-to-peer network
CN110928901B (en) Map layer joint query method, device and storage device based on MapServer service protocol
CN102831138B (en) Separate data library searching device and separate data library searching method
Abbasifard et al. Efficient indexing for past and current position of moving objects on road networks
KR100944655B1 (en) Apparatus and method for constructing data and apparatus and method for retrieving data including non-spatial information
CN107291875B (en) Metadata organization management method and system based on metadata graph
Zhang et al. Storing and querying semi-structured spatio-temporal data in hbase
US20080195635A1 (en) Path indexing for network data
Qiao et al. Computing weight constraint reachability in large networks
CN115809248B (en) Data query method and device and storage medium
KR101499842B1 (en) Method and Apparatus for searching for data object
JP6167531B2 (en) Region search method, region index construction method, and region search device
Zhang et al. Research on Multi-Spatial Keyword Fuzzy Query Algorithm in Spatial Data
CN103853796B (en) data insertion method and device
Deng et al. An indexing approach for efficient supporting of continuous spatial approximate keyword queries
CN117194331A (en) Index construction and retrieval method and device supporting hidden query
Cavojsky et al. User Experience Meets GPS Trajectory Search
CN118051648A (en) Method, apparatus, device, medium and program product for retrieving information
Zhao et al. Indexing spatiotemporal trajectory data streams on key-value storage

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
FPAY Annual fee payment

Payment date: 20130111

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140120

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee