KR101078348B1 - Apparatus and method for storing data using R-tree - Google Patents

Apparatus and method for storing data using R-tree Download PDF

Info

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
Application number
KR1020090116990A
Other languages
Korean (ko)
Other versions
KR20110060408A (en
Inventor
이용규
박미화
Original Assignee
동국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 동국대학교 산학협력단 filed Critical 동국대학교 산학협력단
Priority to KR1020090116990A priority Critical patent/KR101078348B1/en
Publication of KR20110060408A publication Critical patent/KR20110060408A/en
Application granted granted Critical
Publication of KR101078348B1 publication Critical patent/KR101078348B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management 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

영역트리를 이용한 데이터 저장 장치 및 방법{Apparatus and method for storing data using R-tree}Apparatus and method for storing data using R-tree}

본 발명의 실시예들은 이동 환경에서의 센싱 데이터 저장 및 탐색 기술과 관련된다.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 data storage device 100 using an area tree according to an embodiment of the present invention.

도시된 바와 같이, 본 발명의 일 실시예에 따른 영역트리를 이용한 데이터 저장 장치(100)는 센싱부(102), 데이터 저장부(104), 및 제어부(106)를 포함하여 구성된다.As shown, the data storage device 100 using an area tree according to an embodiment of the present invention includes a sensing unit 102, a data storage unit 104, and a control unit 106.

센싱부(102)는 데이터 저장 장치(100)가 위치한 영역에 대한 정보 또는 데이터를 획득한다. 센싱부(102)가 획득하는 데이터는 예를 들어, 해당 영역의 온도, 습도, 조도 등이 될 수 있으며, 이는 데이터 저장 장치(100)에 구비되는 센서의 종류에 따라 달라질 수 있다.The sensing unit 102 obtains information or data about an area where the data storage device 100 is located. The data acquired by the sensing unit 102 may be, for example, a temperature, a humidity, an illuminance, etc. of a corresponding area, which may vary depending on the type of sensor provided in the data storage device 100.

데이터 저장부(104)에는 센싱부(102)에서 획득한 데이터가 저장된다. 데이터 저장부(104)는 자기 디스크 또는 반도체 메모리 등의 데이터 저장 장치 또는 매체로 구성될 수 있으며, 내부적으로 복수 개의 블록(block)으로 구분된다. 상기 블록의 크기는 데이터 저장부(104)를 구성하는 데이터 저장 장치 또는 매체의 종류에 따라 달라질 수 있으나, 일반적으로 1024 byte, 2048 byte, 4096 byte 등의 크기로 구성될 수 있으며, 데이터 저장부(104) 내에서 각 블록의 크기는 모두 같다.The data storage unit 104 stores the data obtained by the sensing unit 102. The data storage unit 104 may be configured as a data storage device or a medium such as a magnetic disk or a semiconductor memory, and is internally divided into a plurality of blocks. The size of the block may vary depending on the type of data storage device or media constituting the data storage unit 104, but generally, the block may have a size of 1024 bytes, 2048 bytes, 4096 bytes, or the like. In 104), each block has the same size.

데이터 저장부(104)는 다시 데이터 영역(108)과 인덱스 영역(110)으로 나누어진다. 데이터 영역(108)은 센싱부(102)에서 획득한 데이터가 실제로 저장되는 영역이며, 인덱스 영역(110)은 데이터 영역(108)에 데이터를 저장하고 필요에 따라 저장된 데이터를 검색하기 위한 영역으로서, 영역트리를 이용하여 데이터를 인덱싱 하도록 구성된다.The data storage unit 104 is further divided into a data area 108 and an index area 110. The data area 108 is an area where data acquired by the sensing unit 102 is actually stored, and the index area 110 is an area for storing data in the data area 108 and retrieving the stored data as needed. It is configured to index data using an area tree.

