KR100963352B1 - Indexing method of trajectory data and apparatus using the method - Google Patents
Indexing method of trajectory data and apparatus using the method Download PDFInfo
- Publication number
- KR100963352B1 KR100963352B1 KR20080034314A KR20080034314A KR100963352B1 KR 100963352 B1 KR100963352 B1 KR 100963352B1 KR 20080034314 A KR20080034314 A KR 20080034314A KR 20080034314 A KR20080034314 A KR 20080034314A KR 100963352 B1 KR100963352 B1 KR 100963352B1
- Authority
- KR
- South Korea
- Prior art keywords
- index
- time
- index structure
- spatial
- line segments
- Prior art date
Links
Images
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
궤적 데이터의 인덱싱 방법 및 그 방법을 이용하는 장치가 제공된다. 본 발명의 인덱싱 장치는 복수의 시간 구간들을 설정하는 시간 구간 설정부, 객체의 이동 정보를 공간 좌표 및 시간 척도를 이용하여 표시하는 시공간 데이터를 포함하는 라인 세그먼트들을, 상기 라인 세그먼트들 각각이 포함되는 시간 구간 - 상기 시간 구간은 상기 설정된 복수의 시간 구간들 중 어느 하나 - 에 따라 구분하는 시간 구간 식별부 및 상기 설정된 복수의 시간 구간들 각각에 포함되는 라인 세그먼트들로부터 상기 설정된 복수의 시간 구간들 각각에 대응하는 인덱스 구조를 생성하는 인덱스 생성부를 포함하며, 이를 통해 대용량 궤적 데이터에 대한 영역 질의를 효과적으로 처리할 수 있다.A method of indexing trajectory data and an apparatus using the method are provided. The indexing apparatus of the present invention includes a time interval setting unit for setting a plurality of time intervals, line segments including spatiotemporal data for displaying movement information of an object using spatial coordinates and a time scale, wherein each of the line segments is included. A time section, wherein the time section is one of the plurality of set time sections, and each of the set time sections from a line segment included in each of the set plurality of time sections It includes an index generator for generating an index structure corresponding to the through, it can effectively process the region query for a large trajectory data.
궤적 데이터, 영역 질의, 인덱싱 방법, 인덱스 Trajectory data, region query, indexing method, index
Description
본 발명은 궤적 데이터(trajectory data)의 인덱싱 방법에 관한 것으로서, 특히 대용량 궤적 데이터에 대한 영역 질의(range query) 성능을 향상시키는 인덱싱 방법 및 그 방법을 이용하는 인덱싱 장치에 관한 것이다.BACKGROUND OF THE
최근 휴대폰 및 개인용 디지털 단말기(portable digital assistant, PDA) 등의 휴대 가능한 이동 단말기의 확산과 통신 기술의 발달로 인하여 이동하는 객체(object)의 시간 흐름에 따른 공간적 위치 정보를 활용하는 다양한 서비스들이 제공되고 있다. 객체의 시간 흐름에 따른 공간적 위치 정보는 시공간 데이터(spatio-temporal data)로 나타내어질 수 있다. 시공간 데이터는 공간 좌표(spatial coordinate) 및 시간 척도(time parameter)를 포함하는 데이터를 의미한다. 예를 들어, 공간 좌표가 (x, y)이고 시간 척도가 t인 경우 시공간 데이터는 (x, y, t)로 나타내어질 수 있다. 2차원 공간 좌표 (x, y)와 시간 척도 t가 결합된 시공간 데이터 (x, y, t)는 3차원의 시공간 상의 한 점을 나타낼 수 있다.Recently, due to the proliferation of portable mobile terminals such as mobile phones and portable digital assistants (PDAs) and the development of communication technologies, various services are provided that utilize spatial location information according to the flow of moving objects. have. The spatial position information according to the time flow of the object may be represented as spatio-temporal data. Spatiotemporal data refers to data including spatial coordinates and time parameters. For example, if the spatial coordinates are (x, y) and the time scale is t, the space-time data may be represented as (x, y, t). Spatio-temporal data (x, y, t) in which two-dimensional space coordinates (x, y) and a time scale t are combined may represent a point in three-dimensional space-time.
객체들의 이동 경로는 시공간 상에서 주어지는 라인 세그먼트(line segment) 들의 집합으로 표현될 수 있으며, 상기 표현된 라인 세그먼트들의 집합을 궤적(trajectory)이라 한다. 시스템은 이동하는 객체들의 궤적 정보에 기초하여 객체들의 위치를 추적할 수 있고, 도로 정보 및 차량 정보와 결합하여 이동 객체의 사용자의 행동 패턴을 파악할 수도 있다. 시스템은 상기 파악된 사용자의 행동 패턴을 비즈니스 마케팅에 이용할 수도 있다.The movement path of the objects may be represented by a set of line segments given in space-time, and the set of line segments represented is called a trajectory. The system may track the location of the objects based on the trajectory information of the moving objects, and may combine the road information and the vehicle information to determine the behavior pattern of the user of the moving object. The system may use the identified user's behavior pattern for business marketing.
이동 객체에 대한 사용자 질의(user query)로는 미래 예측 질의(future query) 및 과거 이력 질의(historical query) 등이 있을 수 있다. 미래 예측 질의는 이동 객체의 미래 위치를 예측하여 검색하는 질의이고, 과거 이력 질의는 이동 객체가 과거에 움직인 위치를 검색하는 질의이다. 미래 예측 질의는 이동 객체의 현재 위치로부터 이동 속도 및 이동 방향을 이용하여 이동 객체의 미래 위치를 예측할 수 있다.User queries for moving objects may include future prediction queries and historical historical queries. The future prediction query is a query for predicting and searching a future position of a moving object, and the past history query is a query for searching for a position in which the moving object has moved in the past. The future prediction query may predict the future position of the moving object using the moving speed and the moving direction from the current position of the moving object.
과거 이력 질의에는 영역 질의(range query), 궤적 질의(trajectory query), 복합 질의(complex query) 등이 있을 수 있다. 영역 질의는 주어진 질의 영역 내에 존재하는 이동 객체를 검색하는 질의이고, 궤적 질의는 주어진 시간 구간 동안에 이동 객체가 움직인 경로를 검색하는 질의이다. 복합 질의는 영역 질의 및 궤적 질의가 결합된 형태로서 주어진 시간 간격 동안 특정 영역에 위치했던 이동 객체의 궤적을 검색하는 질의이다.Historical historical queries may include range queries, trajectory queries, complex queries, and the like. A region query is a query for searching for a moving object existing in a given query region, and a trajectory query is a query for searching for a path that a moving object moves during a given time interval. The compound query is a combination of the region query and the trajectory query, which retrieves the trajectory of the moving object located in the specific region for a given time interval.
본 발명의 인덱싱 방법 및 장치는 대용량 궤적 데이터베이스에서 영역 질의를 효과적으로 처리하는 것을 목적으로 한다.The indexing method and apparatus of the present invention aim to effectively process a region query in a large trajectory database.
본 발명의 인덱싱 방법 및 장치는 최근 시간 구간에 대한 영역 질의에 효과적으로 대응하는 것을 목적으로 한다.An indexing method and apparatus of the present invention aims to effectively respond to an area query for a recent time interval.
본 발명의 인덱싱 방법 및 장치는 이동 객체의 분포의 변화에도 일정한 검색 성능을 제공하는 것을 목적으로 한다.The indexing method and apparatus of the present invention aim to provide a constant search performance even with a change in the distribution of a moving object.
상기의 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 인덱싱 장치는 시간 구간 설정부, 시간 구간 식별부 및 인덱스 생성부를 포함할 수 있다. 상기 시간 구간 설정부는 복수의 시간 구간들을 설정한다. 상기 시간 구간 식별부는 라인 세그먼트들을 상기 라인 세그먼트들 각각이 포함되는 시간 구간에 따라 구분한다. 상기 라인 세그먼트는 객체의 이동 정보를 공간 좌표 및 시간 척도를 이용하여 표시하는 시공간 데이터(spatio-temporal data)를 포함한다. 상기 인덱스 생성부는 상기 설정된 복수의 시간 구간들 각각에 포함되는 라인 세그먼트들로부터 상기 설정된 복수의 시간 구간들 각각에 대응하는 인덱스 구조를 생성한다.In order to achieve the above object, the indexing apparatus according to an embodiment of the present invention may include a time section setter, a time section identifier and an index generator. The time section setting unit sets a plurality of time sections. The time section identification unit classifies the line segments according to a time section in which each of the line segments is included. The line segment includes spatio-temporal data indicating movement information of an object using spatial coordinates and a time scale. The index generator generates an index structure corresponding to each of the set plurality of time intervals from line segments included in each of the set plurality of time intervals.
본 발명의 다른 실시예에 따른 인덱싱 장치는 라인 세그먼트 생성부, 삽입 연산부 및 제어부를 포함할 수 있다. 상기 라인 세그먼트 생성부는 객체의 이동 정보를 공간 좌표 및 시간 척도를 이용하여 표시하는 시공간 데이터를 포함하는 라 인 세그먼트를 생성한다. 상기 삽입 연산부는 상기 생성된 라인 세그먼트를 제1 인덱스 구조에 삽입하고, 상기 삽입된 라인 세그먼트의 시간 척도를 이용하여 상기 제1 인덱스 구조의 시간 척도를 업데이트한다. 상기 제어부는 상기 제1 인덱스 구조에 포함된 라인 세그먼트의 수를 임계치와 비교하여 제2 인덱스 구조를 생성할 지 여부를 결정한다.An indexing apparatus according to another embodiment of the present invention may include a line segment generator, an insert operator, and a controller. The line segment generator generates a line segment including spatiotemporal data displaying object movement information using a spatial coordinate and a time scale. The insertion operator inserts the generated line segment into the first index structure and updates the time scale of the first index structure using the time scale of the inserted line segment. The controller determines whether to generate a second index structure by comparing the number of line segments included in the first index structure with a threshold.
본 발명의 또 다른 실시예에 따른 인덱싱 방법은 복수의 시간 구간들을 설정하는 단계, 객체의 이동 정보를 공간 좌표 및 시간 척도를 이용하여 표시하는 시공간 데이터를 포함하는 라인 세그먼트들을 생성하는 단계, 상기 생성된 라인 세그먼트들을, 상기 생성된 라인 세그먼트들 각각이 포함되는 시간 구간 - 상기 시간 구간은 상기 설정된 복수의 시간 구간들 중 어느 하나 - 에 따라 구분하는 단계 및 상기 설정된 복수의 시간 구간들 각각에 포함되는 라인 세그먼트들로부터 상기 설정된 복수의 시간 구간들 각각에 대응하는 인덱스 구조를 생성하는 단계를 포함할 수 있다.An indexing method according to another embodiment of the present invention comprises the steps of: setting a plurality of time intervals, generating line segments including space-time data displaying the movement information of an object using a spatial coordinate and a time scale; And classifying the line segments according to each of the generated line segments, wherein the time intervals are included in each of the set plurality of time intervals. The method may include generating an index structure corresponding to each of the set plurality of time intervals from line segments.
본 발명의 또 다른 실시예에 따른 인덱싱 방법은 객체의 이동 정보를 공간 좌표 및 시간 척도를 이용하여 표시하는 시공간 데이터를 포함하는 라인 세그먼트를 생성하는 단계, 상기 생성된 라인 세그먼트를 제1 인덱스 구조에 삽입하는 단계, 상기 삽입된 라인 세그먼트의 시간 척도를 이용하여 상기 제1 인덱스 구조의 시간 척도를 업데이트하는 단계 및 상기 제1 인덱스 구조에 포함된 라인 세그먼트의 수를 임계치와 비교하여 제2 인덱스 구조를 생성할 지 여부를 결정하는 단계를 포함할 수 있다.An indexing method according to another embodiment of the present invention includes generating a line segment including spatiotemporal data indicating movement information of an object using a spatial coordinate and a time scale, and converting the generated line segment into a first index structure. Inserting, updating a time scale of the first index structure by using the time scale of the inserted line segment, and comparing the number of line segments included in the first index structure with a threshold to obtain a second index structure. Determining whether to generate.
본 발명의 인덱싱 방법 및 장치에 따르면 대용량 궤적 데이터베이스에서 영역 질의를 효과적으로 처리할 수 있다.According to the indexing method and apparatus of the present invention, an area query can be efficiently processed in a large trajectory database.
본 발명의 인덱싱 방법 및 장치는 복수의 시간 구간을 설정함으로써 최근 시간 구간에 대한 영역 질의에 효과적으로 대응할 수 있다.The indexing method and apparatus of the present invention can effectively respond to an area query for a recent time interval by setting a plurality of time intervals.
본 발명의 인덱싱 방법 및 장치는 설정된 공간을 분할하고, 분할된 공간에 이동 객체의 수가 균등하게 분포되도록 함으로써 이동 객체의 분포의 변화에도 일정한 검색 성능을 제공할 수 있다.The indexing method and apparatus of the present invention can provide a constant search performance even by a change in the distribution of the moving object by dividing the set space and allowing the number of moving objects to be equally distributed in the divided space.
이하에서, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in detail. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.
본 명세서에서 설명되는 시공간 데이터(spatio-temporal data)는 2차원 공간, 즉 평면 상의 이동 및 시간 경과를 기술하는 경우를 예로 들어 설명된다. 그러나 해당 분야의 지식을 갖춘 종사자라면 본 명세서 상의 설명으로부터 보다 높은 차원으로 확장되는 경우 또는 보다 낮은 차원에 적용되는 경우의 인덱싱 방법 및 시스템에 대해서 용이하게 유추할 수 있을 것이다.Spatio-temporal data described herein is described by taking an example of describing a two-dimensional space, i.e., a movement on a plane and a time course. However, those skilled in the art will readily be able to deduce from the description herein the indexing method and system when extended to a higher level or applied to a lower level.
2차원 공간 및 시간 차원을 나타내는 시공간 데이터는 (x, y, t)의 3차원 데이터로 나타내어진다. 일반적으로, L차원 공간 및 시간 차원을 나타내는 시공간 데이터는 (L+1) 차원 시공간 데이터로 나타내어진다.Spatio-temporal data representing two-dimensional space and time dimensions are represented by three-dimensional data of (x, y, t). In general, spatiotemporal data representing an L-dimensional space and a temporal dimension is represented by (L + 1) -dimensional spatiotemporal data.
도 1은 본 발명의 일 실시예에 따른 인덱싱 방법에서 이용되는 인덱스 구조를 도시하는 도면이다.1 is a diagram illustrating an index structure used in an indexing method according to an embodiment of the present invention.
도 1을 참조하면, 시간 인덱스 테이블(100)은 시간 구간들 각각에 대한 인덱스의 구성 정보를 저장한다. 시간 인덱스 테이블(100)은 시간 구간 t0(101)에 대하여 인덱스 I0(110)의 구성 정보를 저장하고, 시간 구간 t1(102)에 대하여 인덱스 I1(120)의 구성 정보를 저장한다. 시간 인덱스 테이블에 저장되는 정보는 각 인덱스가 메인 메모리 또는 스토리지 장치에 저장되는 경우에 메인 메모리 또는 스토리지 장치 상의 위치 정보를 포함할 수 있다.Referring to FIG. 1, the time index table 100 stores configuration information of an index for each time period. The time index table 100 stores the configuration information of the index I 0 110 for the
시간 구간 t0(101)에 대응하는 인덱스 I0(110)는 2차원 공간 상의 객체의 이동을 나타내는 궤적(trajectory)을 포함한다. 이 때, 인덱싱 방법은 x와 y로 표시되는 2차원 공간을 m개의 서브 공간 영역(또는 셀 영역)으로 분할할 수 있다. 인덱스 I0(110)가 나타내는 2차원 공간은 4개의 서브 공간 영역으로 분할되며, 각 서브 공간 영역은 대응하는 인덱스 구조(111, 112, 113, 114)를 가진다.The index I 0 110 corresponding to the
인덱스 I0(110) 또는 인덱스 I1(120)는 2차원 트리 구조 또는 해시 테이블(hash table)로 구현될 수 있다. 인덱스 I0(110) 또는 인덱스 I1(120)는 시공간 데이터 (x, y, t)에 대응하는 서브 공간 영역 내에 존재하는 라인 세그먼트들로 구축된 3차원 R* 트리 인덱스의 저장 위치를 엔트리로 가질 수 있다. 3차원 R* 트리는 서브 공간 영역 내의 라인 세그먼트들에 대한 궤적 식별자와 세그먼트 식별자를 엔트리로 가질 수 있다.Index I 0 110 or index I 1 120 may be implemented as a two-dimensional tree structure or a hash table. Index I 0 (110) or index I 1 (120) is an entry of a storage location of a three-dimensional R * tree index constructed of line segments existing in a subspace region corresponding to space-time data (x, y, t). Can have The 3D R * tree may have a trajectory identifier and a segment identifier for the line segments in the subspace region as entries.
인덱스 I0(110) 또는 인덱스 I1(120)는 k개의 라인 세그먼트들을 포함할 수 있다. 이동 객체의 궤적을 구성하는 라인 세그먼트들은 수집된 시간 순서대로 인덱스 구조에 삽입될 수 있다. 인덱스 I0(110)에 k개의 라인 세그먼트들이 삽입된 후에 인덱싱 방법은 다음 인덱스 I1(120)를 생성하고, 추가로 수집되는 라인 세그먼트들을 인덱스 I1(120)에 삽입할 수 있다. 마찬가지 방법으로 시간 구간 tn -1(103)에 대응하는 인덱스 구조 In -1(130)에 k개의 라인 세그먼트들이 삽입된 후에 인덱싱 방법은 다음 인덱스 시간 구간 tn(104)에 대응하는 인덱스 구조 In(140)를 생성할 수 있다. 인덱싱 방법은 이와 같은 방법으로 시간 구간들 각각에 대응하는 인덱스 구조를 생성할 수 있다.Index I 0 110 or index I 1 120 may include k line segments. The line segments constituting the trajectory of the moving object may be inserted into the index structure in the collected time order. After k line segments are inserted at index I 0 110, the indexing method may create the next index I 1 120 and insert the additionally collected line segments at index I 1 120. Similarly, after k line segments are inserted in the index structure I n -1 130 corresponding to the time interval t n -1 (103), the indexing method performs the index structure corresponding to the next index time interval t n (104). I n 140 may be generated. In this manner, the indexing method may generate an index structure corresponding to each of the time intervals.
인덱싱 방법은 라인 세그먼트들을 시간에 따라 분류하고, 시간 구간들 각각에 포함되는 라인 세그먼트들을 다시 공간에 따라 분류할 수 있다. 인덱싱 방법은 최상위 계층에서 시간에 따라 라인 세그먼트들을 분류함으로써 현재 이동 중인 객체에 대한 라인 세그먼트는 마지막 시간 구간에 대응하는 인덱스 구조에 삽입될 수 있다.The indexing method may classify the line segments according to time and classify the line segments included in each of the time intervals according to space. The indexing method classifies the line segments according to time in the uppermost layer, so that the line segments for the currently moving object may be inserted into the index structure corresponding to the last time interval.
일반적으로 영역 질의의 검색 대상이 되는 라인 세그먼트는 현재 수집되는 라인 세그먼트 또는 최근에 처리가 완료된 라인 세그먼트일 가능성이 높다. 본 발명의 실시예들에 따른 인덱싱 방법은 마지막 시간 구간에 대응하는 인덱스 구조에 대한 접근을 용이하게 함으로써 영역 질의에 대한 검색 비용을 줄일 수 있다. 또한 본 발명의 실시예들에 따른 인덱싱 방법은 수집되는 라인 세그먼트들을 시간에 따라 분류하고 다시 이를 공간(서브 공간 영역)에 따라 분류함으로써 영역 질의에 대하여 검색된 라인 세그먼트들 중에서 중복되는 정보를 여과하는 비용을 최소화하거나 제거할 수 있다.In general, the line segment to be searched for the region query is likely to be the currently collected line segment or the recently processed line segment. The indexing method according to embodiments of the present invention can reduce the search cost for the region query by facilitating access to the index structure corresponding to the last time interval. In addition, the indexing method according to the embodiments of the present invention classifies the collected line segments according to time and then classifies them according to space (sub-space area) to filter the overlapping information among the line segments searched for the area query. Can be minimized or eliminated.
인덱싱 방법은, 삽입 연산이 접근할 수 있는 마지막 시간 구간 tn(104)에 대응하는 인덱스 구조 In(140)를 메인 메모리(도시되지 않음)에 저장하고 인덱스 구조 In(140)를 제외한 나머지 인덱스 구조들은 스토리지 장치(도시되지 않음)에 저장할 수 있다. 일반적으로 메인 메모리에 대한 접근 시간은 스토리지 장치에 대한 접근 시간보다 작으므로 인덱싱 방법은 마지막 시간 구간 tn(104)에 대응하는 인덱스 구조 In(140)에 대한 검색을 신속하게 수행할 수 있다. 영역 질의의 검색 대상이 되는 라인 세그먼트는 마지막 시간 구간 tn(104)에 포함될 가능성이 높으므로 인덱싱 방법은 영역 질의의 검색 시간을 단축할 수 있다.The indexing method stores the index structure I n 140 corresponding to the last
인덱싱 방법은 메인 메모리의 크기에 기초하여 인덱스 구조 In(140)이 저장할 수 있는 라인 세그먼트의 수 k를 결정할 수 있다. 인덱싱 방법은 인덱스 구조 In(140)이 나타내는 2차원 공간을 m개의 서브 공간 영역으로 분할할 수 있다. 인덱스 구조 In(140)는 시공간 데이터 (x, y, t)에 대응하는 서브 공간 영역 내에 존재 하는 라인 세그먼트들로 구축된 3차원 R* 트리 인덱스의 저장 위치를 엔트리로 가질 수 있고, 각 서브 공간 마다 서브 인덱스를 가지는 다중 인덱스 구조(multilevel multiple indices)이다. 인덱싱 방법은, 분할된 각 서브 공간 영역은 (k/m) 개의 라인 세그먼트를 저장할 수 있도록 하는 비균일 공간 영역 분할(셀 영역 분할)을 지원한다. 이 때 인덱싱 방법은 전체 공간 영역에 대한 분할 정보를 2차원 트리 구조를 이용하여 관리할 수 있다.The indexing method may determine the number k of line segments that the index structure I n 140 can store based on the size of the main memory. The indexing method may divide the two-dimensional space represented by the index structure I n 140 into m subspace regions. The index structure I n 140 may have, as an entry, a storage location of a three-dimensional R * tree index constructed from line segments existing in a subspace region corresponding to space-time data (x, y, t), and each sub It is a multilevel multiple indices with sub-indexes for each space. The indexing method supports non-uniform spatial region partitioning (cell region partitioning) in which each divided subspace region can store (k / m) line segments. In this case, the indexing method may manage partitioning information for the entire spatial region using a two-dimensional tree structure.
인덱싱 방법은 각 서브 공간 영역에 포함되는 라인 세그먼트들의 수가 균일하도록 공간 영역을 서브 공간 영역으로 분할함으로써 특정 공간 영역에 이동 객체가 집중되는 경우에도 서브 공간 영역마다 검색 부하를 균등하게 배분할 수 있다.The indexing method divides the space area into subspace areas so that the number of line segments included in each subspace area is uniform, so that even if a moving object is concentrated in a specific space area, the search load can be evenly distributed for each subspace area.
인덱싱 방법은 분할된 서브 공간 영역마다 상대적으로 작은 크기를 가지는 3차원 R 트리를 생성할 수 있다. 인덱싱 방법은 상기 생성된 3차원 R 트리를 이용하여 서브 공간 영역 각각에 대한 검색 성능을 향상시킬 수 있다.The indexing method may generate a 3D R tree having a relatively small size for each divided subspace region. The indexing method may improve search performance for each subspace region by using the generated 3D R tree.
인덱싱 방법의 삽입 연산은 다음과 같이 수행될 수 있다. 삽입 연산은 수집된 라인 세그먼트를 마지막 시간 구간 tn(104)에 대응하는 인덱스 구조 In(140)에 삽입할 수 있다. 인덱싱 방법은 인덱스 구조 In(140)에 대해서는 삽입 연산 및 검색 연산을 수행할 수 있다.An insert operation of the indexing method may be performed as follows. The insert operation may insert the collected line segments into the index structure I n 140 corresponding to the last
인덱싱 방법은 마지막 시간 구간 tn(104)에 대응하는 인덱스 구조 In(140)를 제외한 나머지 인덱스 구조들에 대해서는 삽입 연산을 수행하지 않을 수 있다. 인덱싱 방법은 상기 나머지 인덱스 구조들에 대해서는 검색 연산을 수행할 수 있다.The indexing method may not perform an insert operation on the remaining index structures except for the index structure I n 140 corresponding to the last
삽입 연산은 라인 세그먼트 및 인덱스 구조에 저장될 수 있는 라인 세그먼트의 최대 개수 k를 입력 받을 수 있다. 삽입 연산은 3차원 R* 트리 구조를 이용하여 구성되는 현재 인덱스 current-index 및 이전 인덱스 prev-index를 출력하고, 공간 분할 정보를 관리하는 2차원 트리 구조 및 시간 인덱스 테이블(100)을 출력할 수 있다. 삽입 연산의 초기화 과정은 새로운 인덱스 구조를 current-index로서 생성할 수 있다.The insert operation may receive a maximum number k of line segments that can be stored in the line segment and the index structure. The insert operation may output a current index current-index and a previous index prev-index constructed using a three-dimensional R * tree structure, and output a two-dimensional tree structure and a time index table 100 managing spatial partition information. have. The initialization process of the insert operation can create a new index structure as current-index.
current-index 내의 라인 세그먼트의 수가 k보다 작으면 인덱싱 방법은 라인 세그먼트를 current-index에 삽입할 수 있다. 삽입 연산은 현재 시간 구간의 최소 시간 및 최대 시간 정보를 유지하기 위해 이동 객체의 라인 세그먼트의 시간 정보를 이용할 수 있다. 삽입 연산은 상기 이동 객체의 라인 세그먼트의 시간 정보를 이용하여 현재 시간 구간의 최대 시간 정보를 갱신할 수 있다. 삽입 연산은 상기 이동 객체의 라인 세그먼트를 current-index에 할당된 저장 영역에 저장하고, current-index 내의 라인 세그먼트의 수를 1만큼 증가시킬 수 있다.If the number of line segments in the current-index is less than k, the indexing method may insert the line segments into the current-index. The insert operation may use the time information of the line segment of the moving object to maintain the minimum time and the maximum time information of the current time interval. The insertion operation may update the maximum time information of the current time interval by using the time information of the line segment of the moving object. The insert operation may store the line segments of the moving object in the storage area allocated to the current-index and increase the number of line segments in the current-index by one.
current-index 내의 라인 세그먼트의 수가 k보다 크거나 같고 n이 2보다 크면 인덱싱 방법은 메인 메모리 상의 current-index를 prev-index로서 스토리지 장치에 저장하고, 새로운 인덱스 구조를 current-index로서 생성할 수 있다.If the number of line segments in the current-index is greater than or equal to k and n is greater than 2, the indexing method may store the current-index on main memory as a prev-index on the storage device and create a new index structure as the current-index. .
인덱싱 방법은 새로운 current-index에 대응하는 공간 영역을 m개의 셀 영역으로 분할하고, 상기 분할된 셀 영역 각각에 대하여 대한 정보를 2차원 트리에 저장할 수 있다. 인덱싱 방법은 시간 인덱스 테이블(100)의 엔트리에 2차원 트리에 삽입된 라인 세그먼트들의 최소 시간 및 최대 시간을 저장할 수 있다. 이 때 인덱 싱 방법은 상기 2차원 트리가 저장된 스토리지 장치 또는 메인 메모리 내의 주소 정보를 저장할 수 있다.The indexing method may divide a spatial region corresponding to a new current-index into m cell regions, and store information about each of the divided cell regions in a two-dimensional tree. The indexing method may store the minimum time and the maximum time of the line segments inserted into the two-dimensional tree in an entry of the time index table 100. In this case, the indexing method may store address information in the storage device or the main memory in which the 2D tree is stored.
인덱싱 방법은 새로운 current-index의 셀 영역 각각에 대하여 3차원 R* 트리를 생성하고, 상기 생성된 3차원 R* 트리에 라인 세그먼트를 저장할 수 있다.The indexing method may generate a 3D R * tree for each cell region of the new current-index and store line segments in the generated 3D R * tree.
도 2는 도 1의 시간 인덱스 테이블(100)을 이용하는 인덱싱 방법의 일 예를 도시하는 동작 흐름도이다.2 is an operation flowchart illustrating an example of an indexing method using the time index table 100 of FIG. 1.
도 2를 참조하면, 인덱싱 방법은 객체의 이동 정보를 공간 좌표 및 시간 척도(time parameter)를 이용하여 표시하는 시공간 데이터(spatio-temporal data)를 포함하는 라인 세그먼트를 생성한다(S210).Referring to FIG. 2, the indexing method generates a line segment including spatio-temporal data that displays movement information of an object using spatial coordinates and a time parameter (S210).
인덱싱 방법은 상기 생성된 라인 세그먼트를 인덱스 구조에 삽입한다(S220).The indexing method inserts the generated line segment into the index structure (S220).
인덱싱 방법은 상기 삽입된 라인 세그먼트의 시간 척도를 이용하여 상기 인덱스 구조의 시간 척도를 업데이트한다(S230).The indexing method updates the time scale of the index structure by using the time scale of the inserted line segment (S230).
인덱싱 방법은 상기 인덱스 구조에 포함된 라인 세그먼트의 수를 임계치 k와 비교한다(S240). 인덱싱 방법은 상기 인덱스 구조에 포함된 라인 세그먼트의 수가 k보다 작은지 여부를 판정할 수 있다. 인덱싱 방법은 단계(S240)의 비교 결과를 이용하여 새로운 인덱스 구조를 생성할 지 여부를 결정할 수 있다.The indexing method compares the number of line segments included in the index structure with a threshold k (S240). The indexing method may determine whether the number of line segments included in the index structure is less than k. The indexing method may determine whether to generate a new index structure using the comparison result of step S240.
인덱싱 방법은 상기 인덱스 구조에 포함된 라인 세그먼트의 수가 k보다 작으면 단계(S210)를 다시 수행한다.If the number of line segments included in the index structure is less than k, the indexing method performs step S210 again.
인덱싱 방법은 상기 인덱스 구조에 포함된 라인 세그먼트의 수가 k보다 크거나 같으면 인덱스 구조를 스토리지 장치에 저장한다(S250).The indexing method stores the index structure in the storage device when the number of line segments included in the index structure is greater than or equal to k (S250).
인덱싱 방법은 스토리지 장치에 저장된 인덱스 구조에 대신하여 새로운 인덱스 구조를 생성한다(S260). 인덱싱 방법은 새로운 인덱스 구조를 메인 메모리에 저장할 수 있다.The indexing method generates a new index structure instead of the index structure stored in the storage device (S260). The indexing method can store the new index structure in main memory.
인덱싱 방법은 새로운 인덱스 구조가 생성되면 상기 새로운 인덱스 구조에 단계(S220)에서 생성되는 라인 세그먼트를 삽입할 수 있다.The indexing method may insert the line segment generated in operation S220 into the new index structure when the new index structure is created.
인덱싱 방법은 메인 메모리의 크기에 기초하여 상기 임계치 k를 설정할 수 있다. 인덱싱 방법은 공간 좌표에 의하여 표현되는 전체 공간을 복수의 공간 셀들로 분할할 수 있다. 인덱싱 방법은 새로운 인덱스 구조가 상기 분할된 공간 셀들 각각에 대응하는 서브 인덱스를 포함하도록 상기 새로운 인덱스 구조를 생성할 수 있다.The indexing method may set the threshold k based on the size of the main memory. The indexing method may divide the entire space represented by the spatial coordinates into a plurality of spatial cells. The indexing method may generate the new index structure such that the new index structure includes a sub index corresponding to each of the divided spatial cells.
도 3은 본 발명의 다른 실시예에 따른 인덱싱 방법을 도시하는 동작 흐름도이다.3 is an operational flowchart illustrating an indexing method according to another embodiment of the present invention.
도 3을 참조하면, 인덱싱 방법은 복수의 시간 구간들을 설정한다(S310).Referring to FIG. 3, the indexing method sets a plurality of time intervals (S310).
인덱싱 방법은 객체의 이동 정보를 공간 좌표 및 시간 척도를 이용하여 표시하는 시공간 데이터를 포함하는 라인 세그먼트들을 생성한다(S320).The indexing method generates line segments including spatiotemporal data for displaying movement information of an object using spatial coordinates and a time scale (S320).
인덱싱 방법은 상기 생성된 라인 세그먼트들을, 상기 생성된 라인 세그먼트들 각각이 포함되는 시간 구간에 따라 구분한다(S330). 이 때 상기 시간 구간은 단계(S310)에서 설정된 복수의 시간 구간들 중 어느 하나이다.The indexing method divides the generated line segments according to a time interval in which each of the generated line segments is included (S330). At this time, the time interval is any one of the plurality of time intervals set in step S310.
인덱싱 방법은 상기 설정된 복수의 시간 구간들 각각에 포함되는 라인 세그먼트들로부터 상기 설정된 복수의 시간 구간들 각각에 대응하는 인덱스 구조를 생 성한다(S340).The indexing method generates an index structure corresponding to each of the set plurality of time intervals from line segments included in each of the set plurality of time intervals (S340).
예를 들어 단계(S310)에서 인덱싱 방법은 제1 시간 구간, 제2 시간 구간 및 제3 시간 구간을 설정할 수 있다.For example, in step S310, the indexing method may set a first time interval, a second time interval, and a third time interval.
인덱싱 방법은 생성된 라인 세그먼트들 각각의 시간 척도에 기초하여 라인 세그먼트들 각각이 상기 제1 시간 구간, 상기 제2 시간 구간 또는 상기 제3 시간 중 어느 시간 구간에 포함되는지 판단할 수 있다(S330). 인덱싱 방법은 상기 제1 시간 구간에 포함되는 라인 세그먼트들을 수집하여 상기 제1 시간 구간에 대응하는 인덱스 구조를 생성할 수 있다(S340). 마찬가지로 인덱싱 방법은 상기 제2 시간 구간에 포함되는 라인 세그먼트들을 수집하여 상기 제1 시간 구간에 대응하는 인덱스 구조를 생성할 수 있다(S340).The indexing method may determine whether each of the line segments is included in the first time interval, the second time interval, or the third time interval based on the time scale of each of the generated line segments (S330). . The indexing method may generate an index structure corresponding to the first time interval by collecting line segments included in the first time interval (S340). Similarly, the indexing method may generate an index structure corresponding to the first time interval by collecting line segments included in the second time interval (S340).
인덱싱 방법은 상기 설정된 복수의 시간 구간들 중 현재 시간에 가장 가까운 시간 구간을 제1 시간 구간으로 설정하고, 상기 제1 시간 구간에 대응하는 인덱스 구조를 메인 메모리에 저장할 수 있다. 메인 메모리는 스토리지 장치에 비해 짧은 접근 시간을 가지므로 인덱싱 방법은 현재 시간에 가장 가까운 상기 제1 시간 구간에 대응하는 인덱스 구조에 대한 영역 질의 검색 시간을 단축할 수 있다.The indexing method may set a time interval closest to a current time among the set time intervals as a first time interval, and store an index structure corresponding to the first time interval in a main memory. Since the main memory has a shorter access time than the storage device, the indexing method may shorten the area query search time for the index structure corresponding to the first time interval closest to the current time.
인덱싱 방법은 상기 제1 시간 구간을 제외한 상기 제2 시간 구간에 대응하는 인덱스 구조 및 상기 제3 시간 구간에 대응하는 인덱스 구조를 스토리지 장치에 저장할 수 있다. 인덱싱 방법은 추가적으로 생성되는 라인 세그먼트를 상기 제1 시간 구간에 삽입할 수 있다. 인덱싱 방법은 상기 추가적으로 생성되는 라인 세그먼트를 상기 제1 시간 구간에 대응하는 인덱스 구조를 제외한 나머지 인덱스 구조에 는 삽입하지 않을 수 있다.The indexing method may store an index structure corresponding to the second time interval except the first time interval and an index structure corresponding to the third time interval in a storage device. The indexing method may insert the additionally generated line segment in the first time interval. The indexing method may not insert the additionally generated line segment into the remaining index structure except for the index structure corresponding to the first time interval.
도 8은 상기 도 3의 단계(S340)의 일 예를 보다 상세히 도시하는 동작 흐름도이다.8 is a flowchart illustrating an example of step S340 of FIG. 3 in more detail.
도 8을 참조하면, 인덱싱 방법은 공간 좌표에 의하여 표현되는 전체 공간을 복수의 공간 셀들로 분할한다(S810).Referring to FIG. 8, the indexing method divides the entire space represented by the spatial coordinates into a plurality of spatial cells (S810).
인덱싱 방법은 상기 분할된 공간 셀들 각각에 대응하는 서브 인덱스를 생성한다(S820).The indexing method generates a sub index corresponding to each of the divided spatial cells (S820).
인덱싱 방법은 상기 생성된 서브 인덱스를 포함하는 인덱스 구조를 생성한다(S830). 이 때 상기 생성된 서브 인덱스 구조는 3차원 시공간 데이터 (x, y, t)를 저장하기 위한 3차원 R* 트리 구조일 수 있다. 상기 생성된 인덱스 구조는 상기 공간 셀들의 분할 정보를 포함하는 2차원 트리 구조일 수 있다.The indexing method generates an index structure including the generated sub index (S830). In this case, the generated sub-index structure may be a three-dimensional R * tree structure for storing three-dimensional space-time data (x, y, t). The generated index structure may be a two-dimensional tree structure including partition information of the spatial cells.
인덱싱 방법은, 단계(S810)에서, 상기 복수의 공간 셀들 각각이 동일하거나 거의 동일한 개수의 라인 세그먼트들을 포함하도록 상기 전체 공간을 상기 복수의 공간 셀들로 분할할 수 있다. 이 때 인덱싱 방법은 상기 복수의 공간 셀들 각각이 동일하거나 거의 동일한 개수의 라인 세그먼트들을 포함하도록 함으로써 영역 질의 검색 시 특정 공간 셀에 대한 계산 부하의 집중을 방지할 수 있다.In the indexing method, in operation S810, the entire space may be divided into the plurality of space cells such that each of the plurality of space cells includes the same or nearly the same number of line segments. In this case, the indexing method may prevent concentration of computational load on a specific spatial cell during a region query search by allowing each of the plurality of spatial cells to include the same or nearly the same number of line segments.
도 7은 도 2 또는 도 3의 인덱싱 방법에 의하여 생성된 인덱스 구조에 대한 검색 방법을 도시하는 동작 흐름도이다.7 is a flowchart illustrating a search method for an index structure generated by the indexing method of FIG. 2 or 3.
도 7을 참조하면, 검색 방법은 입력 받은 질의의 시간 구간에 포함되는 시간 구간들에 대응하는 인덱스 구조를 선택한다(S710).Referring to FIG. 7, the search method selects an index structure corresponding to time intervals included in a time interval of an input query (S710).
검색 방법은 상기 선택된 인덱스 구조로부터 상기 질의의 공간 영역에 중첩되는 공간 좌표를 가지는 라인 세그먼트들을 검색한다(S720).The search method searches for line segments having spatial coordinates overlapping the spatial region of the query from the selected index structure (S720).
검색 방법은 도 2 또는 도 3의 인덱싱 방법에 의하여 생성된 인덱스 구조에 대한 영역 질의 검색을 수행할 수 있다. 검색 방법의 검색 대상이 되는 인덱스 구조는 마지막 시간 구간 tn에 대응하는 current-index, 시간 구간 tn -1에 대응하는 prev-index, 시간 구간 t0부터 시간 구간 tn -2의 시간 구간들에 대응하는 disk-index일 수 있다. 상기 인덱스 구조 current-index, prev-index 및 disk-index는 3차원 R* 트리 구조를 이용하여 구현될 수 있고, 상기 인덱스 구조 current-index, prev-index 및 disk-index의 시간 구간에 대한 정보는 시간 인덱스 테이블에 저장될 수 있다.The search method may perform a region query search on the index structure generated by the indexing method of FIG. 2 or 3. The index structure to be searched for the search method is current-index corresponding to the last time interval t n , prev-index corresponding to time interval t n -1 , and time intervals from time interval t 0 to time interval t n -2 . May be a disk-index corresponding to. The index structures current-index, prev-index, and disk-index may be implemented using a three-dimensional R * tree structure, and information about time intervals of the index structures current-index, prev-index, and disk-index may be used. Can be stored in a time index table.
상기 인덱스 구조는 2차원 공간 영역을 나타내는 공간 좌표를 포함할 수 있다. 각 인덱스 구조는 2차원 공간 영역을 분할한 셀 영역에 대응하는 서브 인덱스를 포함할 수 있고, 각 서브 인덱스는 공간 분할 정보를 저장하는 2차원 트리일 수 있다.The index structure may include spatial coordinates representing a two-dimensional space region. Each index structure may include a sub-index corresponding to a cell area obtained by dividing the two-dimensional space region, and each sub-index may be a two-dimensional tree storing spatial partition information.
검색 방법은 상기 인덱스 구조, 시간 인덱스 테이블, 서브 인덱스 및 질의 Q를 입력 받을 수 있다. 검색 방법은 상기 입력에 응답하여 질의 Q를 만족하는 결과 집합 A를 출력할 수 있다.The search method may receive the index structure, the time index table, the sub index, and the query Q. The search method may output a result set A that satisfies the query Q in response to the input.
검색 방법은 시간 인덱스 테이블로부터 주어진 질의 Q의 시간 구간에 포함되는 2차원 트리를 선택할 수 있다. 검색 방법은 질의 Q의 시간 구간이 prev-index 의 시간 구간에 대응하면 메인 메모리에 저장된 prev-index를 검색할 수 있고, 질의 Q의 시간 구간이 current-index의 시간 구간에 대응하면 current-index를 검색할 수 있다.The search method may select a two-dimensional tree included in a time interval of a given query Q from the time index table. The search method may search for the prev-index stored in the main memory if the time section of the query Q corresponds to the time section of the prev-index, and the current-index if the time section of the query Q corresponds to the time section of the current-index. You can search.
검색 방법은 질의 Q의 시간 구간이 prev-index의 시간 구간의 최소 시간보다 작으면 상기 선택된 2차원 트리에서 질의 Q의 공간 영역과 중첩되는 셀 영역을 검색할 수 있다. 검색 방법은 상기 검색된 셀 영역에 대응하는 disk-index를 검색할 수 있다. 질의 Q의 공간 영역과 중첩되는 셀 영역이 복수인 경우, 검색 방법은 상기 검색된 셀 영역 각각에 대하여 상기 검색 과정을 수행할 수 있다.The search method may search a cell region overlapping the spatial region of the query Q in the selected two-dimensional tree when the time interval of the query Q is smaller than the minimum time of the time interval of the prev-index. The search method may search a disk-index corresponding to the searched cell area. When there are a plurality of cell regions overlapping the spatial regions of the query Q, the searching method may perform the searching process on each of the found cell regions.
도 4는 도 3의 인덱싱 방법을 수행하는 인덱싱 장치(400)의 일 예를 도시하는 블록도이다.4 is a block diagram illustrating an example of an
도 4를 참조하면, 인덱싱 장치(400)는 시간 구간 설정부(410), 시간 구간 식별부(420), 인덱스 생성부(430)를 포함한다.Referring to FIG. 4, the
시간 구간 설정부(410)는 복수의 시간 구간들을 설정한다.The time
시간 구간 식별부(420)는 라인 세그먼트들을, 상기 라인 세그먼트들 각각이 포함되는 시간 구간에 따라 구분한다. 라인 세그먼트들 각각은 객체의 이동 정보를 공간 좌표 및 시간 척도를 이용하여 표시하는 시공간 데이터를 포함할 수 있다. 시간 구간은 상기 설정된 복수의 시간 구간들 중 어느 하나일 수 있다.The time
인덱스 생성부(430)는 상기 설정된 복수의 시간 구간들 각각에 포함되는 라인 세그먼트들로부터 상기 설정된 복수의 시간 구간들 각각에 대응하는 인덱스 구조를 생성한다. 인덱스 생성부(430)는 상기 설정된 복수의 시간 구간들에 따라 구 분된 라인 세그먼트들을 상기 설정된 복수의 시간 구간들 별로 분류할 수 있다. 인덱스 생성부(430)는 상기 설정된 복수의 시간 구간들 각각에 대하여 분류된 라인 세그먼트들을 수집하고, 상기 수집된 라인 세그먼트들로부터 인덱스 구조를 생성할 수 있다.The
도 5는 도 3의 인덱싱 방법을 수행하는 인덱싱 장치(500)의 다른 예를 도시하는 블록도이다.FIG. 5 is a block diagram illustrating another example of the
도 5를 참조하면, 인덱싱 장치(500)는 시간 구간 설정부(510), 시간 구간 식별부(520), 인덱스 생성부(530), 제1 제어부(540) 및 제2 제어부(550)를 포함한다.Referring to FIG. 5, the
시간 구간 설정부(510)는 복수의 시간 구간들을 설정한다.The time
시간 구간 식별부(520)는 시간 구간에 따라 라인 세그먼트들을 구분한다.The time
인덱스 생성부(530)는 시간 구간에 따라 구분된 라인 세그먼트들을 수집하여 시간 구간들 각각에 대응하는 인덱스 구조를 생성한다.The
제1 제어부(540)는 상기 설정된 시간 구간들 중 현재 시간에 가장 가까운 제1 시간 구간에 대응하는 인덱스 구조를 메인 메모리에 저장하여 관리할 수 있다.The
제2 제어부(550)는 상기 설정된 시간 구간들 중 상기 제1 시간 구간 이외의 나머지 시간 구간들에 대응하는 인덱스 구조를 스토리지 장치에 저장하여 관리할 수 있다.The
인덱스 생성부(530)는 현재 이동 중인 이동 객체에 의하여 생성되는 라인 세그먼트를 상기 제1 시간 구간에 대응하는 인덱스 구조에 삽입할 수 있다. 상기 제1 시간 구간에 대응하는 인덱스 구조가 메인 메모리에 저장되는 경우 인덱싱 장 치(500)는 신속하게 메인 메모리에 접근할 수 있으므로 새롭게 생성되는 라인 세그먼트의 삽입 연산의 수행 시간을 단축할 수 있다.The
인덱스 생성부(530)는 상기 제1 시간 구간 이외의 나머지 시간 구간들에 대응하는 인덱스 구조에 대하여는 새롭게 생성되는 라인 세그먼트를 삽입하지 않을 수 있다. 상기 나머지 시간 구간들은 메인 메모리보다 느린 스토리지 장치에 저장되므로 인덱싱 장치(500)는 라인 세그먼트의 삽입 연산의 수행 시간이 길어지는 경우를 피할 수 있다.The
일반적으로 영역 질의의 검색 대상은 과거의 시간 구간보다는 현재의 시간 구간에 대하여 빈번하게 일어날 가능성이 많으므로 인덱싱 장치(500)는 현재 시간에 가장 가까운 시간 구간에 대응하는 인덱스 구조에 대한 접근 시간을 단축함으로써 질의의 검색 시간을 단축할 수 있다.In general, the search target of the region query is more likely to occur more frequently in the current time interval than in the past time interval, so the
도 6은 도 3의 인덱싱 방법을 수행하는 인덱싱 장치(600)의 다른 예를 도시하는 블록도이다.FIG. 6 is a block diagram illustrating another example of the
도 6을 참조하면, 인덱싱 장치(600)는 시간 구간 설정부(610), 시간 구간 식별부(620), 인덱스 생성부(630), 시간 차원 검색부(640) 및 공간 차원 검색부(650)를 포함한다.Referring to FIG. 6, the
시간 구간 설정부(610)는 복수의 시간 구간들을 설정한다.The time
시간 구간 식별부(620)는 시간 구간에 따라 라인 세그먼트들을 구분한다.The time
인덱스 생성부(630)는 시간 구간에 따라 구분된 라인 세그먼트들을 수집하여 시간 구간들 각각에 대응하는 인덱스 구조를 생성한다.The
시간 차원 검색부(640)는 입력 받은 질의의 시간 구간에 포함되는 시간 구간들에 대응하는 인덱스 구조를 선택할 수 있다.The time
공간 차원 검색부(650)는 상기 선택된 인덱스 구조로부터 상기 질의의 공간 영역에 중첩되는 공간 좌표를 가지는 라인 세그먼트들을 검색할 수 있다.The spatial
인덱스 생성부(630)는 공간 좌표에 의하여 표현되는 전체 공간을 복수의 공간 셀들로 분할하고, 상기 분할된 복수의 공간 셀들 각각에 대응하는 서브 인덱스를 생성할 수 있다. 인덱스 생성부(630)는 상기 분할된 복수의 공간 셀들 각각이 동일(동일 또는 매우 유사)한 개수의 라인 세그먼트들을 포함하도록 상기 전체 공간을 복수의 공간 셀들로 분할할 수 있다. 인덱싱 장치(600)는 각 서브 인덱스에 포함되는 라인 세그먼트들의 수를 균등하게 조정함으로써 공간 좌표에 대한 검색 과정의 효율성을 높일 수 있다.The
인덱스 생성부(630)는 상기 분할된 공간 셀들의 정보를 2차원 트리 구조의 데이터베이스를 이용하여 관리할 수 있다. 인덱스 생성부(630)는 분할된 공간 셀들 각각에 대하여 시공간 데이터를 3차원 트리 구조의 데이터베이스를 이용하여 관리할 수 있다. 인덱스 구조는 시간 구간에 대한 인덱스 구조 및 공간 영역에 대한 서브 인덱스를 포함하는 다단계 인덱스 구조일 수 있다.The
도 9는 도 2의 인덱싱 방법을 수행하는 인덱싱 장치(900)의 일 예를 도시하는 도면이다.FIG. 9 is a diagram illustrating an example of an
도 9를 참조하면, 인덱싱 장치(900)는 라인 세그먼트 생성부(910), 삽입 연산부(920) 및 제어부(930)를 포함한다.Referring to FIG. 9, the
라인 세그먼트 생성부(910)는 객체의 이동 정보를 공간 좌표 및 시간 척도를 이용하여 표시하는 시공간 데이터를 포함하는 라인 세그먼트를 생성한다.The
삽입 연산부(920)는 상기 생성된 라인 세그먼트를 제1 인덱스 구조에 삽입하고, 상기 삽입된 라인 세그먼트의 시간 척도를 이용하여 상기 제1 인덱스 구조의 시간 척도를 업데이트한다.The
제어부(930)는 상기 제1 인덱스 구조에 포함된 라인 세그먼트의 수를 임계치와 비교하여 제2 인덱스 구조를 생성할 지 여부를 결정한다. 제어부(930)는 상기 제1 인덱스 구조에 포함된 라인 세그먼트의 수가 임계치보다 작으면 제2 인덱스 구조를 생성하지 않고, 제1 인덱스 구조를 삽입 연산부(920)로 전송할 수 있다. 이 때 삽입 연산부(920)는 제어부(930)로부터 수신된 제1 인덱스 구조에 새롭게 생성된 라인 세그먼트를 삽입할 수 있다.The
상기 제1 인덱스 구조에 포함된 라인 세그먼트의 수가 임계치보다 크거나 같으면 제어부(930)는 제2 인덱스 구조를 생성할 수 있다. 이 때 제어부(930)는 상기 생성된 제2 인덱스 구조를 삽입 연산부(920)로 전송할 수 있다. 삽입 연산부(920)는 제어부(930)로부터 수신된 제2 인덱스 구조에 새롭게 생성된 라인 세그먼트를 삽입할 수 있다. 제어부(930)는 메인 메모리에 저장되어 있던 제1 인덱스 구조를 스토리지 장치에 저장하여 관리하고, 상기 생성된 제2 인덱스 구조를 메인 메모리에 저장하여 관리할 수 있다. 제어부(930)는 메인 메모리의 크기에 기초하여 임계치를 설정할 수 있다.If the number of line segments included in the first index structure is greater than or equal to a threshold value, the
제어부(930)는 공간 좌표에 의하여 표현되는 전체 공간을 복수의 공간 셀들 로 분할하고, 상기 제2 인덱스 구조가 상기 분할된 공간 셀들 각각에 대응하는 서브 인덱스를 포함하도록 상기 제2 인덱스 구조를 생성할 수 있다.The
본 발명의 실시예들에 따른 인덱싱 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The indexing method according to the embodiments of the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.
도 1은 본 발명의 일 실시예에 따른 인덱싱 방법에서 이용되는 인덱스 구조를 도시하는 도면이다.1 is a diagram illustrating an index structure used in an indexing method according to an embodiment of the present invention.
도 2는 도 1의 시간 인덱스 테이블(100)을 이용하는 인덱싱 방법의 일 예를 도시하는 동작 흐름도이다.2 is an operation flowchart illustrating an example of an indexing method using the time index table 100 of FIG. 1.
도 3은 본 발명의 다른 실시예에 따른 인덱싱 방법을 도시하는 동작 흐름도이다.3 is an operational flowchart illustrating an indexing method according to another embodiment of the present invention.
도 4는 도 3의 인덱싱 방법을 수행하는 인덱싱 장치(400)의 일 예를 도시하는 블록도이다.4 is a block diagram illustrating an example of an
도 5는 도 3의 인덱싱 방법을 수행하는 인덱싱 장치(500)의 다른 예를 도시하는 블록도이다.FIG. 5 is a block diagram illustrating another example of the
도 6은 도 3의 인덱싱 방법을 수행하는 인덱싱 장치(600)의 다른 예를 도시하는 블록도이다.FIG. 6 is a block diagram illustrating another example of the
도 7은 도 2 또는 도 3의 인덱싱 방법에 의하여 생성된 인덱스 구조에 대한 검색 방법을 도시하는 동작 흐름도이다.7 is a flowchart illustrating a search method for an index structure generated by the indexing method of FIG. 2 or 3.
도 8은 상기 도 3의 단계(S340)의 일 예를 보다 상세히 도시하는 동작 흐름도이다.8 is a flowchart illustrating an example of step S340 of FIG. 3 in more detail.
도 9는 도 2의 인덱싱 방법을 수행하는 인덱싱 장치(900)의 일 예를 도시하는 도면이다.FIG. 9 is a diagram illustrating an example of an
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
410: 시간 구간 설정부410: time section setting unit
420: 시간 구간 식별부420: time interval identification unit
430: 인덱스 생성부430: index generator
Claims (23)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20080034314A KR100963352B1 (en) | 2008-04-14 | 2008-04-14 | Indexing method of trajectory data and apparatus using the method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20080034314A KR100963352B1 (en) | 2008-04-14 | 2008-04-14 | Indexing method of trajectory data and apparatus using the method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090108952A KR20090108952A (en) | 2009-10-19 |
KR100963352B1 true KR100963352B1 (en) | 2010-06-14 |
Family
ID=41552298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20080034314A KR100963352B1 (en) | 2008-04-14 | 2008-04-14 | Indexing method of trajectory data and apparatus using the method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100963352B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200065419A (en) * | 2018-11-30 | 2020-06-09 | 네이버랩스 주식회사 | Method and system for sptial and temporal data distribution |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646070B (en) * | 2012-02-29 | 2014-10-22 | 武汉大学 | Space-time trajectory data storage method based on area |
KR102034526B1 (en) * | 2012-10-18 | 2019-10-22 | 한국전자통신연구원 | Apparatus and method for managing indoor moving objects information considering indoor map and positioning infrastructure |
KR101425816B1 (en) * | 2013-10-29 | 2014-08-05 | 네이버 주식회사 | Real-time search method and real-time search system |
KR101949609B1 (en) * | 2016-12-20 | 2019-02-19 | 한국과학기술원 | Method and system for updating occupancy map based on super ray |
KR101966928B1 (en) * | 2018-11-05 | 2019-04-08 | 주식회사 포스웨이브 | Indexing and storage system for fast distributed processing of spatio-temporal information of moving object |
CN112528081B (en) * | 2020-12-24 | 2021-09-14 | 长沙翔宇信息科技有限公司 | Space situation relative motion trajectory multilevel loading display method and device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040066942A (en) * | 2003-01-21 | 2004-07-30 | 정영진 | Extract operation technique for the indices based on the R-tree |
KR20050028679A (en) * | 2003-09-19 | 2005-03-23 | 한국전자통신연구원 | Moving object database sytem having function of index management and index management method thereof |
KR20050049822A (en) * | 2003-11-24 | 2005-05-27 | 한국전자통신연구원 | Moving object management apparatus and method through spatiotemporal data intergration and information control |
KR20060071981A (en) * | 2004-12-22 | 2006-06-27 | 인하대학교 산학협력단 | A unified index of moving objects in road networks |
-
2008
- 2008-04-14 KR KR20080034314A patent/KR100963352B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040066942A (en) * | 2003-01-21 | 2004-07-30 | 정영진 | Extract operation technique for the indices based on the R-tree |
KR20050028679A (en) * | 2003-09-19 | 2005-03-23 | 한국전자통신연구원 | Moving object database sytem having function of index management and index management method thereof |
KR20050049822A (en) * | 2003-11-24 | 2005-05-27 | 한국전자통신연구원 | Moving object management apparatus and method through spatiotemporal data intergration and information control |
KR20060071981A (en) * | 2004-12-22 | 2006-06-27 | 인하대학교 산학협력단 | A unified index of moving objects in road networks |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200065419A (en) * | 2018-11-30 | 2020-06-09 | 네이버랩스 주식회사 | Method and system for sptial and temporal data distribution |
KR102135205B1 (en) * | 2018-11-30 | 2020-07-17 | 네이버랩스 주식회사 | Method and system for sptial and temporal data distribution |
Also Published As
Publication number | Publication date |
---|---|
KR20090108952A (en) | 2009-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100963352B1 (en) | Indexing method of trajectory data and apparatus using the method | |
JP5519762B2 (en) | Data indexing system and data indexing method | |
CN102693266B (en) | Search for method, the navigation equipment and method of generation index structure of database | |
Lu et al. | Flexible and efficient resolution of skyline query size constraints | |
CN108549696B (en) | Time series data similarity query method based on memory calculation | |
CN103473248A (en) | Continuously-moving K adjacent query method in road network environment | |
CN106933511A (en) | Consider the GML data storage method for organizing and system of load balancing and disk efficiency | |
CN118445318A (en) | Road network indexing method supporting multi-type query | |
CN103034678A (en) | RkNN (reverse k nearest neighbor) inquiring method based on Voronoi diagram | |
Chapuis et al. | Capturing complex behaviour for predicting distant future trajectories | |
KR101134196B1 (en) | Optimal designing method and device of location area planning using artifical bee colony in wireless communication network | |
Yang et al. | Recommending profitable taxi travel routes based on big taxi trajectories data | |
CN103345509B (en) | Obtain the level partition tree method and system of the most farthest multiple neighbours on road network | |
CN102724301A (en) | Cloud database system and method and equipment for reading and writing cloud data | |
Cao et al. | $\sf {SIMkNN} $: A Scalable Method for in-Memory kNN Search over Moving Objects in Road Networks | |
CN112925793B (en) | Distributed hybrid storage method and system for multiple structural data | |
Huang et al. | Processing continuous K-nearest skyline query with uncertainty in spatio-temporal databases | |
US20100114910A1 (en) | Blog search apparatus and method using blog authority estimation | |
JP2004178191A (en) | Method for retrieving position dependency information | |
CN113722551A (en) | Frequent subgraph index method and device applied to frequent subgraph query | |
CN104881426B (en) | A kind of keyword query method and device | |
KR101078348B1 (en) | Apparatus and method for storing data using R-tree | |
CN114637576B (en) | Method and apparatus for generating container allocation schemes | |
JP6167531B2 (en) | Region search method, region index construction method, and region search device | |
KR20190115320A (en) | Mobile apparatus and method for providing similar word corresponding to input word |
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: 20130516 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140701 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150708 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160516 Year of fee payment: 7 |