KR101078348B1 - Apparatus and method for storing data using R-tree - Google Patents
Apparatus and method for storing data using R-tree Download PDFInfo
- Publication number
- KR101078348B1 KR101078348B1 KR1020090116990A KR20090116990A KR101078348B1 KR 101078348 B1 KR101078348 B1 KR 101078348B1 KR 1020090116990 A KR1020090116990 A KR 1020090116990A KR 20090116990 A KR20090116990 A KR 20090116990A KR 101078348 B1 KR101078348 B1 KR 101078348B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- area
- terminal node
- tree
- data storage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
영역트리를 이용한 데이터 저장 장치 및 방법이 개시된다. 상기 데이터 저장 장치는, 소정 영역 내의 데이터를 획득하는 센싱부, 상기 센싱부에서 획득한 데이터가 저장되는 데이터 영역, 상기 데이터 영역에 포함된 상기 복수 개의 블록을 단말 노드로 가지는 영역트리 형태의 인덱스를 포함하는 인덱스 영역 및 상기 센싱부에서 획득한 데이터의 센싱 위치 정보 및 상기 영역트리를 이용하여 상기 센싱부에서 획득한 데이터를 저장하는 제어부를 포함한다.Disclosed are a data storage device and method using an area tree. The data storage device may include a sensing unit for acquiring data in a predetermined region, a data region for storing data obtained by the sensing unit, and an index of an area tree having the plurality of blocks included in the data region as a terminal node. And a controller configured to store the data acquired by the sensing unit by using the index region, sensing position information of the data obtained by the sensing unit, and the region tree.
Description
본 발명의 실시예들은 이동 환경에서의 센싱 데이터 저장 및 탐색 기술과 관련된다.Embodiments of the present invention relate to sensing data storage and retrieval techniques in a mobile environment.
미지의 영역을 탐사하거나 재난 지역 또는 군사 지역을 정찰하거나 할 경우, 이동형 또는 고정형 로봇들이 유용하게 사용될 수 있다. 상기 로봇들은 보유한 센서의 종류에 따라 해당 영역에서 각종 정보를 수집하며, 주변의 로봇들과 센서 네트워크 등의 네트워크를 구성하여 센싱된 정보를 전송한다.Mobile or stationary robots can be useful when exploring unknown areas or scouting disaster or military areas. The robots collect various types of information in a corresponding area according to the type of sensor they have, and transmit a sensed information by forming a network such as a sensor network with surrounding robots.
그러나 상기 로봇 등의 장치는 사용 가능한 전원 등의 에너지 및 데이터 저장 공간이 한정되어 있는 것이 일반적이다. 따라서 저장 공간이 부족한 로봇 등과 같은 데이터 센싱 장치에서 실시간으로 획득한 센싱 데이터를 한정된 저장 공간 안에 저장하고 인덱싱하기 위한 방법에 대한 연구가 필요하다.However, devices such as robots generally have limited energy and data storage spaces such as usable power sources. Therefore, there is a need for a method for storing and indexing sensing data acquired in real time by a data sensing device such as a robot having insufficient storage space in a limited storage space.
본 발명의 실시예들은 실시간으로 센싱한 데이터를 영역트리를 이용하여 효율적으로 저장하고 인덱싱하는 방법을 제공함으로써, 데이터 저장 공간을 효과적으로 활용함과 동시에 시공간 질의 처리에도 효과적으로 대응하기 위한 수단을 제공하고자 한다.Embodiments of the present invention provide a method for efficiently storing and indexing data sensed in real time using an area tree, thereby providing a means for effectively utilizing data storage space and coping with spatiotemporal query processing. .
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 데이터 저장 장치는, 소정 영역 내의 데이터를 획득하는 센싱부; 복수 개의 블록을 포함하며, 상기 센싱부에서 획득한 데이터가 저장되는 데이터 영역; 상기 데이터 영역에 포함된 상기 복수 개의 블록을 단말 노드로 가지는 영역트리 형태의 인덱스를 포함하는 인덱스 영역; 및 상기 센싱부에서 획득한 데이터의 센싱 위치 정보 및 상기 영역트리를 이용하여 상기 데이터 영역 내의 블록 중 상기 센싱한 데이터를 저장할 블록을 선택하고, 상기 선택된 블록에 상기 센싱부에서 획득한 데이터를 저장하는 제어부;를 포함한다.According to an aspect of the present invention, there is provided a data storage device including: a sensing unit configured to acquire data in a predetermined area; A data area including a plurality of blocks and storing data acquired by the sensing unit; An index area including an index of an area tree type having the plurality of blocks included in the data area as a terminal node; And selecting a block to store the sensed data from among the blocks in the data area by using the sensing position information of the data acquired by the sensing unit and the region tree, and storing the data obtained by the sensing unit in the selected block. It includes a control unit.
한편, 상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 데이터 저장 방법은, 상기 데이터 저장 장치에서, 기 설정된 소정 영역에 대한 데이터를 획득하는 단계; 상기 데이터 저장 장치에서, 상기 획득한 데이터의 센싱 위치 정보 및 영역트리를 이용하여 상기 영역트리의 단말 노드 중 상기 센싱한 데이터를 저장할 단말 노드를 선택하는 단계; 상기 데이터 저장 장치에서, 상기 선택된 단말 노드의 현재 데이터 포인터(current data pointer)가 가리키는 레코드에 상기 획득한 데이터를 저장하는 단계;를 포함한다.On the other hand, the data storage method according to an embodiment of the present invention for solving the above problems, in the data storage device, the step of acquiring data for a predetermined predetermined area; Selecting, at the data storage device, a terminal node to store the sensed data from among the terminal nodes of the region tree by using the sensing position information and the region tree of the acquired data; And storing the obtained data in a record indicated by a current data pointer of the selected terminal node in the data storage device.
전술 것 외의 다른 측면, 특징 및 이점은 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features, and advantages other than the foregoing will be apparent from the following drawings, claims, and detailed description of the invention.
본 발명의 실시예들은 영역트리를 이용하여 센싱 데이터를 저장하고 인덱싱함으로써, 이동형 장치를 위한 데이터 저장 및 저장 공간 관리, 시공간 질의 처리를 위한 데이터 인덱싱에 효과적으로 사용될 수 있다.Embodiments of the present invention can be effectively used for data storage and storage space management for mobile devices and indexing data for space-time query processing by storing and indexing sensing data using an area tree.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. However, this is only an example and the present invention is not limited thereto.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.The technical spirit of the present invention is determined by the claims, and the following embodiments are merely means for efficiently explaining the technical spirit of the present invention to those skilled in the art.
도 1은 본 발명의 일 실시예에 따른 영역트리를 이용한 데이터 저장 장치(100)의 구성을 나타낸 도면이다.1 is a diagram illustrating a configuration of a
도시된 바와 같이, 본 발명의 일 실시예에 따른 영역트리를 이용한 데이터 저장 장치(100)는 센싱부(102), 데이터 저장부(104), 및 제어부(106)를 포함하여 구성된다.As shown, the
센싱부(102)는 데이터 저장 장치(100)가 위치한 영역에 대한 정보 또는 데이터를 획득한다. 센싱부(102)가 획득하는 데이터는 예를 들어, 해당 영역의 온도, 습도, 조도 등이 될 수 있으며, 이는 데이터 저장 장치(100)에 구비되는 센서의 종류에 따라 달라질 수 있다.The
데이터 저장부(104)에는 센싱부(102)에서 획득한 데이터가 저장된다. 데이터 저장부(104)는 자기 디스크 또는 반도체 메모리 등의 데이터 저장 장치 또는 매체로 구성될 수 있으며, 내부적으로 복수 개의 블록(block)으로 구분된다. 상기 블록의 크기는 데이터 저장부(104)를 구성하는 데이터 저장 장치 또는 매체의 종류에 따라 달라질 수 있으나, 일반적으로 1024 byte, 2048 byte, 4096 byte 등의 크기로 구성될 수 있으며, 데이터 저장부(104) 내에서 각 블록의 크기는 모두 같다.The
데이터 저장부(104)는 다시 데이터 영역(108)과 인덱스 영역(110)으로 나누어진다. 데이터 영역(108)은 센싱부(102)에서 획득한 데이터가 실제로 저장되는 영역이며, 인덱스 영역(110)은 데이터 영역(108)에 데이터를 저장하고 필요에 따라 저장된 데이터를 검색하기 위한 영역으로서, 영역트리를 이용하여 데이터를 인덱싱 하도록 구성된다.The
제어부(106)는 데이터 저장부(104) 내의 데이터 영역(108) 및 인덱스 영역(110)을 제어하여 센싱부(104)에서 획득한 데이터를 저장하거나 인덱스 영역(110)을 이용하여 데이터 영역(108)에 저장된 데이터를 검색한다. 구체적으로 제어부(106)는 센싱부(102)가 데이터를 센싱한 경우, 상기 센싱된 데이터의 데이터 획득 위치 정보를 이용하여 상기 영역트리를 순회하여 상기 데이터를 삽입할 단말 노드를 선택하고, 상기 선택된 단말 노드에 상기 센싱된 데이터를 저장한다.The
영역트리의Area of tree 구성 및 특징 Configuration and features
전술한 바와 같이, 본 발명의 실시예에서 제어부(106)는 영역트리를 이용하여 센싱 데이터를 저장 및 관리하며, 이하에서는 상기 영역트리의 구성 및 특징에 대하여 설명한다.As described above, in the embodiment of the present invention, the
도 2는 본 발명의 실시예에 따른 데이터 저장 장치(100)가 데이터를 센싱하기 위한 영역의 일례를 나타낸 도면이고, 도 3은 상기 도 2에 도시된 영역을 데이터 저장 장치(100)가 이동하면서 형성한 영역트리의 일례를 나타낸 도면이다.2 is a diagram illustrating an example of an area for sensing data by the
본 발명의 실시예에서의 영역트리는 다차원 데이터 색인 등에 사용되는 종래의 영역트리(R-tree)를 저장 공간 효율적인 구조로 확장한 트리이다. 본 발명의 실시예에서의 영역트리와 종래의 영역트리와의 차이는 영역트리의 경우 단말 노드의 공간 활용이 임계치 이상이 되면 더 이상 단말 노드를 분할하지 않고 단말 노드 공 간을 재사용한다는 것이다. 즉, 본 발명의 실시예에 있어 영역트리는 센싱부(102)에서 센싱된 데이터들을 단말 노드에 센싱 시간(timestamp)을 기준으로 순차적으로 저장하는데, 만약 오버플로(overflow)가 발생해서 단말 노드를 분할해야 할 경우, 분할될 영역의 크기가 임계치 이하이면 분할하지 않고 가장 오래된 데이터를 덮어쓰게 된다.The area tree in the embodiment of the present invention is a tree in which a conventional area tree (R-tree) used for a multidimensional data index or the like is expanded into a storage space efficient structure. The difference between the area tree in the embodiment of the present invention and the conventional area tree is that in the case of the area tree, when the space utilization of the terminal node exceeds the threshold, the terminal node space is reused without dividing the terminal node. That is, in the embodiment of the present invention, the area tree sequentially stores the data sensed by the
영역트리에서의 각 노드 및 색인될 데이터는 MBR(minimum bounding region) 또는 MBB(minimum bounding box) (이하에서는 MBR로 통칭함)에 의해 표현되며, 영역트리는 상기 MBR 또는 MBB 간의 포함관계로 표현된다. Each node in the region tree and the data to be indexed are represented by a minimum bounding region (MBR) or a minimum bounding box (MBB) (hereinafter collectively referred to as MBR), and the region tree is represented by a containment relationship between the MBR or MBB.
상기 도 2에서, 번호 1 내지 7은 센싱된 순서대로 번호를 부여한 센싱 영역의 번호이며, 각 사각형은 도 3에 도시된 영역트리의 각 노드가 가지는 MBR이다. 상기 영역트리의 노드들은 자식 노드의 유무에 다라 비단말 노드 및 단말 노드로 구분된다. 비단말 노드는 자식 노드가 존재하는 노드로서 내부 노드라고도 하며, 상기 도 3에서 R, a, b 노드가 이에 해당한다. 상기 비단말 노드에는 자식 노드들의 MBR을 포함하는 최소 사각형 및 자식 노드의 주소가 저장된다. 상기 비단말 노드 중 노드 R은 루트 노드로서, 상기 루트 노드가 가리키는 영역은 상기 센싱 영역의 전부가 된다. 한편, 단말 노드는 자식 노드가 존재하지 않으며 직접 데이터가 저장되는 노드로서, 상기 도 3에서 노드 108-1 내지 노드 108-7이 이에 해당한다. 상기 단말 노드에는 센싱 데이터 및 현재 데이터 포인터(current data pointer)를 포함한다. 상기 현재 데이터 포인터는 상기 단말 노드 내에서 새로운 데이터가 저장될 위치를 가리키는 포인터이다. In FIG. 2,
상기 영역트리의 레벨은 루트 레벨을 1로 하여 자식 노드로 갈수록 레벨이 증가하도록 구성된다. 즉, 상기 도 3의 영역트리에서 루트 노드인 노드 R의 레벨은 1, 노드 a, b의 레벨은 2, 단말 노드인 노드 108-1 내지 108-7의 레벨은 3이 된다. 영역트리의 높이 H는 단말 노드의 레벨과 같다.The level of the area tree is configured such that the level increases with the root level as 1 toward the child node. That is, in the area tree of FIG. 3, the level of node R, which is the root node, is 1, the level of nodes a, b is 2, and the level of nodes 108-1 to 108-7, which are terminal nodes, is 3. The height H of the area tree is equal to the level of the terminal node.
영역트리의 루트 노드에는 최소 2개의 엔트리가 존재하여야 하며 모든 단말 노드는 같은 레벨에 존재하도록 구성된다. 또한 상기 영역트리의 루트 노드를 제외한 모든 노드는 최대 M개의 엔트리를 포함할 수 있으며, 루트 노드와 단말 노드를 제외한 내부 노드들은 적어도 개의 엔트리를 포함해야 한다. 데이터 저장부(104)의 블록의 크기를 B라 하고, 상기 영역트리의 엔트리 크기를 S라 하면 상기 M 값은 다음의 수학식 1을 이용하여 계산될 수 있다.At least two entries must exist in the root node of the area tree, and all terminal nodes are configured to exist at the same level. In addition, all nodes except the root node of the region tree may include a maximum of M entries, and internal nodes except the root node and the terminal node are at least Must contain three entries. If the block size of the
데이터 저장부(104)의 저장 공간 분할Storage Space Division of
본 발명의 실시예에서, 데이터 저장부(104)는 데이터 영역(108)과 인덱스 영역(110)으로 구분되며, 상기 영역트리의 비단말 노드(내부 노드)는 인덱스 영 역(110)에, 데이터가 저장되는 단말 노드는 데이터 영역(108)에 각각 저장된다. 이하에서는 데이터 저장부(104)를 효율적으로 사용하고 데이터 저장 용량을 최대화하기 위한 데이터 저장부(104)의 저장 공간 분할에 대해 설명한다.In an embodiment of the present invention, the
데이터 저장부(104)의 전체 블록 수를 NB라 할 때, 인덱스 영역(110)에 저장되는 영역트리의 내부 노드 블록 수를 IB, 데이터 영역(108)에 저장되는 영역트리의 단말 노드 블록 수(데이터 블록 수)를 LB라 하면, NB, IB, LB의 관계는 다음의 수학식 2와 같다. 여기서 노드의 크기(bytes)와 블록의 크기(bytes)는 같은 것으로 가정한다. 따라서 노드의 수와 블록의 수는 동일한 의미이다.When the total number of blocks of the
영역트리의 높이는 각 노드의 팬아웃(fanout)이 최소가 될 때, 즉 각각의 내부 노드들의 엔트리 개수가 최소가 될 때 최대가 된다. 영역트리의 각 내부 노드의 최소 엔트리 개수는 이므로, 상기 영역트리의 최소 팬아웃은 이 되며, 이 경우 영역트리의 최대 높이는 다음의 수학식 3과 같이 계산된다.The height of the area tree is maximum when the fanout of each node is minimum, that is, when the number of entries of each internal node is minimum. The minimum number of entries for each internal node in the region tree is Since the minimum fanout of the area tree is In this case, the maximum height of the area tree is calculated as in
상기 수학식은 영역트리의 높이를 H(H≥1)라 할 때 단말 노드의 최소 개수는 ()H-1이므로, ()H-1 ≤ LB인 최대 H를 구한 것이다.In the above equation, when the height of the area tree is H (H≥1), the minimum number of terminal nodes is ( ) H-1, so ( Is the maximum H where H-1 ≤ L B.
한편, 단말 노드의 블록 수를 LB, 영역트리의 높이를 H라 할 때, 내부 노드의 최대 블록 수 IB는 다음과 같은 범위의 값을 갖는다.On the other hand, when the number of blocks of the terminal node is L B and the height of the area tree is H, the maximum number of blocks I B of the internal node has a value in the following range.
상기 수학식 4의 범위 값을 갖는 내부 노드의 블록 수 IB를 정확하게 계산하면 다음과 같다.If the block number I B of the internal node having the range value of
먼저, 레벨 L = H - 1에서 내부 노드의 개수 IH -1은First, at level L = H-1, the number of internal nodes I H -1 is
이다. 이는 레벨 H - 1에 있는 내부 노드들이 실제로 저장해야 하는 엔트리 수가 LB이기 때문이다. 이와 유사한 방법으로, 레벨 L = H - 2에서의 내부 노드의 개수 IH -2은to be. This level H - because the number of entries to be L B are actually stored in the
이 된다. Becomes
이를 이용하여, 영역트리의 각 레벨에서 내부 노드의 최대 블록 수를 계산하는 식을 재귀 관계식(recurrence relation)으로 표현하면 다음과 같다.Using this, the equation for calculating the maximum number of blocks of internal nodes at each level of the region tree is expressed as a recurrence relation as follows.
이를 일반화하면, 영역트리의 레벨 L(1 = 1 = H - 1)에서 내부 노드의 수 IL은 다음의 수학식 5와 같다.Generalizing this, the number I L of internal nodes at the level L (1 = 1 = H-1) of the region tree is expressed by
영역트리의 각 레벨의 내부 노드의 수는 상기 수학식 5에 의하여 알 수 있으며, 다음과 같이 이를 모두 합하면 영역트리의 모든 내부 노드들의 개수(블록의 수)를 알 수 있다.The number of internal nodes of each level of the area tree can be known by
상기 수학식 5의 재귀 관계식에서 IH -1의 값은 LB에 의하여 정해지며, LB 는 상기 수학식 2에 의해 NB와 IB의 식으로 치환할 수 있다(즉, LB = NB - IB). 따라서 데이터 저장부(104)의 전체 블록 수를 NB가 주어지면 상기 수학식 2, 수학식 5 및 수학식 6에 의해 인덱스 영역(110)에 저장되는 영역트리의 내부 노드 블록 수 IB와 데이터 영역(108)에 저장되는 영역트리의 단말 노드 블록 수(데이터 블록 수) LB를 구할 수 있게 되어 한정된 공간을 효율적으로 활용할 수 있게 된다.The value of I H -1 in a recursive relationship of the equation (5) is is determined by L B, L B Can be substituted with the formula of N B and I B by Equation 2 (that is, L B = N B -I B ). Therefore, if the total number of blocks of the
데이터 파일 구조Data file structure
도 4는 본 발명의 일 실시예에 따른 데이터 영역(108)의 데이터 저장 레코드의 일례를 나타낸 도면이다.4 is a diagram showing an example of a data storage record in the
데이터 영역(108)을 구성하는 각 블록들은 복수 개의 레코드(record)로 구분된다. 상기 레코드는 센싱부(102)에서 센싱한 데이터가 저장되는 기본 단위이다. 도시된 실시예에서, 레코드(400)는 전체 길이가 24 바이트로 구성되며, 처음 4 바이트(402)는 데이터 획득 시간(timestamp), 다음 8 바이트(404, 406)는 데이터 획득 좌표(x, y), 나머지 12 바이트(408, 410, 412)는 센싱 데이터로 구성된다. 본 실시예에서는 센싱한 위치에서의 데이터 저장 장치(100)의 온도, 조도 및 습도 정보를 상기 12 바이트(408, 410, 412) 영역에 각각 4 바이트씩 저장한 예를 도시하였다.Each block constituting the
새로운 레코드의 삽입Insert new record
도 5는 본 발명의 일 실시예에 따른 영역트리를 이용한 데이터 저장 장치(100)에서의 레코드 삽입 방법(500)을 나타낸 순서도이다.5 is a flowchart illustrating a
센싱부(102)에 새로운 데이터가 센싱된 경우, 제어부(106)는 먼저 영역트리를 루트 노드에서부터 순회(traverse)하여 상기 새로 센싱된 데이터를 삽입할 단말 노드를 선택한다(502). When new data is sensed by the
상기 새로 획득된 데이터는 데이터 획득 위치, 즉 상기 데이터를 센싱한 영역의 x, y 좌표 값에 따라 저장될 단말 노드가 달라진다. 예를 들어, 상기 영역트리의 노드 중 상기 데이터 센싱 위치를 포함하는 노드가 있으면 해당 노드에 상기 데이터를 삽입할 수 있다. 또는 상기 영역트리의 노드 중 상기 데이터 획득 위치를 포함하는 노드가 없는 경우에는 상기 데이터 센싱 위치를 포함했을 때 면적 확장이 가장 적은 노드를 상기 새로 센싱된 데이터를 저장할 단말 노드로 선택할 수 있다.The newly acquired data has a terminal node to be stored according to a data acquisition position, that is, x and y coordinate values of the area where the data is sensed. For example, if there is a node including the data sensing position among the nodes of the region tree, the data may be inserted into the node. Alternatively, when there is no node including the data acquisition location among the nodes of the area tree, a node having the smallest area extension when including the data sensing location may be selected as a terminal node to store the newly sensed data.
단말 노드가 선택되면, 다음으로 선택된 단말 노드에 새로운 레코드를 삽입할 공간이 존재하는지의 여부를 판단한다(504). 이 때, 만약 상기 선택된 단말 노드에 새로운 레코드를 삽입할 공간이 존재하는 경우에는 상기 빈 공간에 센싱된 데이터를 삽입한다(506). 각 단말 노드들은 전술한 바와 같이 현재 데이터 포인터를 포함하므로, 새로 획득된 데이터는 상기 현재 데이터 포인터가 가리키는 저장 위치에 삽입될 수 있다. 상기 데이터가 삽입된 이후에는 상기 블록 내 마지막 데이터의 저장 위치가 변경되므로 상기 현재 데이터 포인터를 새로 획득될 데이터가 저장된 레코드를 가리키도록 업데이트한다(508). 만약 상기 센싱된 데이터가 상기 단말 노드의 마지막 레코드인 경우, 상기 현재 데이터 포인터는 상기 단말 노드의 첫 레코드를 가리키도록 업데이트된다.When the terminal node is selected, it is determined whether there is a space for inserting a new record in the next selected terminal node (504). In this case, if there is a space for inserting a new record in the selected terminal node, the sensed data is inserted in the empty space (506). Since each terminal node includes a current data pointer as described above, newly acquired data may be inserted into a storage location indicated by the current data pointer. After the data is inserted, since the storage location of the last data in the block is changed, the current data pointer is updated to point to the record in which newly acquired data is stored (508). If the sensed data is the last record of the terminal node, the current data pointer is updated to point to the first record of the terminal node.
이후, 상기 삽입된 레코드의 저장 위치에 의하여 영역트리의 각 노드들의 MBR이 조정될 필요가 있는지를 판단하고(510), 필요한 경우 각 노드들의 MBR을 조정한다(512). 상기 삽입된 레코드에 의하여 MBR을 조정할 필요가 있는 경우란, 영역트리의 각 노드들 중 상기 센싱된 데이터의 센싱 위치를 포함하는 노드가 없어 상기 삽입된 레코드에 의해 MBR을 확장하여야 하는 경우이다. 이와 같은 MBR의 조정은 단말 노드부터 시작하여 루트 노드까지 수행될 수 있다.Thereafter, it is determined whether the MBR of each node of the region tree needs to be adjusted according to the storage position of the inserted record (510), and if necessary, the MBR of each node is adjusted (512). In the case where it is necessary to adjust the MBR by the inserted record, there is no node including the sensing position of the sensed data among the nodes of the region tree, so that the MBR must be extended by the inserted record. Such adjustment of the MBR may be performed starting from the terminal node to the root node.
한편, 상기 504 단계에서 상기 선택된 단말 노드에 새로운 레코드를 삽입할 공간이 존재하지 않는 경우, 다음으로 상기 선택된 단말 노드를 분할 가능한지의 여부를 판단한다(514). 만약 상기 선택된 단말 노드를 분할 가능한 경우에는 데이터 영역(108)에 새로운 단말 노드를 생성하고(516), 상기 선택된 단말 노드에 저장된 레코드 및 상기 새로 센싱된 데이터를 상기 새로 생성된 단말 노드에 분배한다(518). 이후, 상기 선택된 단말 노드 및 생성된 단말 노드의 조상 노드의 MBR을 조정하여 상기 단말 노드들의 MBR 변경을 반영한다(520).On the other hand, if there is no space to insert a new record in the selected terminal node in
만약 상기 514 단계에서 상기 선택된 단말 노드가 분할 가능하지 않은 경우에는 상기 센싱된 데이터를 상기 선택된 단말 노드에 저장된 레코드 중 가장 오래된 레코드에 덮어 쓴다(522). 즉, 본 발명의 실시예에서는 단말 노드에 더 이상 데이터를 저장할 공간이 없고 상기 단말 노드를 분할할 수 없는 경우, 상기 단말 노드에 할당된 레코드를 순환적으로 재사용하게 된다.If the selected terminal node is not partitionable in
상기 선택된 단말 노드가 분할 가능하지 않은 경우는 다음의 2가지이다.There are two cases in which the selected terminal node is not partitionable.
(1) 선택된 단말 노드의 MBR 영역의 크기가 소정값 이하인 경우. 즉, 상기 선택된 단말 노드의 MBR 영역의 크기가 너무 작아 분할할 수 없는 경우이다.(1) When the size of the MBR region of the selected terminal node is less than or equal to a predetermined value. That is, the size of the MBR region of the selected terminal node is too small to divide.
(2) 단말 노드의 분할 이후 영역트리의 높이가 H+1이 되는 경우(이때 H는 상기 영역트리의 최대 높이). 즉, 영역트리를 구성하는 단말 노드의 수가 LB가 되어 더 이상 할당할 단말 노드 블록이 존재하지 않는 경우이다.(2) When the height of the area tree becomes H + 1 after splitting of the terminal node (where H is the maximum height of the area tree). That is, the number of terminal nodes constituting the area tree becomes L B , and there are no terminal node blocks to allocate.
도 6 내지 도 9는 본 발명의 실시예에 따른 단말 노드 분할 및 레코드 삽입 과정을 예시하기 위한 도면이다.6 to 9 are diagrams for illustrating a terminal node division and record insertion process according to an embodiment of the present invention.
먼저, 도 6과 같은 영역 내를 데이터 저장 장치(100)가 이동하면서 데이터를 센싱한다고 가정할 때, 도 6의 사각형에 도시된 번호는 데이터 저장 장치(100)센싱된 순서대로 번호를 부여한 센싱 영역의 번호이다. 또한 도 7은 데이터 저장 장치(100)가 상기 도 6의 영역을 이동하면서 생성한 영역트리이다.First, assuming that the
만약 데이터 저장 장치(100)가 도 6에서 원형으로 도시된 15번째 위치에서 데이터를 센싱한 경우, 제어부(106)는 상기 15번째 위치의 센싱 데이터를 저장할 단말 노드(도 9의 108-15)를 할당하여 상기 센싱 데이터를 저장한다. 상기 15번째 위치는 영역 c에 속하므로 이후 상기 15번째 위치의 MBR을 영역트리의 비단말 노드인 노드 c에 삽입하여야 하나, 도 6에서 알 수 있는 바와 같이 노드 c는 더 이상 데이터를 삽입할 공간이 없으므로 노드 c를 노드 c와 e로 분할하고 기존의 노드 c 에 저장된 데이터를 MBR이 속한 위치에 따라 노드 c와 e에 분할한다. 마찬가지로 도 6의 루트 노드 또한 상기 노드 c의 분할에 따라 오버플로가 발생하므로, 이를 노드 F, G로 분할하고 새로운 루트 노드를 생성하여 상기 분할된 노드 F, G를 가리키도록 한다. 이와 같은 방법으로 15번째 영역의 센싱 데이터가 삽입된 경우의 영역 분할 및 영역트리를 도 8 및 9에 나타내었다. If the
레코드의 삭제Deletion of records
전술한 바와 같이, 본 발명의 실시예에서 데이터 저장 장치(100)는 센싱 데이터를 저장할 단말 노드에 새로운 레코드를 삽입할 공간이 없고, 상기 단말 노드가 분할 가능하지 않은 경우 상기 단말 노드의 레코드 중 가장 오래된 레코드에 상기 센싱 데이터를 덮어쓰도록 구성된다. 즉 기존 데이터는 시간이 지나면서 새로운 데이터에 의하여 대체되는바, 본 발명의 실시예에서는 별도의 데이터 삭제 루틴은 존재하지 않는다. 따라서 본 발명의 실시예에 따를 경우 데이터의 삭제를 위하여 별도의 연산 및 이에 따른 에너지 소모가 필요하지 않으므로 에너지를 효율적으로 사용할 수 있다.As described above, in the embodiment of the present invention, the
데이터의 검색Retrieval of data
도 10은 본 발명의 일 실시예에 따른 데이터 검색 방법(1000)을 나타낸 순서 도이다.10 is a flowchart illustrating a
먼저, 검색하고자 하는 영역 질의를 생성한다(1002). 상기 영역 질의는 데이터 저장 장치(100)가 탐색하는 영역 중 특정 영역의 특정 시간의 데이터를 검색하라는 질의일 수 있다.First, an area query to be searched is generated (1002). The area query may be a query for searching for data of a specific time in a specific area among the areas searched by the
다음으로, 상기 영역 질의의 좌표값(x, y값)을 이용하여 영역트리를 루트 노드부터 탐색하여 질의 영역을 포함하는 단말 노드를 찾는다(1004).Next, the area tree is searched from the root node using the coordinate values (x, y values) of the area query to find a terminal node including the query area (1004).
마지막으로, 상기 단말 노드에 저장된 레코드들을 순차 검색하여 상기 영역 질의에서 찾고자 하는 레코드가 존재하는지의 여부를 탐색한다(1006).Finally, it searches for whether the record to be found in the region query exists by sequentially searching the records stored in the terminal node (1006).
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Meanwhile, an embodiment of the present invention may include a computer readable recording medium including a program for performing the methods described herein on a computer. The computer-readable recording medium may include program instructions, local data files, local data structures, etc. alone or in combination. 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 skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical recording media such as CD-ROMs, DVDs, magnetic-optical media such as floppy disks, and ROM, RAM, flash memory, and the like. Hardware devices specifically configured to store and execute program instructions are included. Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. Although the present invention has been described in detail with reference to exemplary embodiments above, those skilled in the art to which the present invention pertains can make various modifications to the above-described embodiments without departing from the scope of the present invention. Will understand.
그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined by the claims below and equivalents thereof.
도 1은 본 발명의 일 실시예에 따른 영역트리를 이용한 데이터 저장 장치(100)의 구성을 나타낸 도면이다.1 is a diagram illustrating a configuration of a
도 2는 본 발명의 실시예에 따른 데이터 저장 장치(100)가 데이터를 센싱하기 위한 영역의 일례를 나타낸 도면이다.2 is a diagram illustrating an example of an area for sensing data by the
도 3은 상기 도 2에 도시된 영역을 데이터 저장 장치(100)가 이동하면서 형성한 영역트리의 일례를 나타낸 도면이다.3 is a diagram illustrating an example of an area tree formed while the
도 4는 본 발명의 일 실시예에 따른 데이터 영역(108)의 데이터 저장 레코드의 일례를 나타낸 도면이다.4 is a diagram showing an example of a data storage record in the
도 5는 본 발명의 일 실시예에 따른 영역트리를 이용한 데이터 저장 장치(100)에서의 레코드 삽입 방법(500)을 나타낸 순서도이다.5 is a flowchart illustrating a
도 6 내지 도 9는 본 발명의 실시예에 따른 단말 노드 분할 및 레코드 삽입 과정을 예시하기 위한 도면이다.6 to 9 are diagrams for illustrating a terminal node division and record insertion process according to an embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 데이터 검색 방법(1000)을 나타낸 순서도이다.10 is a flowchart illustrating a
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090116990A KR101078348B1 (en) | 2009-11-30 | 2009-11-30 | Apparatus and method for storing data using R-tree |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090116990A KR101078348B1 (en) | 2009-11-30 | 2009-11-30 | Apparatus and method for storing data using R-tree |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110060408A KR20110060408A (en) | 2011-06-08 |
KR101078348B1 true KR101078348B1 (en) | 2011-10-31 |
Family
ID=44395184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090116990A KR101078348B1 (en) | 2009-11-30 | 2009-11-30 | Apparatus and method for storing data using R-tree |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101078348B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101855524B1 (en) | 2011-12-20 | 2018-05-08 | 삼성전자주식회사 | Sensor data acquisition system and method based on integration of devices and clouds |
-
2009
- 2009-11-30 KR KR1020090116990A patent/KR101078348B1/en active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101855524B1 (en) | 2011-12-20 | 2018-05-08 | 삼성전자주식회사 | Sensor data acquisition system and method based on integration of devices and clouds |
Also Published As
Publication number | Publication date |
---|---|
KR20110060408A (en) | 2011-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6032467B2 (en) | Spatio-temporal data management system, spatio-temporal data management method, and program thereof | |
US20210342259A1 (en) | Key-value stores with optimized merge policies and optimized lsm-tree structures | |
JP4914173B2 (en) | Relocation system and relocation method | |
KR102036419B1 (en) | Multi-level caching method for improving graph processing performance, and multi-level caching system | |
CN107943718B (en) | Method and device for cleaning cache file | |
US20200057782A1 (en) | Optimized navigable key-value store | |
US10552460B2 (en) | Sensor data management apparatus, sensor data management method, and computer program product | |
US20070050566A1 (en) | Methods and apparatus for incremental approximate nearest neighbor searching | |
CN111459885B (en) | Data processing method and device, computer equipment and storage medium | |
Zhang et al. | Effectively indexing the multi-dimensional uncertain objects for range searching | |
CN105512317A (en) | Method for indexing uncertain moving objects on basis of group division | |
KR100806115B1 (en) | Design method of query classification component in multi-level dbms | |
CN109189343B (en) | Metadata disk-dropping method, device, equipment and computer-readable storage medium | |
CN106980540B (en) | Distributed multi-dimensional discrete data calculation method | |
JP2012234415A (en) | Index management method, index management program and index management device | |
KR20090108952A (en) | Indexing method of trajectory data and apparatus using the method | |
CN104951245A (en) | Dynamic storage tiering method and dynamic storage tiering device | |
WO2012114402A1 (en) | Database management device and database management method | |
KR101078348B1 (en) | Apparatus and method for storing data using R-tree | |
CN104102735A (en) | File system optimizing method and file system optimizing device aiming at database files | |
KR102354343B1 (en) | Spatial indexing method and apparatus for blockchain-based geospatial data | |
CN117131050B (en) | Spatial index method based on magnetic disk and oriented to workload and query sensitivity | |
CN113722518A (en) | Storage method, retrieval method, equipment and medium based on remote sensing image metadata | |
KR100924370B1 (en) | Method and Apparatus of continuous skyline queries using cell state and Recording medium using this | |
KR20110038246A (en) | Apparatus and method for storing data |
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: 20151002 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160928 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170927 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20180809 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20190329 Year of fee payment: 9 |