제어부(106)는 데이터 저장부(104) 내의 데이터 영역(108) 및 인덱스 영역(110)을 제어하여 센싱부(104)에서 획득한 데이터를 저장하거나 인덱스 영역(110)을 이용하여 데이터 영역(108)에 저장된 데이터를 검색한다. 구체적으로 제어부(106)는 센싱부(102)가 데이터를 센싱한 경우, 상기 센싱된 데이터의 데이터 획득 위치 정보를 이용하여 상기 영역트리를 순회하여 상기 데이터를 삽입할 단말 노드를 선택하고, 상기 선택된 단말 노드에 상기 센싱된 데이터를 저장한다.The control unit 106 controls the data area 108 and the index area 110 in the data storage unit 104 to store data obtained by the sensing unit 104 or the data area 108 using the index area 110. Retrieve data stored in). In detail, when the sensing unit 102 senses data, the controller 106 selects a terminal node to insert the data by traversing the area tree using the data acquisition position information of the sensed data. The sensed data is stored in the terminal node.

영역트리의Area of tree 구성 및 특징 Configuration and features

전술한 바와 같이, 본 발명의 실시예에서 제어부(106)는 영역트리를 이용하여 센싱 데이터를 저장 및 관리하며, 이하에서는 상기 영역트리의 구성 및 특징에 대하여 설명한다.As described above, in the embodiment of the present invention, the control unit 106 stores and manages the sensing data using the area tree. Hereinafter, the configuration and features of the area tree will be described.

도 2는 본 발명의 실시예에 따른 데이터 저장 장치(100)가 데이터를 센싱하기 위한 영역의 일례를 나타낸 도면이고, 도 3은 상기 도 2에 도시된 영역을 데이터 저장 장치(100)가 이동하면서 형성한 영역트리의 일례를 나타낸 도면이다.2 is a diagram illustrating an example of an area for sensing data by the data storage device 100 according to an exemplary embodiment of the present invention, and FIG. 3 is a diagram illustrating an area in which the data storage device 100 moves as shown in FIG. 2. It is a figure which shows an example of the formed area tree.

본 발명의 실시예에서의 영역트리는 다차원 데이터 색인 등에 사용되는 종래의 영역트리(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 sensing unit 102 in the terminal node on the basis of the sensing time (timestamp). If an overflow occurs, the region tree is divided. If necessary, the oldest data is overwritten without partitioning if the size of the partitioned area is less than or equal to the threshold.

영역트리에서의 각 노드 및 색인될 데이터는 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, numbers 1 to 7 are numbers of sensing regions numbered in the order of sensing, and each rectangle is an MBR of each node of the region tree shown in FIG. Nodes of the area tree are classified into non-terminal nodes and terminal nodes according to the presence or absence of child nodes. The non-terminal node is also referred to as an internal node where a child node exists and corresponds to R, a, and b nodes in FIG. 3. The non-terminal node stores the minimum rectangle including the MBR of the child nodes and the address of the child node. Node R among the non-terminal nodes is a root node, and an area indicated by the root node becomes all of the sensing area. Meanwhile, the terminal node is a node in which a child node does not exist and data is directly stored, and nodes 108-1 to 108-7 correspond to this in FIG. 3. The terminal node includes sensing data and a current data pointer. The current data pointer is a pointer indicating a location where new data is to be stored in the terminal node.

상기 영역트리의 레벨은 루트 레벨을 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개의 엔트리를 포함할 수 있으며, 루트 노드와 단말 노드를 제외한 내부 노드들은 적어도

Figure 112009073790111-pat00001
개의 엔트리를 포함해야 한다. 데이터 저장부(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
Figure 112009073790111-pat00001
Must contain three entries. If the block size of the data storage unit 104 is B and the entry size of the area tree is S, the M value may be calculated using Equation 1 below.

Figure 112009073790111-pat00002
Figure 112009073790111-pat00002

데이터 저장부(104)의 저장 공간 분할Storage Space Division of Data Storage Unit 104

본 발명의 실시예에서, 데이터 저장부(104)는 데이터 영역(108)과 인덱스 영역(110)으로 구분되며, 상기 영역트리의 비단말 노드(내부 노드)는 인덱스 영 역(110)에, 데이터가 저장되는 단말 노드는 데이터 영역(108)에 각각 저장된다. 이하에서는 데이터 저장부(104)를 효율적으로 사용하고 데이터 저장 용량을 최대화하기 위한 데이터 저장부(104)의 저장 공간 분할에 대해 설명한다.In an embodiment of the present invention, the data storage unit 104 is divided into a data region 108 and an index region 110, and non-terminal nodes (internal nodes) of the region tree are stored in the index region 110. Are stored in the data area 108, respectively. Hereinafter, the division of the storage space of the data storage unit 104 to efficiently use the data storage unit 104 and maximize the data storage capacity will be described.

데이터 저장부(104)의 전체 블록 수를 NB라 할 때, 인덱스 영역(110)에 저장되는 영역트리의 내부 노드 블록 수를 IB, 데이터 영역(108)에 저장되는 영역트리의 단말 노드 블록 수(데이터 블록 수)를 LB라 하면, NB, IB, LB의 관계는 다음의 수학식 2와 같다. 여기서 노드의 크기(bytes)와 블록의 크기(bytes)는 같은 것으로 가정한다. 따라서 노드의 수와 블록의 수는 동일한 의미이다.When the total number of blocks of the data storage unit 104 is N B , the number of internal node blocks of the area tree stored in the index area 110 is I B , and the terminal node blocks of the area tree stored in the data area 108 are represented. When the number (data block number) is L B , the relationship between N B , I B , and L B is expressed by Equation 2 below. It is assumed here that the node size (bytes) and the block size (bytes) are the same. Thus, the number of nodes and the number of blocks mean the same thing.

Figure 112009073790111-pat00003
Figure 112009073790111-pat00003

영역트리의 높이는 각 노드의 팬아웃(fanout)이 최소가 될 때, 즉 각각의 내부 노드들의 엔트리 개수가 최소가 될 때 최대가 된다. 영역트리의 각 내부 노드의 최소 엔트리 개수는

Figure 112009073790111-pat00004
이므로, 상기 영역트리의 최소 팬아웃은
Figure 112009073790111-pat00005
이 되며, 이 경우 영역트리의 최대 높이는 다음의 수학식 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
Figure 112009073790111-pat00004
Since the minimum fanout of the area tree is
Figure 112009073790111-pat00005
In this case, the maximum height of the area tree is calculated as in Equation 3 below.

Figure 112009073790111-pat00006
Figure 112009073790111-pat00006

상기 수학식은 영역트리의 높이를 H(H≥1)라 할 때 단말 노드의 최소 개수는 (

Figure 112009073790111-pat00007
)H-1이므로, (
Figure 112009073790111-pat00008
)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 (
Figure 112009073790111-pat00007
) H-1, so (
Figure 112009073790111-pat00008
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.

Figure 112009073790111-pat00009
Figure 112009073790111-pat00009

상기 수학식 4의 범위 값을 갖는 내부 노드의 블록 수 IB를 정확하게 계산하면 다음과 같다.If the block number I B of the internal node having the range value of Equation 4 is correctly calculated, it is as follows.

먼저, 레벨 L = H - 1에서 내부 노드의 개수 IH -1First, at level L = H-1, the number of internal nodes I H -1 is

Figure 112009073790111-pat00010
Figure 112009073790111-pat00010

이다. 이는 레벨 H - 1에 있는 내부 노드들이 실제로 저장해야 하는 엔트리 수가 LB이기 때문이다. 이와 유사한 방법으로, 레벨 L = H - 2에서의 내부 노드의 개수 IH -2to be. This level H - because the number of entries to be L B are actually stored in the internal nodes 1. In a similar way, the number of internal nodes I H -2 at level L = H-2 is

Figure 112009073790111-pat00011
Figure 112009073790111-pat00011

이 된다. 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.

Figure 112009073790111-pat00012
Figure 112009073790111-pat00012

Figure 112009073790111-pat00013
Figure 112009073790111-pat00013

Figure 112009073790111-pat00014
Figure 112009073790111-pat00014

Figure 112009073790111-pat00015
Figure 112009073790111-pat00015

이를 일반화하면, 영역트리의 레벨 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 Equation 5 below.

Figure 112009073790111-pat00016
Figure 112009073790111-pat00016

영역트리의 각 레벨의 내부 노드의 수는 상기 수학식 5에 의하여 알 수 있으며, 다음과 같이 이를 모두 합하면 영역트리의 모든 내부 노드들의 개수(블록의 수)를 알 수 있다.The number of internal nodes of each level of the area tree can be known by Equation 5 above, and the sum of all of the internal nodes (number of blocks) of the area tree can be known as follows.

Figure 112009073790111-pat00017
Figure 112009073790111-pat00017

상기 수학식 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 storage unit 104 is given by N B , the number of internal node blocks I B and data of the area tree of the area tree stored in the index area 110 by Equation 2, Equation 5 and Equation 6 are given. Since the number of terminal node blocks (number of data blocks) L B of the area tree stored in the area 108 can be obtained, the limited space can be efficiently utilized.

데이터 파일 구조Data file structure

도 4는 본 발명의 일 실시예에 따른 데이터 영역(108)의 데이터 저장 레코드의 일례를 나타낸 도면이다.4 is a diagram showing an example of a data storage record in the data area 108 according to an embodiment of the present invention.

데이터 영역(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 data area 108 is divided into a plurality of records. The record is a basic unit in which data sensed by the sensing unit 102 is stored. In the illustrated embodiment, the record 400 consists of 24 bytes in total length, the first 4 bytes 402 is the data acquisition time (timestamp), and the next 8 bytes 404, 406 are the data acquisition coordinates (x, y). ), The remaining 12 bytes (408, 410, 412) are composed of the sensing data. In the present embodiment, the temperature, illuminance, and humidity information of the data storage device 100 at the sensed location are stored by 4 bytes in the 12 bytes (408, 410, 412), respectively.

새로운 레코드의 삽입Insert new record

도 5는 본 발명의 일 실시예에 따른 영역트리를 이용한 데이터 저장 장치(100)에서의 레코드 삽입 방법(500)을 나타낸 순서도이다.5 is a flowchart illustrating a record insertion method 500 in a data storage device 100 using an area tree according to an embodiment of the present invention.

센싱부(102)에 새로운 데이터가 센싱된 경우, 제어부(106)는 먼저 영역트리를 루트 노드에서부터 순회(traverse)하여 상기 새로 센싱된 데이터를 삽입할 단말 노드를 선택한다(502). When new data is sensed by the sensing unit 102, the control unit 106 first traverses the region tree from the root node and selects a terminal node into which the newly sensed data is to be inserted (502).

상기 새로 획득된 데이터는 데이터 획득 위치, 즉 상기 데이터를 센싱한 영역의 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 step 504, it is next determined whether or not the selected terminal node can be divided (514). If it is possible to divide the selected terminal node, a new terminal node is created in the data area 108 (516), and the record stored in the selected terminal node and the newly sensed data are distributed to the newly generated terminal node ( 518). Thereafter, the MBR of the selected terminal node and the ancestor node of the generated terminal node is adjusted to reflect the change of the MBR of the terminal nodes (520).

만약 상기 514 단계에서 상기 선택된 단말 노드가 분할 가능하지 않은 경우에는 상기 센싱된 데이터를 상기 선택된 단말 노드에 저장된 레코드 중 가장 오래된 레코드에 덮어 쓴다(522). 즉, 본 발명의 실시예에서는 단말 노드에 더 이상 데이터를 저장할 공간이 없고 상기 단말 노드를 분할할 수 없는 경우, 상기 단말 노드에 할당된 레코드를 순환적으로 재사용하게 된다.If the selected terminal node is not partitionable in step 514, the sensed data is overwritten with the oldest record among the records stored in the selected terminal node (522). That is, in the embodiment of the present invention, when the terminal node no longer has space to store data and the terminal node cannot be divided, the record allocated to the terminal node is cyclically reused.

상기 선택된 단말 노드가 분할 가능하지 않은 경우는 다음의 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 data storage device 100 senses data while the data storage device 100 moves within the area as shown in FIG. 6, the numbers shown in the rectangles of FIG. Is the number of. FIG. 7 is an area tree generated by the data storage device 100 while moving the area of FIG. 6.

만약 데이터 저장 장치(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 data storage device 100 senses data at the fifteenth position shown in the circle in FIG. 6, the controller 106 selects a terminal node (108-15 in FIG. 9) to store the sensing data of the fifteenth position. Allocate the sensing data. Since the fifteenth position belongs to the region c, the MBR of the fifteenth position must be inserted into the node c, which is a non-terminal node of the region tree. However, as shown in FIG. 6, the node c has no space to insert data anymore. Therefore, partition node c into nodes c and e, and divide the existing data stored in node c into nodes c and e according to the location of MBR. Similarly, since the root node of FIG. 6 also overflows according to the division of the node c, the root node of FIG. 6 is divided into nodes F and G, and a new root node is created to point to the divided nodes F and G. 8 and 9 illustrate region division and region tree when the sensing data of the fifteenth region is inserted in this manner.

레코드의 삭제Deletion of records

전술한 바와 같이, 본 발명의 실시예에서 데이터 저장 장치(100)는 센싱 데이터를 저장할 단말 노드에 새로운 레코드를 삽입할 공간이 없고, 상기 단말 노드가 분할 가능하지 않은 경우 상기 단말 노드의 레코드 중 가장 오래된 레코드에 상기 센싱 데이터를 덮어쓰도록 구성된다. 즉 기존 데이터는 시간이 지나면서 새로운 데이터에 의하여 대체되는바, 본 발명의 실시예에서는 별도의 데이터 삭제 루틴은 존재하지 않는다. 따라서 본 발명의 실시예에 따를 경우 데이터의 삭제를 위하여 별도의 연산 및 이에 따른 에너지 소모가 필요하지 않으므로 에너지를 효율적으로 사용할 수 있다.As described above, in the embodiment of the present invention, the data storage device 100 does not have a space for inserting a new record in the terminal node to store the sensing data, and when the terminal node is not partitionable, the data storage device 100 is the most among the records of the terminal node. Configured to overwrite the sensing data with an old record. That is, the existing data is replaced by new data over time, so there is no separate data deletion routine in the embodiment of the present invention. Therefore, according to an exemplary embodiment of the present invention, since a separate operation and energy consumption are not required to delete data, energy can be efficiently used.

데이터의 검색Retrieval of data

도 10은 본 발명의 일 실시예에 따른 데이터 검색 방법(1000)을 나타낸 순서 도이다.10 is a flowchart illustrating a data retrieval method 1000 according to an embodiment of the present invention.

먼저, 검색하고자 하는 영역 질의를 생성한다(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 data storage device 100.

다음으로, 상기 영역 질의의 좌표값(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 data storage device 100 using an area tree according to an embodiment of the present invention.

도 2는 본 발명의 실시예에 따른 데이터 저장 장치(100)가 데이터를 센싱하기 위한 영역의 일례를 나타낸 도면이다.2 is a diagram illustrating an example of an area for sensing data by the data storage device 100 according to an exemplary embodiment of the present invention.

도 3은 상기 도 2에 도시된 영역을 데이터 저장 장치(100)가 이동하면서 형성한 영역트리의 일례를 나타낸 도면이다.3 is a diagram illustrating an example of an area tree formed while the data storage device 100 moves the area shown in FIG. 2.

도 4는 본 발명의 일 실시예에 따른 데이터 영역(108)의 데이터 저장 레코드의 일례를 나타낸 도면이다.4 is a diagram showing an example of a data storage record in the data area 108 according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 영역트리를 이용한 데이터 저장 장치(100)에서의 레코드 삽입 방법(500)을 나타낸 순서도이다.5 is a flowchart illustrating a record insertion method 500 in a data storage device 100 using an area tree according to an embodiment of the present invention.

도 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 data retrieval method 1000 according to an embodiment of the present invention.

Claims (13)

소정 영역 내의 데이터를 센싱하는 센싱부;A sensing unit for sensing data in a predetermined area; 복수 개의 블록을 포함하며, 상기 센싱부에서 센싱한 데이터가 저장되는 데이터 영역;A data area including a plurality of blocks and storing data sensed 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 data sensed by the sensing unit from among the blocks in the data area by using the sensing position information of the data sensed by the sensing unit and the area tree, and the data sensed by the sensing unit in the selected block A control unit for storing; 를 포함하는 데이터 저장 장치.Data storage device comprising a. 제1항에 있어서,The method of claim 1, 상기 데이터 영역의 각 블록은 새로운 데이터가 저장되는 위치를 가리키는 현재 데이터 포인터(current data pointer)를 포함하며, 상기 제어부는 상기 센싱부에서 센싱한 데이터를 상기 선택된 블록의 현재 데이터 포인터가 가리키는 위치에 저장하는, 데이터 저장 장치.Each block of the data area includes a current data pointer indicating a location where new data is stored, and the controller stores the data sensed by the sensing unit at a location indicated by the current data pointer of the selected block. Data storage device. 제2항에 있어서,3. The method of claim 2, 상기 제어부는, 상기 센싱부에서 센싱한 데이터를 저장하고, 상기 선택된 블록 내의 레코드 중 상기 데이터가 저장된 레코드의 다음 레코드를 가리키도록 상기 현재 데이터 포인터를 업데이트하는, 데이터 저장 장치.The control unit stores the data sensed by the sensing unit and updates the current data pointer to point to a next record of the record in which the data is stored among the records in the selected block. 제3항에 있어서,The method of claim 3, 상기 제어부는, 상기 센싱부에서 센싱한 데이터가 상기 선택된 블록의 마지막 레코드에 저장되는 경우, 상기 현재 데이터 포인터가 상기 선택된 블록의 첫 레코드를 가리키도록 상기 현재 데이터 포인터를 업데이트하는, 데이터 저장 장치.If the data sensed by the sensing unit is stored in the last record of the selected block, the control unit updates the current data pointer such that the current data pointer points to the first record of the selected block. 제1항에 있어서,The method of claim 1, 상기 영역트리의 최대 높이는 다음의 수학식The maximum height of the area tree is the following equation
Figure 112009073790111-pat00018
Figure 112009073790111-pat00018
(이때, H는 상기 영역트리의 최대 높이, M은 상기 영역트리의 각 내부 노드들의 최소 엔트리 개수, LB는 상기 상기 데이터 영역에 저장되는 상기 영역트리의 단말 노드 블록 수)Where H is the maximum height of the area tree, M is the minimum number of entries of each internal node of the area tree, and L B is the number of terminal node blocks of the area tree stored in the data area. 에 의하여 계산되는, 데이터 저장 장치.Calculated by the data storage device.
제5항에 있어서,The method of claim 5, 상기 영역트리의 각 레벨에서의 내부 노드의 수는 다음의 수학식The number of internal nodes at each level of the region tree is
Figure 112009073790111-pat00019
Figure 112009073790111-pat00019
(이때, IL은 영역트리의 레벨 L(1 = 1 = H - 1)에서의 내부 노드의 수, M은 상기 영역트리의 각 내부 노드들의 최소 엔트리 개수)Where I L is the number of internal nodes at level L (1 = 1 = H-1) of the area tree, and M is the minimum number of entries of each internal node in the area tree. 에 의하여 계산되는, 데이터 저장 장치.Calculated by the data storage device.
데이터 저장 장치의 데이터 저장 방법으로서,A data storage method of a data storage device, 상기 데이터 저장 장치에서, 기 설정된 소정 영역에 대한 데이터를 센싱하는 단계;Sensing data on a predetermined area in the data storage device; 상기 데이터 저장 장치에서, 상기 센싱한 데이터의 센싱 위치 정보 및 영역트리를 이용하여 상기 영역트리의 단말 노드 중 상기 센싱한 데이터를 저장할 단말 노드를 선택하는 단계;Selecting, by 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 sensed data; 상기 데이터 저장 장치에서, 상기 선택된 단말 노드의 현재 데이터 포인터(current data pointer)가 가리키는 레코드에 상기 센싱한 데이터를 저장하는 단계;In the data storage device, storing the sensed data in a record indicated by a current data pointer of the selected terminal node; 를 포함하는 데이터 저장 방법.Data storage method comprising a. 제7항에 있어서,The method of claim 7, wherein 상기 데이터 저장 단계의 수행 이후, 상기 데이터 저장 장치에서, 상기 현재 데이터 포인터가 상기 데이터가 저장된 레코드의 다음 레코드를 가리키도록 상기 현재 데이터 포인터를 업데이트하는 단계를 더 포함하는, 데이터 저장 방법.After performing the data storing step, further comprising updating, at the data storage device, the current data pointer such that the current data pointer points to the next record of the record in which the data is stored. 제8항에 있어서,The method of claim 8, 상기 데이터 저장 장치는, 상기 센싱한 데이터가 상기 선택된 단말 노드의 마지막 레코드에 저장되는 경우, 상기 현재 데이터 포인터가 상기 선택된 단말 노드의 첫 레코드를 가리키도록 상기 현재 데이터 포인터를 업데이트하는, 데이터 저장 방법.When the sensed data is stored in the last record of the selected terminal node, the data storage device updates the current data pointer such that the current data pointer points to the first record of the selected terminal node. . 제7항에 있어서,The method of claim 7, wherein 상기 데이터 저장 단계는,The data storage step, 상기 선택된 단말 노드에 새로운 레코드 삽입 공간이 존재하는지의 여부를 판단하는 단계;Determining whether a new record insertion space exists in the selected terminal node; 상기 선택된 단말 노드에 새로운 레코드 삽입 공간이 존재하지 않는 경우, 상기 선택된 단말노드가 분할 가능한지의 여부를 판단하는 단계;Determining whether the selected terminal node is splittable when there is no new record insertion space in the selected terminal node; 상기 선택된 단말 노드가 분할 가능한 경우, 새로운 단말 노드를 생성하고 상기 선택된 단말 노드에 저장된 레코드 및 상기 센싱한 데이터를 상기 생성된 단말 노드에 분배하는 단계;Generating a new terminal node and distributing a record stored in the selected terminal node and the sensed data to the generated terminal node when the selected terminal node is partitionable; 상기 선택된 단말 노드 및 상기 생성된 단말 노드의 조상 노드들의 최소한계영역(Minimum Bounding Region)을 조정하는 단계;Adjusting a minimum bounding region of the selected terminal node and ancestor nodes of the generated terminal node; 를 포함하는, 데이터 저장 방법.Comprising a data storage method. 제10항에 있어서,The method of claim 10, 상기 선택된 단말 노드가 분할 가능하지 않은 경우, 상기 센싱한 데이터를 상기 선택된 단말 노드에 저장된 레코드 중 가장 오래된 레코드에 엎어 쓰는, 데이터 저장 방법.And when the selected terminal node is not partitionable, overwrite the sensed data on the oldest record among the records stored in the selected terminal node. 제11항에 있어서,The method of claim 11, 상기 선택된 단말 노드가 분할 가능한지의 여부는, 상기 선택된 단말 영역의 최소한계영역의 크기가 기 설정된 소정값 이하인지의 여부 또는 상기 단말 노드의 분할 이후 상기 영역트리의 높이가 상기 영역트리의 최대 높이를 초과하는지의 여부에 따라 결정되는, 데이터 저장 방법.Whether or not the selected terminal node is split may include whether or not the size of the minimum limit area of the selected terminal area is equal to or less than a predetermined value or the height of the area tree after division of the terminal node increases the maximum height of the area tree. The method of storing data, determined by whether or not to exceed. 제7항 내지 제12항 중 어느 한 항에 기재된 방법을 컴퓨터상에서 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for performing the method according to any one of claims 7 to 12 on a computer.
KR1020090116990A 2009-11-30 2009-11-30 Apparatus and method for storing data using R-tree KR101078348B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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
US20210342259A1 (en) Key-value stores with optimized merge policies and optimized lsm-tree structures
US7512282B2 (en) Methods and apparatus for incremental approximate nearest neighbor searching
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
WO2018129500A1 (en) Optimized navigable key-value store
US10552460B2 (en) Sensor data management apparatus, sensor data management method, and computer program product
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
JP5863494B2 (en) Information processing apparatus, control method therefor, and program
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
JP5790755B2 (en) Database management apparatus and database management method
KR101078348B1 (en) Apparatus and method for storing data using R-tree
CN117131050B (en) Spatial index method based on magnetic disk and oriented to workload and query sensitivity
CN107133334B (en) Data synchronization method based on high-bandwidth storage system
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
KR101072558B1 (en) Method and apparatus for managing data based on hashing
CN110765128A (en) Optimized storage method based on large-scale GPS 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