KR100282640B1 - A database management method using partitioned minimum bounding rectangle - Google Patents

A database management method using partitioned minimum bounding rectangle Download PDF

Info

Publication number
KR100282640B1
KR100282640B1 KR1019980026356A KR19980026356A KR100282640B1 KR 100282640 B1 KR100282640 B1 KR 100282640B1 KR 1019980026356 A KR1019980026356 A KR 1019980026356A KR 19980026356 A KR19980026356 A KR 19980026356A KR 100282640 B1 KR100282640 B1 KR 100282640B1
Authority
KR
South Korea
Prior art keywords
node
tree
query
objects
window
Prior art date
Application number
KR1019980026356A
Other languages
Korean (ko)
Other versions
KR20000007169A (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 KR1019980026356A priority Critical patent/KR100282640B1/en
Publication of KR20000007169A publication Critical patent/KR20000007169A/en
Application granted granted Critical
Publication of KR100282640B1 publication Critical patent/KR100282640B1/en

Links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)

Abstract

본 발명은 비정형적인 형태의 공간 객체를 근사시키는 최소 경계 사각형(MBR)을 이용하여 대량의 복잡한 공간 객체들을 처리해야 하는 최근의 응용분야를 위한 데이터 베이스 관리 방법에 관한 것으로써 특히, 공간 객체를 둘러싼 MBR 영역의 반을 분할하여 두개의 부 객체를 산출하는 제 1 과정과, 상기 제 1 과정을 통해 산출되어진 각각의 부 객체들에 대해 분할된 최소 경계 사각형(DMBR)을 생성하는 제 2 과정과, 상기 DMBR들이 AOD에 의해 표현되는 제한 조건을 만족할 때 까지 각 좌표축을 번갈아가면서 반복적으로 쉬프팅시키는 제 3 과정, 및 DMBR의 크기가 어떤 한계치를 넘어가면 다시 분할되는 제 4 과정을 포함하는 것을 특징으로 하는 분할된 최소 경계 사각형을 이용한 데이터 베이스 관리 방법을 제공하여, 한 객체의 MBR을 주어진 제한 조건을 만족할 때 까지 두개의 부 객체로 반복적으로 분할하는 것을 통해 구성요소들의 개수가 주어진 제한 조건에 의해 조절될 수 있어 구성요소들의 개수와 복잡성 사이에서 최적 절충값을 사용자가 선택할 수 있도록 허용된다.The present invention relates to a database management method for a recent application field in which a large amount of complex spatial objects must be processed using a minimum boundary rectangle (MBR) approximating an irregularly shaped spatial object, A first step of dividing the MBR area into two sub-objects by dividing the sub-objects into a plurality of sub-objects, a second step of generating a sub-divided minimum bounding box (DMBR) for each of the sub-objects calculated through the first step, A third step of repeatedly shifting each coordinate axis alternately until the DMBR satisfies the constraint condition represented by the AOD, and a fourth step of dividing the DMBR again when the size of the DMBR exceeds a certain threshold value A method of managing a database using a partitioned minimum bounding rectangle is provided. The MBR of an object satisfies a given constraint The number of components through to repeatedly divided into two sub-object is allowed to make a compromise between the optimum value in the number and complexity of the components can be adjusted by the user to select a given constraint to.

또한, 본 발명의 효율적 활용을 위해 기존의 공간 색인 구조를 확장함에 따라 질의 조건을 만족하지 않는 후보 객체들을 재빨리 제거할 수 있으므로 질의 처리의 효율성이 향상될 수 있다.In addition, since the existing spatial index structure is expanded to efficiently utilize the present invention, candidate objects that do not satisfy the query condition can be quickly removed, and the efficiency of the query processing can be improved.

Description

분할된 최소 경계 사각형을 이용한 데이터 베이스 관리 방법(Data Base Management Method using Decomposed Minimum Bounding Rectangle)A database management method using a partitioned minimum bounding rectangle (Decomposed Minimum Bounding Rectangle)

본 발명은 지리정보시스템(geographic information system: GIS), 컴퓨터지원설계(computer-aided design: CAD), 멀티미디어 데이타베이스(multimedia database: MMDB)와 같은 최근의 응용 분야에서 요구되는 복잡한 공간 객체를 효율적으로 처리할 수 있도록 분할된 최소 경계 사각형(Decomposed Minimum Bounding Rectangle: DMBR)을 이용한 데이터 베이스 관리 시스템에 관한 것이다.The present invention efficiently analyzes complex spatial objects required in recent application fields such as geographic information system (GIS), computer-aided design (CAD), and multimedia database (MMDB) And more particularly to a database management system using a divided minimum bounding rectangle (DMBR).

일반적으로, 데이터 베이스 관리 시스템(Data Base Management System: DBMS)은 대량의 데이터 베이스를 효율적으로 운영 관리하기 위한 프로그램 패키지로써, 질의 언어, 색인 구조, 그리고 저장 시스템 등으로 구성되어 있다.In general, a database management system (DBMS) is a program package for efficiently managing and managing a large amount of databases, including a query language, an index structure, and a storage system.

현재, 기존의 상용 DBMS들은 정수나 실수, 혹은 스트링과 같은 단순한 데이터 타입들을 처리할 수 있도록 설계되어 있는데, 그 대표적인 선행기술로는 대한민국 특허출원번호 93-26018(명칭: 가변길이키 및 중복키를 지원하는 확장된 B+-트리 연산방법)을 예로 들 수 있다.Currently, existing commercial DBMSs are designed to handle simple data types such as integers, real numbers, or strings. A typical prior art is Korean Patent Application No. 93-26018 (titled: Variable Length Key and Duplicate Key An extended B + -tree operation method).

그러나, 상술한 선행기술에 대한 문제점으로써, GIS, CAD, MMDB와 같은 최근의 복잡한 응용분야에서는 이들 단순한 데이터 타입 뿐만 아니라 복잡한 공간 객체(기하학적 지형이나 지형의 윤곽을 묘사하는 객체)를 다루는 것이 요구됨에 따라 기존의 DBMS로는 복잡한 공간 객체를 다루는 응용분야에는 적합하지 않다는 한계가 있었다.However, as a problem with the above-described prior art, it is required in recent complex application fields such as GIS, CAD, and MMDB to handle complex spatial objects (objects describing the geometric topography or topographic outline) as well as these simple data types Therefore, the conventional DBMS has a limitation that it is not suitable for the application field of complex spatial objects.

따라서, 선행기술의 한계를 극복하기 위하여 즉, 최근의 응용분야에서 요구되는 복잡한 공간 객체를 효율적으로 처리하기 위하여 지금까지 많은 기법들이 연구되어 졌는데 이들 기법들은 크게 두 가지 방안으로 분류할 수 있다.Accordingly, in order to overcome the limitations of the prior art, that is, in order to efficiently process complex spatial objects required in recent application fields, many techniques have been studied so far, and these techniques can be roughly divided into two methods.

첫번째 방안은 최소 경계 사각형(minimum bounding rectangle: MBR)으로 비정형적인 복잡한 공간 객체를 근사하는 방법이고, 두 번째 방안은 볼록 다각형과 같이 MBR보다 더 정확한 근사 기법에 의해 공간 객체를 근사하는 방법이다.The first approach is to approximate an irregular complex space object with a minimum bounding rectangle (MBR), and the second is to approximate a space object with a more accurate approximation than MBR, such as a convex polygon.

복잡한 공간 객체를 근사하는 첫번째 방안인 MBR 방법을 구현하기 위한 대표적인 방식으로서 여과-정제(filtering-refinement) 방식과 객체 변환(object transformation) 방식을 고려할 수 있다.A filtering-refinement method and an object transformation method can be considered as a representative method for implementing the MBR method, which is a first scheme for approximating a complex spatial object.

먼저, 상기 MBR 방법의 구현을 위한 방식 중 여과-정제 방식에서의 질의 처리는 여과 단계와 정제 단계로 구분되는데, 첫번째 단계인 여과 단계에서는 전체 객체들을 MBR을 이용하여 후보 객체들의 집합으로 감소시키고, 두 번째 단계인 정제 단계에서는 후보 객체들을 정밀하게 재 조사하여 최종 객체들을 검출한다.First, among the methods for implementing the MBR method, the query processing in the filtering-refining method is divided into a filtering step and a refining step. In the first filtering step, all objects are reduced to a set of candidate objects using the MBR, In the second stage, the refinement step, the candidate objects are precisely researched to detect the final objects.

상술한 여과-정제 방식은 기존의 공간 색인 기법을 이용하여 질의를 만족하지 않는 객체들을 신속하게 제거할 수 있다는 장점은 있으나, 단순한 사각형으로 된 MBR로는 가상의 복잡한 공간 객체를 정확하게 표현하는데는 한계가 있다. 더욱이, 정확하지 못한 근사 때문에 이 방식은 질의 조건을 만족시키지 못하는 많은 불필요한 후보 객체(즉, 잘못된 히트(false hit))들을 포함할 수 있다. 그 결과, 잘못된 히트라도 불필요하게 값비싼 정제 단계로 전달된다.Although the filtering-refinement method described above has an advantage in that it can quickly remove objects that do not satisfy the query by using the existing spatial indexing technique, the simple square-shaped MBR has a limitation in accurately representing a complex spatial object have. Moreover, because of inaccurate approximations, this approach may contain many unnecessary candidate objects (i.e., false hits) that do not satisfy the query condition. As a result, even the wrong hit is transferred to an unnecessarily expensive purification step.

두 번째로, 상기 MBR 방법의 구현을 위한 방식 중 객체 변환 방식은 k차원의 공간 객체를 1차원의 비트스트링(bitstring)으로 변환(선행기술; 대한민국 특허출원번호 96-65570(명칭: HG-트리 색인구조 및 그의 삽입, 삭제, 검색방법))하거나, k차원의 공간 객체를 k차원적 구간으로 단순화한 후 그 구간을 2k차원의 점 객체로 변환하는 방법이다. 그러나 이러한 변환에도 불구하고 이 또한 근본적으로는 가상의 복잡한 공간 객체를 정확하게 표현하는 데는 한계가 있는 단순 사각형에 의한 MBR 방법이므로 공간 객체를 정확하게 근사할 수 없는 문제점을 내제하고 있다.Second, among the methods for implementing the MBR method, the object transformation method is a method of transforming a k-dimensional spatial object into a one-dimensional bit string (prior art: Korea Patent Application No. 96-65570 Index structure, and its insertion, deletion, and search method), or simplifying k-dimensional spatial objects into k-dimensional sections and then converting the sections into 2k-dimensional point objects. However, in spite of this transformation, it also introduces the problem that the spatial object can not be precisely approximated because it is fundamentally an MBR method based on a simple rectangle which has a limitation to accurately represent a virtual complex spatial object.

한편, 복잡한 공간 객체를 처리하기 위한 방안 중 상술한 MBR 방법의 문제점을 해소하기 위해 두 번째 방안으로써 MBR보다 더 정확한 근사 방법들이 제안되었다. 이들 중 대표적인 방식은 볼록 다각형에 의해 공간 객체를 근사하는 볼록 근사(convex approximation) 방식과 공간 객체를 분할하여 근사하는 객체 분할(object decomposition) 방식이 있는데, 이들은 근사의 정확도를 향상시키기 위하여 연구되어진 것들이다.On the other hand, more accurate approximation methods than MBR have been proposed as a second method to solve the problem of the MBR method described above for processing a complex spatial object. Among them, there is a convex approximation method of approximating a space object by convex polygons and an object decomposition method of approximating a space object by dividing them. to be.

그렇지만, 상기 볼록 근사 방식은 MBR보다 더 많은 매개변수를 필요로 하기 때문에 당연히 더 복잡한 공간 색인 기법을 요구한다. 더구나, 단지 하나의 근사만 사용하는 방법으로는 그 공간 객체의 복잡성을 감소시킬 수는 없다. 이러한 사실은 복잡한 공간 객체에 대해 값비싼 기하학적 공간 계산이 적용되어야 함을 의미한다.However, since the convex approximation method requires more parameters than the MBR, it requires a more complex spatial indexing technique. Moreover, using only one approximation can not reduce the complexity of the spatial object. This implies that expensive geometric space calculations should be applied to complex spatial objects.

반면에, 복잡한 공간 객체를 사다리꼴과 같은 단순한 구성요소들로 분할하는 객체 분할 방식은 근사의 정확도를 향상시킬 뿐만 아니라 공간 객체를 단순하게 만들 수 있다. 그러나, 산출되는 수많은 구성요소들이 질의 처리시 하나의 부담으로 작용하게되며, 더욱 심각한 것은, 공간 객체가 복잡하면 복잡할수록 더 많은 구성요소들이 그 객체로부터 산출됨에 따라 신속한 처리가 어려우며, 시스템의 복잡성과 저장 공간의 증가가 문제점으로 대두된다.On the other hand, object segmentation, which divides complex spatial objects into simple components such as trapezoids, not only improves the accuracy of the approximation but also simplifies spatial objects. However, a large number of calculated components act as a burden on the query processing. More seriously, the more complicated the spatial object is, the more elements are generated from the object, the faster the processing becomes difficult, An increase in storage space is a problem.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 특정 객체의 외곽 경계를 산출한 후 그 영역의 반을 분할하여 두 개의 부 객체를 산출하고, 다시 그 부 객체들의 외각 경계를 산출하는 과정을 반복적으로 수행하여 공간 질의의 성능을 향상시킨 분할된 경계 사각형을 이용한 데이터 베이스 관리 시스템을 제공하는 데 있다.In order to solve the above problems, an object of the present invention is to provide a method and an apparatus for calculating an outer boundary of a specific object, dividing a half of the outer boundary, And a database management system using the divided bounding rectangles, which improves the performance of spatial queries.

도 1a 내지 도 1c는 분할된 최소 경계 사각형을 적용한 경우를 설명하기 위한 예시도Figs. 1A to 1C are diagrams for explaining a case where a divided minimum bounding rectangle is applied. Fig.

도 2a와 도 2b는 도 1a 내지 도 1c에서 산출되는 최소 경계 사각형 및 그의 자료 구조를 나타낸 예시도FIGS. 2A and 2B are views showing an example of a minimum bounding rectangle calculated in FIGS. 1A to 1C and a data structure thereof

도 3은 분할된 최소 경계 사각형 방법의 자료 구조를 구축하는 과정을 나타낸 동작 순서 예시도FIG. 3 is a flowchart illustrating an operation sequence of a data structure of a partitioned minimum bounding box method

도 4는 분할된 최소 경계 사각형 방법의 색인 구조를 나타낸 예시도4 is an exemplary diagram showing an index structure of a partitioned minimum bounding rectangle method;

도 5은 점 질의 처리 과정을 나타낸 동작 순서 예시도FIG. 5 is a flowchart illustrating an example of an operation sequence

도 6a와 도 6b는 질의 점을 포함하는 공간 객체를 검사하는 예를 나타낸 도6A and 6B are diagrams illustrating an example of inspecting a spatial object including a query point

도 7은 영역 질의의 정제 단계를 수행하는 예를 나타낸 도7 is a diagram illustrating an example of performing an area query refinement step

도 8는 영역 질의 처리 과정을 나타낸 동작 순서 예시도FIG. 8 is a flowchart illustrating an example of an operation sequence showing an area query process

도 9은 플레인-스윕 기법을 수행하는 예를 나타낸 도9 is a diagram illustrating an example of performing a plane-sweep technique

도 10은 공간 조인 질의 처리 과정을 나타낸 동작 순서 예시도10 is a flowchart illustrating an example of an operation sequence of a spatial join query process

상기 목적을 달성시키기 위한 본 발명의 특징은 비정형적인 형태의 공간 객체를 근사하는 최소 경계 사각형(MBR)으로 복잡한 공간 객체들을 다루는 응용분야의 데이터 베이스 관리 방법에 있어서, 공간 객체를 둘러싼 MBR 영역의 반을 분할하여 두개의 부 객체를 산출하는 제 1 과정과, 상기 제 1 과정을 통해 산출되어진 각각의 부 객체들에 대해 분할된 최소 경계 사각형(DMBR)을 생성하는 제 2 과정과, 상기 DMBR들이 AOD(Accuracy Of the Decomposition)에 의해 표현되는 제한 조건을 만족할 때 까지 각 좌표축을 번갈아가면서 반복적으로 쉬프팅시키는 제 3 과정, 및 DMBR의 크기가 어떤 한계치를 넘어가면 다시 분할되는 제 4 과정을 포함하는 데 있다.According to an aspect of the present invention, there is provided a database management method for an application domain that handles complex spatial objects with a minimum bounding rectangle (MBR) approximating an atypical spatial object, A second step of generating a divided minimum bounding rectangle (DMBR) for each of the subobjects calculated through the first step; A third step of repeatedly shifting each coordinate axis alternately until the constraint expressed by Accuracy of the Decomposition is satisfied, and a fourth step of dividing the DMBR again when the size exceeds a certain threshold value .

상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 상기 제 1 과정에서 공간 객체를 분할할 때 객체 절단선이 선택되는데, 교차점이 객체의 외각 지점에서 발견될 때 이들을 무시함으로써 간단히 해결할 수 있는 제 1 단계와, 여러 개의 부 객체들이 산출될 때 절단선들 중에서 가장 작은 y(또는 x) 좌표값을 가지고 있는 것을 선택하여 이를 객체 절단선으로 선택하는 제 2 단계와; 상기 제 3 과정에서 제한 조건이 매개변수 g에 의해 관리되는 과정, 즉 AOD(g)는 MBR 영역의 2-g 보다 더 큰 DMBR들은 다시 분할되는 제 3 단계로 이루어지며, 분할된 구성요소들의 수와 근사의 정확도 사이에는 하나의 절충된 값이 존재하는데, 실제 실험을 수행시킨 결과 매개변수 g가 3일 때 성능이 최대화 되는 특징이 있다.According to another aspect of the present invention, an object cutting line is selected when dividing a spatial object in the first process. In the first process, an object cutting line is selected. A second step of selecting a smallest y (or x) coordinate value among the cut lines when a plurality of sub-objects are calculated and selecting the smallest y (or x) coordinate value as an object cutting line; In the third process, the process in which the restriction condition is managed by the parameter g, i.e., AOD (g) 2- g There is one compromised value between the number of divided components and the accuracy of the approximation. The actual experiment shows that when the parameter g is 3, the performance Is maximized.

상기 목적을 달성하기 위한 본 발명의 다른 특징은 분할된 최소 경계 사각형을 이용한 데이터 베이스 관리 방법에 있어서, 각 분할 단계마다 생성되는 결과들을 DR-트리(Decomposed Rectangle tree) 속으로 저장하는 과정과; DR-트리는 중간 노드와 리프 노드로 구성되어 있으며, 중간 노드에는 부 객체의 DMBR이 저장되며, 리프 노드에는 구성요소의 식별자와 DMBR을 포함하며, 리프 노드의 객체 식별자는 관련된 구성요소를 지시하는 과정과; DR-트리를 구축하기 위해 'Divide and Conquer' 기법을 사용하고, 입력으로써 하나의 객체를 표현하는 배열 p 및 객체를 분할할 때 수직 또는 수평 분할선이 교대로 변경되도록 하는 불리안 변수 d를 받아 들인 후, 결과로써 하나의 DR-트리가 생성되는 데 있다.According to another aspect of the present invention, there is provided a method of managing a database using a partitioned minimum bounding rectangle, the method comprising: storing results generated in each partitioning step into a DR-tree (Decomposed Rectangle tree); The DR-tree consists of an intermediate node and a leaf node. In the intermediate node, the DMBR of the sub-object is stored. The leaf node includes the identifier of the component and the DMBR. The object identifier of the leaf node indicates the related component and; We use the 'Divide and Conquer' technique to construct the DR-tree, the array p, which represents an object as input, and the boolean variable d, which causes the vertical or horizontal splitting line to change alternately when splitting the object And then one DR-tree is created as a result.

상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 원형의 객체들을 효율적으로 관리할 수 있는 기존의 색인 구조에 분할된 구성요소들을 구조화할 수 있는 색인 구조를 결합시키는 과정과, 두 부분으로 구성되는 색인 구조의 첫번째 부분은 원형의 객체들을 저장하기 위한 색인 구조로서 R*-트리를 수정 없이 사용하고, 두 번째 부분은 분할된 구성요소들을 저장하기 위해 DR-트리를 사용하는 과정과; 상기 색인 구조에 새로운 공간 객체를 삽입할 때 2단계(분할 알고리즘 적용과 R*-트리 삽입 알고리즘 적용)로 처리되는 이단계 색인 구조를 갖는 데 있다.According to another aspect of the present invention, there is provided a method for managing a circular object, the method comprising: combining an index structure for structuring divided elements into an existing index structure capable of efficiently managing circular objects; The first part of the index structure uses the R * -tree as an index structure to store circular objects without modification, and the second part uses DR-tree to store the partitioned components; And has a two-stage index structure in which a new spatial object is inserted into the index structure in two steps (application of a partitioning algorithm and application of an R * -tree insertion algorithm).

상기 목적을 달성하기 위한 본 발명의 또 다른 특징은 이단계 색인 구조에 있어서, 공간 질의 처리는 점 질의, 영역 질의, 그리고 공간 조인 질의로 구분되며, 점 질의 처리과정은 정제 단계를 수행하기 전에 DR-트리의 DMBR들을 사용하여 많은 잘못된 히트들을 재빨리 제거하고, DMBR들에 의해 여과된 간단한 구성요소들에 대해서만 정제 단계를 수행하는 과정과, R*-트리의 탐색 알고리즘을 사용하여 질의 점을 포함하는 모든 레코드 식별자를 찾고, 이들 식별자가 지시하는 DR-트리를 주 메모리로 읽어 들인 후 루트 노드부터 각 노드를 검사하는 과정과, 조사되는 노드가 리프 노드가 아니면, 그 노드에 저장되어 있는 사각형 좌표가 질의 점을 포함하는지 검사하고, 포함한다면 왼쪽 및 오른쪽 자식 노드들에 대해 알고리즘을 재귀적으로 호출하는 과정과, 조사되는 노드가 리프 노드면, 그 노드에 저장되어 있는 DMBR 좌표가 질의 점을 포함하는지 검사하고, 만일 포함한다면 점 포함 객체 검사 과정을 거치고, 그렇지 않으면 이 알고리즘을 벗어나는 과정을 포함하는 데 있다.According to another aspect of the present invention, there is provided a two-level index structure, wherein the spatial query processing is divided into a point query, an area query, and a spatial join query, and the point query processing is performed prior to performing the refinement step, Using the DMBRs of the tree to quickly remove many false hits and performing refinement steps only on the simple components filtered by the DMBRs and using the R * Searching all the record identifiers, reading the DR-tree indicated by these identifiers into the main memory, and examining each node from the root node, and if the examined node is not a leaf node, Checking whether the query node includes a query point, and if so, calling the algorithm recursively for the left and right child nodes, In this paper, we propose a method to check whether a DMBR node stored in a leaf node includes a query point, if the node is a leaf node.

상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 영역 질의 처리과정은 여과된 객체들에 대해 정제 단계를 바로 적용하기 전에 관련된 DR-트리가 주 메모리로 전송된 후, DMBR들이 질의 윈도우에 교차되는지 검사하는 과정과, 정제 단계가 기하학적 계산 알고리즘에 의해 객체의 경계선을 따라 교차가 검출될 때까지 순차적으로 스캔되며, 마지막 선분까지 교차가 검출되지 못하면 이 객체는 질의 윈도우와 교차되지 않는 것으로 간주하는 과정과, 객체의 경계선을 스캔하면서 실제로 교차 검사가 필요한지 먼저 결정하는 과정과, 선분의 양 끝점이 윈도우의 위쪽, 아래쪽, 왼쪽, 오른쪽 영역에 놓여 있는지 조사하는 영역 검사 과정과, 선분에서 윈도우 외부에 있는 한 끝점을 선택하고, 만일 이 끝점이 윈도우의 왼쪽 영역에 놓여져 있다면 이 선분이 윈도우의 왼쪽 경계와 교차하는지를 검사하는 과정을 포함하는 데 있다.In order to accomplish the above object, an area query processing step includes a step of determining whether DMBRs are crossed in the query window after the relevant DR-tree is transferred to the main memory before immediately applying the refinement step to the filtered objects The inspection process and the refinement process are sequentially scanned by the geometric calculation algorithm until an intersection is detected along the object boundary, and if the intersection is not detected up to the last segment, the object is regarded as not intersecting the query window A step of determining whether intersecting inspection is actually required while scanning the boundary line of the object, a region inspecting process of examining whether both end points of the line segment are located in the upper, lower, left, and right regions of the window, Select an endpoint, and if this endpoint is in the left area of the window, It is to include a process of checking whether the intersection with the left edge of the window.

상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 R*-트리의 탐색 알고리즘을 사용하여 질의 윈도우와 교차되는 MBR을 가지고 있는 모든 레코드 식별자를 찾고, 이들 식별자가 지시하는 DR-트리를 주 메모리로 읽어 들인 후 루트 노드부터 각 노드를 검사하는 과정과; 조사되는 노드가 리프 노드가 아니면, 그 노드에 저장되어 있는 사각형 좌표가 윈도우에 의해 포함되는지 검사하여, 포함된다면 Oid를 반환하고, 그렇지 않으면 그 노드가 윈도우에 겹치는지 검사하는 과정과; 노드가 윈도우에 겹친다면, 왼쪽 및 오른쪽 자식 노드들에 대해 이 알고리즘을 재귀적으로 호출하는 과정과; 조사되는 노드가 리프 노드면, 그 노드에 저장되어 있는 DMBR 좌표가 윈도우에 의해 포함되는지 검사하여, 포함된다면 Oid를 반환하고, 그렇지 않으면 그 노드가 윈도우에 겹치는지 검사하는 과정과; 노드가 윈도우에 겹친다면 구성요소의 각각의 선분에 대해 그 선분이 윈도우 내에 존재하는지 검사하여, 만일 존재한다면 Oid를 반환하고, 그렇지 않으면 영역 검사를 적용하는 과정과; 만일 영역 검사에 의해 간단히 결정되지 않는다면 교차 검사를 적용하는데, 하나의 교차가 검출된다면 Oid를 반환하고, 그렇지 않으면 다음 선분을 취하는 과정을 포함하는 데 있다.In order to achieve the above object, an additional feature of the present invention is to find all record identifiers having an MBR intersecting with a query window using an R * -tree search algorithm, and to use DR-trees indicated by these identifiers as main memory Checking each node from the root node after reading it; If the node to be examined is not a leaf node, checking whether the rectangular coordinates stored in the node are included by the window and returning Oid if included, or checking whether the node overlaps the window; Recursively invoking the algorithm on the left and right child nodes if the node overlaps the window; Checking whether the examined node is a leaf node, whether the DMBR coordinates stored in the node are included by the window, returning Oid if included, and checking if the node overlaps the window; Checking if the segment exists in the window for each segment of the component if the node overlaps the window, returning Oid if present, and otherwise applying a region check; If it is not simply determined by the area check, apply a cross check, returning Oid if one intersection is detected, and otherwise taking the next line segment.

상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 공간 조인 처리과정은 정제 단계의 효율성 향상을 위해 한단계 더 연속되는 여과 단계를 수행하여 비싼 정제 단계의 성능을 향상 시키기 위해 DMBR들에 의해 질의를 만족하지 못하는 객체들을 가능한 많이 제거한 후에 교차되는 구성요소들에 대해 정제 단계를 수행하는 과정과, 플레인-스윕(plane-sweep) 기법에 의해 수행되는 정제 단계에서 두 DMBR들이 서로 겹쳐지는 교차 영역 내에 있는 선분들만 한정하여 검사를 수행하는 과정을 포함하는 데 있다.In order to improve the efficiency of the purification step, the spatial join processing step is performed in order to improve the performance of the expensive purification step by performing one more continuous filtering step in order to achieve the above object. A step of performing a refinement step on intersecting components after eliminating as many objects as possible, and a refinement step performed by a plane-sweep technique. And performing the inspection by limiting only the users.

상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 R-트리 조인 알고리즘을 사용하여 두 공간 객체의 MBR들이 교차되는 모든 레코드 식별자를 찾고, 이들 식별자들이 지시하는 두개의 DR-트리를 주 메모리로 읽어 들인 후 루트 노드부터 각 노드를 검사하는 과정과, 조사되는 두 노드가 둘 다 리프 노드인 경우에는, 먼저 그 노드들에 저장된 DMBR들이 서로 겹쳐지는 교차 영역 내에 있지 않은 선분들을 제거하고, 플레인-스윕 기법을 적용하여 교차가 발견된다면 이 Oid들을 반환하는 과정과, 한 노드가 리프 노드이고 다른 한 노드가 리프 노드가 아닌 경우에는, 리프 노드가 아닌 노드에 대한 왼쪽 및 오른쪽 자식 노드들에 대해 이 알고리즘을 재귀적으로 호출하는 과정, 및 두 노드 모두 리프 노드가 아닌 경우에는, 두 노드에 대한 왼쪽 및 오른쪽 자식 노드들에 대해 이 알고리즘을 재귀적으로 호출하는 과정을 포함하는 데 있다.In order to achieve the above object, an additional feature of the present invention is to find all record identifiers in which MBRs of two spatial objects intersect using an R-tree join algorithm, and read two DR-trees indicated by these identifiers into a main memory And if the two nodes to be examined are both leaf nodes, first remove the lines that are not in the intersecting area where the DMBRs stored in the nodes are overlapped with each other, If an intersection is found by applying the sweep technique, the process of returning these Oids is performed. If one node is a leaf node and the other node is not a leaf node, the left and right child nodes of a leaf node In the process of invoking the algorithm recursively, and if both nodes are not leaf nodes, the left and right child And recursively invoking the algorithm for the nodes.

우선, 본 발명에서 적용하고자 하는 기술적 사상을 간략히 살펴보면, 본 발명의 DMBR 방법은 한 객체를 둘러싼 MBR 영역의 반을 분할하여 두개의 부 객체를 산출한다. 그러고 나서 각각의 부 객체에 대해 MBR(이를 DMBR이라 한다)을 생성한다. 이러한 분할 과정은 그 DMBR들이 주어진 제한 조건을 만족할 때 까지 각 좌표축을 번갈아가면서 반복적으로 수행된다. 제한 조건은 AOD에 의해 표현되는데, 이는 DMBR의 크기가 어떤 한계치를 넘어가면 다시 분할되는 것을 의미한다. 그 한계치는 매개변수 g에 의해 관리된다. 즉 AOD(g)는 MBR 영역의 2-g보다 더 큰 DMBR들은 다시 분할함을 의미한다.First, the technical idea to be applied in the present invention will be briefly described. In the DMBR method of the present invention, half of the MBR area surrounding an object is divided into two sub-objects. Then, MBR (called DMBR) is generated for each subobject. This segmentation process is repeatedly performed with each coordinate axis alternating until the DMBRs meet the given constraints. The constraint is expressed by the AOD, which means that the size of the DMBR will be subdivided if it exceeds a certain threshold. The threshold value is managed by the parameter g. That is, AOD (g) means that DMBRs larger than 2- g of the MBR region are divided again.

이하, 첨부한 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 설명한다.Hereinafter, preferred embodiments according to the present invention will be described with reference to the accompanying drawings.

도 1a내지 도 1c는 본 발명에 따른 DMBR 방법을 적용한 한 예를 나타낸 것으로, 도 1a는 MBR로 근사된 한 공간 객체를 보여주고 있다. 한계치를 MBR 영역의 25% (즉, AOD(2))라고 가정하면, 먼저 그 객체가 중간 수직 좌표축에 의해 두개의 부 객체들로 분리된다.1A to 1C show an example of applying the DMBR method according to the present invention. FIG. 1A shows a spatial object approximated by MBR. Assuming that the threshold is 25% of the MBR area (ie, AOD (2)), the object is first separated into two subobjects by the middle vertical coordinate axes.

그러고 난 후 도 1b에 도시되어 있는 바와 같이 각각의 부 객체에 대해 DMBR을 생성한다. 왼쪽에 있는 부 객체의 DMBR은 MBR 영역의 2-2보다 작은 반면에, 오른쪽에 있는 부 객체의 DMBR은 MBR 영역의 2-2보다 크다.After that, a DMBR is generated for each sub-object as shown in FIG. 1B. The DMBR of the sub-object on the left is smaller than 2 -2 of the MBR region, whereas the DMBR of the sub-object on the right is larger than 2 -2 of the MBR region.

따라서 도 1(c)와 같이 오른쪽 부 객체에 대해 중간 수평 좌표축에 의해 분할이 일어난다. 그런 후 반복적인 분할은 정지한다. 왜냐하면, 이제 모든 DMBR들이 MBR 영역의 2-2보다 작기 때문이다.Therefore, as shown in FIG. 1 (c), the right sub-object is divided by the middle horizontal coordinate axes. The iterative partitioning then stops. Because now all DMBRs are smaller than 2 -2 in the MBR area.

이때, DMBR 방법은 도 1에 도시되어 있는 경우와는 다른 다양한 경우들을 취급해야만 하는데, 통상 하나의 객체를 분할할 때 여러 개의 부 객체들이 산출될 수 있으므로, 이러한 모든 경우들을 일관되게 처리하는 하나의 체계화된 기법이 필요하다.At this time, the DMBR method has to deal with various cases different from those shown in FIG. 1. Since a plurality of sub-objects can be calculated when one object is divided, Systematic techniques are needed.

또한, DMBR 방법은 분할된 구성요소들의 수와 근사의 정확도를 적절히 조절할 수 있는 하나의 매개변수 g를 가지고 있다. 매개변수의 값이 낮을 때, 구성요소들의 수는 최소화될 수 있으나 근사의 정확도는 상대적으로 나빠진다. 반면에 매개변수의 값이 높을 때 근사의 정확도는 좋아진다. 그러나 구성요소들의 개수가 많이 증가됨을 관찰할 수 있다. 이러한 관찰로부터 구성요소들의 수와 근사의 정확도 사이에는 하나의 절충된 값이 존재할 수 있다고 추론할 수 있다.The DMBR method also has one parameter, g, that can appropriately adjust the number of components and the accuracy of the approximation. When the value of the parameter is low, the number of components can be minimized, but the accuracy of the approximation is relatively poor. On the other hand, the accuracy of the approximation improves when the value of the parameter is high. However, it can be observed that the number of components increases greatly. From these observations it can be inferred that there may be one compromised value between the number of components and the accuracy of the approximation.

본 발명에서는 실제 실험을 수행시킨 결과 매개변수 g가 3일 때 성능이 최대화 됨을 알 수 있었다. (실험 과정 및 결과에 대해서는 서술하지 않음. 참조 문헌: Y. J. Lee, S. J. Lee, and C. W. Chung, "Object Decomposition for Spatial Query Processing," International Journal of Information Technology, Volume 3, Number 1, pp. 35-62, World Scientific Publishing Company, June 1997)According to the present invention, when the parameter g is 3, the performance is maximized. YJ Lee, SJ Lee, and CW Chung, "Object Decomposition for Spatial Query Processing," International Journal of Information Technology, Volume 3, Number 1, pp. 35-62 , World Scientific Publishing Company, June 1997)

DMBR 방법을 효율적으로 구현하기 위해 각 분할 단계마다 생성되는 결과들은 DR-트리라고 하는 2차원 이진 트리(2-dimensional binary tree) 속으로 저장된다.To efficiently implement the DMBR method, the results generated at each partitioning step are stored in a 2-dimensional binary tree called a DR-tree.

DMBR 방법에서는 한 객체가 정확하게 두개의 부 객체로 반복 분할되기 때문에 이진 트리는 적합한 구조라고 할 수 있다. 하드 디스크에 저장된 DR-트리는 그 객체에 대한 정제 단계가 요구될 때 주 메모리로 전체가 이동된다. DR-트리의 구조는 LSD-트리와 비슷한데, 차이점은 LSD-트리의 분할 영역은 전체의 반(1/2)인데 반해 DR-트리의 분할 영역은 DMBR에 의해 표시된다. DR-트리는 리프 노드와 중간 노드로 구성되어 있으며, 리프 노드에는 구성요소의 식별자와 DMBR을 포함하며, 중간 노드에는 부 객체의 DMBR이 저장된다.In the DMBR method, a binary tree is a suitable structure because an object is repeatedly divided into two sub-objects precisely. The DR-tree stored on the hard disk is entirely moved to the main memory when a refinement step for that object is required. The structure of the DR-tree is similar to the LSD-tree. The difference is that the partition of the LSD-tree is half (half) of the whole, whereas the partition of the DR-tree is indicated by the DMBR. The DR-tree consists of a leaf node and an intermediate node. The leaf node includes a component identifier and a DMBR, and the intermediate node stores the DMBR of the sub-object.

도 2a와 도 2b는 DR-트리의 구조를 도 1의 결과를 이용하여 설명한 것으로, 도 2a는 DMBR 방법에 의해 산출되는 DMBR들을 표시하고 있으며, 도 2b는 이와 관련된 DR-트리를 보여주고 있다.FIGs. 2A and 2B illustrate the structure of a DR-tree using the results of FIG. 1, FIG. 2A shows DMBRs calculated by the DMBR method, and FIG. 2B shows DR-trees related thereto.

이 트리는 3개의 리프 노드와 2개의 중간 노드로 구성되어 있는데, 사각형 efcg, ibjk, lmgn은 리프 노드에 저장된 DMBR을 나타내고 있고, 사각형 hbgd, abcd는 자식 노드에 있는 사각형들을 포함하는 최소 경계 사각형이다. 리프 노드의 객체 식별자는 관련된 구성요소를 지시하고 있다.The tree consists of three leaf nodes and two intermediate nodes. The rectangles efcg, ibjk, and lmgn denote the DMBR stored in the leaf node, and the rectangles hbgd and abcd are the minimum bounding rectangles including the rectangles in the child nodes. The object identifier of the leaf node indicates the associated component.

상기와 같은 DR-트리를 구축하기 위한 알고리즘은 첨부한 도 3에 도시되어 있는 바와 같다.The algorithm for constructing the DR-tree is as shown in FIG.

이 알고리즘은 'Divide and Conquer' 기법을 사용한다. 입력으로써 하나의 객체를 표현하는 배열 p 및 객체를 분할할 때 수직 또는 수평 분할선이 교대로 변경되도록 하는 불리안 변수 d를 받아 들인 후, 이 알고리즘을 수행하면 결과로써 하나의 DR-트리가 생성된다. 알고리즘 수행 과정을 상세히 설명하면,This algorithm uses the 'Divide and Conquer' technique. If we take an array p that represents an object as input and a boolean variable d that causes the vertical or horizontal splitting line to change alternately when splitting the object, then performing this algorithm will result in a single DR-tree being created do. Describing the algorithm execution process in detail,

먼저, 스텝 S101에서 배열 p로부터 입력 객체의 MBR이나 DMBR의 좌표 값을 찾는다. 이때, MBR인 경우에는 스텝 S102에서 MBR의 면적을 계산한 후 이 면적을 DMBR 면적으로 설정하고, 하나의 DR-트리를 만들기 위해 이의 루트 노드(root node)를 초기화 한다.First, in step S101, the coordinate value of the MBR or DMBR of the input object is searched from the array p. At this time, if the MBR is MBR, the area of the MBR is calculated in step S102, the area is set as the DMBR area, and a root node thereof is initialized to make one DR-tree.

그러나, DMBR인 경우에는 스텝 S103의 과정을 통해 단지 DMBR 면적만 계산한다.However, in the case of the DMBR, only the DMBR area is calculated through the process of step S103.

이후, 스텝 S104에서는 DMBR 면적이 MBR 면적/2g보다 크고 p의 꼭지점 개수가 (원형 객체의 꼭지점 개수)/2g보다 큰가를 판단하여 해당 조건을 만족한다고 판단되면 스텝 S105로 진행한다. 상기 스텝 S105에서는 하나의 중간 수직(또는 수평) 분할선을 만들며, 스텝 S106에서는 배열 p내에 있는 각각의 선분에 대해서 다음을 수행한다.Then, in step S104, it is determined whether the DMBR area is larger than MBR area / 2 g and the number of vertexes of p is larger than the number of vertexes of circular object / 2 g . If it is determined that the DMBR area satisfies the condition, the process proceeds to step S105. In step S105, one middle vertical (or horizontal) dividing line is created. In step S106, the following is performed for each line segment in the array p.

상기 스텝 S106에서 정의된 선분이 중간 분할선의 왼쪽(또는 위쪽)에 존재하는 가를 스텝 S107에서 판단하여 해당 조건에 만족하는 경우 스텝 S108로 진행하여 선분의 양 끝점을 배열 p1에 첨가한다.If it is determined in step S107 whether or not the line segment defined in step S106 exists on the left (or above) the intermediate division line, the process proceeds to step S108 and both end points of the line segment are added to the array p1.

만약, 상기 스텝 S107에서 정의된 선분이 중간 분할선의 왼쪽(또는 위쪽)에 존재하지 않는다고 판단되면 스텝 S109로 진행하여 정의된 선분이 중간 분할선의 오른쪽(또는 아래)에 존재하는가를 판단하는데, 해당 조건에 만족하는 경우 스텝 S110으로 진행하여 선분의 양 끝점을 배열 p2에 첨가한다.If it is determined that the line segment defined in step S107 does not exist on the left (or above) the middle dividing line, the process proceeds to step S109 to determine whether the defined line segment exists on the right (or below) the middle dividing line. , The flow advances to step S110 to add both end points of the segment to the array p2.

또한, 상기 스텝 S109에서도 조건을 만족하지 못하는 경우 스텝 S111에서는 정의된 선분이 중간 분할선과 교차하는 가를 판단하게 되는데, 교차점들을 발견하게되면 스텝 S112로 진행하여 해당 교차점들을 배열 p1과 p2에 첨가한다.If the condition is not satisfied at step S109, it is determined at step S111 whether the line segment defined by the intersection is intersected with the intermediate division line. If intersection points are found, the process proceeds to step S112 and the intersection points are added to the arrays p1 and p2.

상술한 스텝 S106에서 스텝 S112까지의 과정이 수행된 이후에는 스텝 S113으로 진행하여 모든 객체의 선분에 대해 수행 완료되었는지 조사하고, 수행 완료되지 않았다고 판단되면 상기 스텝 S106으로 재진행하여 상술한 과정을 재 수행한다.After the processes from step S106 to step S112 are performed, the process proceeds to step S113 to check whether or not the line segments of all the objects are completed. If it is determined that the line segments have not been completed, the process returns to step S106, do.

반면에, 상기 스텝 S113에서 수행 완료되었다고 판단되면 DR-트리를 구축하는 단계로 진입하는데, 즉, 스텝 S114로 진행하여 배열 p1에 관련된 DMBR 좌표들은 현재 노드의 왼쪽 노드 속으로 이동하고, 스텝 S115에서는 배열 p2에 관련된 DMBR 좌표들은 현재 노드의 오른쪽 노드 속으로 이동한다.On the other hand, if it is determined in step S113 that the execution is completed, the DR-tree is constructed, that is, the DMBR coordinates related to the array p1 move to the left node of the current node in step S114, and in step S115 The DMBR coordinates associated with array p2 move into the right node of the current node.

이와같은 분리된 두개의 부 객체를 표현하는 두개의 배열이 생성되면 다음 분할이 수직 및 수평 분할선에 대해 교대로 수행되도록 불리안 변수 d를 세트하고(S116), 분리된 객체의 각각에 대해 이 알고리즘을 재귀적으로 호출하여 다음 분할이 수행되도록 한다(S120, S130).If two arrays representing two separated subobjects are generated, the boolean variable d is set so that the next division is performed alternately with respect to the vertical and horizontal division lines (S116), and for each of the separated objects, The algorithm is recursively called so that the next segmentation is performed (S120, S130).

한편, 상기 스텝 S104에서 DMBR 면적이 MBR 면적/2g보다 크지 않거나 p의 꼭지점 개수가 (원형 객체의 꼭지점 개수)/2g보다 크지 않다면, 이 프로그램을 끝내고 생성된 DR-트리를 반환한다.On the other hand, if the DMBR area is not larger than the MBR area / 2 g or the number of vertices of p (the number of vertexes of the circular object) / 2 g in step S104, the program is terminated and the generated DR-tree is returned.

상술한 바와 같은 객체 분할 방법에 있어서 공간 질의에 관련되는 구성요소들의 집합을 신속히 참조할 수 있는 능력이 매우 중요하다. 이를 위해서는 구성요소들의 집합을 체계화할 수 있는 효율적인 색인 구조가 필수적이다. DMBR 방법에서는 기존의 색인 구조를 확장하였다. 즉 원형의 객체들을 효율적으로 관리할 수 있는 기존의 색인 구조에 분할된 구성요소들을 구조화할 수 있는 색인 구조를 결합시켰다. 기존의 색인 구조로서는 현재 가장 널리 사용되고 있는 R*-트리가 선택되었다. 분할된 구성요소들은 DR-트리 속으로 저장된다.In the object segmentation method described above, the ability to quickly refer to a set of elements related to spatial queries is very important. This requires an efficient index structure to organize the set of components. The DMBR method extends the existing index structure. In other words, it combines the index structure that can structure the divided elements into the existing index structure that can efficiently manage the circular objects. The most widely used R * - tree is selected as the existing index structure. The partitioned components are stored in the DR-tree.

따라서, 첨부한 도 4에서는 기존의 색인 구조를 확장한 이단계 색인 구조를 묘사하고 있다. 이 색인 구조는 두 부분으로 구성되어 있는데, 첫번째 부분은 원형의 객체들을 저장하기 위한 색인 구조로서 R*-트리를 수정 없이 사용한 것이다. 두 번째 부분은 분할된 구성요소들을 저장하기 위해 DR-트리를 사용한다. R*-트리는 리프(leaf) 노드와 중간 노드로 구성되어 있으며, 리프 노드에는 원형 객체의 식별자와 MBR, 그리고 DR-트리에 대한 주소 지시자를 포함하고 있다. 중간 노드에는 자식 노드의 주소 지시자와 자식 노드의 사각형 영역을 포함하고 있다. 도 4에 의해 생성된 DR-트리가 R*-트리의 관련된 리프 노드에 첨가된다.Accordingly, FIG. 4 is an illustration of a two-stage index structure that extends the existing index structure. The index structure is composed of two parts, the first part is the R * -tree used as an index structure for storing circular objects without modification. The second part uses DR-trees to store the partitioned components. The R * -tree consists of a leaf node and an intermediate node. The leaf node contains an identifier of the circular object, an MBR, and an address indicator for the DR-tree. The intermediate node contains the address indicator of the child node and the rectangular area of the child node. The DR-tree generated by Figure 4 is added to the associated leaf node of the R * -tree.

이단계 색인 구조에 새로운 공간 객체를 삽입하는 과정은 다음과 같이 2단계로 처리된다.The process of inserting a new spatial object into the two-stage index structure is performed in two steps as follows.

1단계: 첨부한 도 3에 도시되어 있는 알고리즘 적용Step 1: Apply the algorithm shown in FIG. 3 attached

먼저 새로운 객체에 대한 MBR을 계산한 후, 도 3의 알고리즘을 적용하고, 이 알고리즘에 의해 DR-트리가 생성된다. DR-트리는 저장 장치에 지속적으로 저장되어 정제 단계를 수행할 때 주 메모리로 전송되므로 주 메모리 내에서 DR-트리를 구축한다거나 포인터(pointer) 변환과 같은 작업이 필요 없다.First, after calculating MBR for a new object, the algorithm of FIG. 3 is applied, and DR-tree is generated by this algorithm. Since the DR-tree is continuously stored in the storage device and is transferred to the main memory when performing the refinement step, there is no need to construct a DR-tree in the main memory or to perform operations such as pointer conversion.

2단계: R*-트리 삽입 알고리즘 적용Step 2: Apply R * - tree insertion algorithm

R*-트리 구축을 위해 기존의 R*-트리 삽입 알고리즘이 사용된다 (R*-트리 삽입 알고리즘에 대해서는 서술하지 않음. (참조 문헌: N. Beckmann, H. P, Kriegel, R. Schneider, and B. Seeger, "The R*-트리: An Efficient and Robust Access Method for Points and Rectangles," Proceedings of the ACM SIGMOD International Conference on Management of Data, pp. 322-331, 1990). 이러한 삽입 작업의 결과로써 새로운 이단계 색인 구조가 생성된다.The existing R * -tree insertion algorithm is used for R * -tree construction (not described for the R * -tree insertion algorithm (see N. Beckmann, H. P, Kriegel, R. Schneider, and B. Seeger, "The R * -tree: An Efficient and Robust Access Method for Points and Rectangles," Proceedings of the ACM SIGMOD International Conference on Management of Data, pp. 322-331, A new two-stage index structure is created.

다음은 DMBR 방법을 기반으로 한 공간 질의 처리 알고리즘들에 대해 설명한다. 복잡한 공간 객체의 질의 처리는 일반적으로 이단계 전략(여과 단계와 정제 단계)에 의해 구현된다. DMBR 방법을 질의 처리에 활용하면 특히 정제 단계의 성능이 향상된다. 설명되는 공간 질의는 점 질의, 영역 질의, 그리고 공간 조인 질의이다.The following describes the spatial query processing algorithms based on the DMBR method. Query processing of complex spatial objects is generally implemented by this two-stage strategy (filtering and refinement). Using the DMBR method for query processing improves the performance of the purification step in particular. The spatial queries described are point queries, domain queries, and spatial join queries.

점 질의 처리는 주어진 점을 키로 하여 그 점을 포함하는 모든 공간 객체를 찾는 것이다. 먼저 여과 단계에서는 R*-트리의 탐색 알고리즘이 사용되는데, 질의 점 P를 포함하는 객체 O를 찾기 위해서는 다음과 같은 수학식 1을 만족하여야만 한다.Point query processing is to find all spatial objects containing the point with a given point as a key. First, in the filtering step, the search algorithm of the R * -tree is used. In order to find the object O including the query point P, the following Equation 1 must be satisfied.

기존의 R*-트리 알고리즘의 정제 단계는 공간 객체가 복잡하다면 매우 값비싼 탐색 비용이 요구된다. 왜냐하면 MBR은 정확하지 못한 근사 기법이며, 복잡한 공간 객체를 정제하기 위해서는 값비싼 기하학적 계산 알고리즘이 필요하기 때문이다. 하지만 DMBR 방법에서는 정제 단계를 수행하기 전에 DR-트리의 DMBR들을 사용하여 많은 잘못된 히트들을 재빨리 제거할 수 있으며, 비교적 단순한 구성요소들을 산출한다. 즉, DMBR들에 의해 여과된 간단한 구성요소들에 대해서만 정제 단계를 수행한다.The refinement phase of the existing R * - tree algorithm requires a very expensive search cost if the spatial objects are complex. Because MBR is an inaccurate approximation technique, and expensive geometric computation algorithms are needed to refine complex spatial objects. However, in the DMBR method, many erroneous hits can be quickly removed using DR-tree's DMBRs before performing the refinement step, yielding relatively simple components. That is, the purification step is performed only for the simple components filtered by the DMBRs.

도 5은 DR-트리 내에서 점 질의 처리 과정을 보여주고 있다.Figure 5 shows the processing of point queries in a DR-tree.

우선, 전제 사항으로써 입력은 노드 T가 루트인 하나의 DR-tree이며, 출력은 P를 포함하는 하나의 Oid이다.First, as a precondition, the input is one DR-tree where node T is the root, and the output is one Oid containing P.

먼저, R*-트리의 탐색 알고리즘을 사용하여 질의 점 P=(Px, Py)를 포함하는 모든 레코드 식별자를 찾고, 이들 식별자가 지시하는 DR-트리를 주 메모리로 읽어 들인 후 루트 노드(T)부터 각 노드를 검사(S201)한다.First, all the record identifiers including the query point P = (Px, Py) are searched using the search algorithm of the R * -tree, the DR-tree indicated by these identifiers is read into the main memory, (S201).

만일 조사되는 노드(T)가 리프 노드가 아니면 그 노드(T)에 저장되어 있는 사각형 좌표가 질의 점 P를 포함하는지 검사(S202)한다. 상기 스텝 S202에서 해당 노드(T)가 질의 점(P)를 포함한다면 스텝 S203과 S204로 진행하여 왼쪽 및 오른쪽 자식 노드들에 대해 이 알고리즘을 재귀적으로 호출하게 된다.If the examined node T is not a leaf node, it is checked whether the rectangular coordinate stored in the node T includes a query point P (S202). If the node T includes the query point P in step S202, the algorithm proceeds to steps S203 and S204 to recursively call the left and right child nodes.

반면에, 상기 스텝 S202에서 해당 노드(T)가 질의 점(P)를 포함하지 않는다면 해당 알고리즘을 벗어난다.On the other hand, if the node T does not include the query point P in step S202, the algorithm goes out of the algorithm.

한편 상기 스텝 S201에서 조사되는 노드가 리프 노드면, 스텝 S205로 진행하여 그 노드에 저장되어 있는 DMBR 좌표가 질의 점 P를 포함하는지 검사한다. 이때, 상기 스텝 S205에서 표함한다고 판단되면 스텝 S206으로 진행하여 질의 점과 객체 외부에 있는 임의의 점 사이에 하나의 보조선을 그린 후 객체 경계선이 보조선에 교차되는 점의 수를 구한다.On the other hand, if the node examined in step S201 is a leaf node, step S205 is performed to check whether the DMBR coordinates stored in the node include the query point P. If it is determined in step S205 that the object is to be represented in step S205, the flow advances to step S206 to draw one auxiliary line between the query point and an arbitrary point outside the object, and then the number of points where the object boundary intersects the auxiliary line is obtained.

상기 과정을 통하여 교차점 수가 계산되면 스텝 S207에서는 교차점의 수가 홀수인가를 판단하는데, 홀수면 스텝 S208로 진행하여 질의 점은 객체 내부에 존재하는 것이므로 Oid값을 반환하고, 짝수이면 외부에 존재하므로 이 알고리즘을 벗어난다.If the number of intersections is calculated through the above process, it is determined in step S207 whether the number of intersections is an odd number. In step S208, the inquiry point exists in the object and therefore an Oid value is returned. ≪ / RTI >

도 6a는 질의 점을 포함하는 객체를 검사하는 한 예를 보여주고 있다. 특수한 경우로 교차점이 두 선분이 만나는 꼭지점인 경우에는 예외 처리 되는데, 도 6b는 이러한 경우를 나타내고 있다. 즉, 교차점을 구성하는 두 선분의 반대쪽 꼭지점들이 보조선을 기준으로 같은 쪽에 있으면(x인 경우) 그 점은 짝수로 계산하고, 다른 쪽에 있으면(y인 경우) 홀수로 계산한다.FIG. 6A shows an example of inspecting an object including a query point. In the special case, when the intersection is a vertex where two line segments meet, an exception is handled. FIG. 6B shows this case. That is, if the vertices opposite to the two line segments constituting the intersection point are on the same side with respect to the auxiliary line (x), the point is calculated as an even number.

한편, 영역 질의는 주어진 질의 윈도우(window)와 교차되는 모든 공간 객체들을 찾는 것이다. 점 질의와 비슷하게 영역 질의의 여과 단계는 R*-트리에 기반을 두고 있다. 질의 윈도우 Q가 객체 O와 교차하기 위해서는 다음과 같은 수학식 2에 만족되어야만 한다.On the other hand, an area query is to find all spatial objects that intersect a given query window. Similar to the point query, the filtering step of the region query is based on the R * - tree. In order for the query window Q to intersect with the object O, it must satisfy the following equation (2).

정제 단계에서는 모든 후보 객체들에 대해 실제로 질의 윈도우에 교차되는지 정밀하게 재조사 된다. 그런데 질의 윈도우 내에 객체의 MBR이 완전히 포함되는 경우에는 정제 단계를 수행할 필요 없이 결과 객체로써 선정될 수 있다. 이러한 경우는 다음의 수학식 3이 만족되는 경우이다.In the refinement step, all candidate objects are precisely re-examined to see whether they actually cross the query window. However, if the object's MBR is completely contained within the query window, it can be selected as a result object without having to perform the purification step. In this case, the following equation (3) is satisfied.

기존의 전통적인 객체 분할 기법들은 산출되는 수 많은 구성요소들 때문에 질의 처리 수행 시 큰 부담이 될 수 있다. 이러한 단점을 제거하기 위해 본 발명에서는 구성요소들의 개수를 적절히 조절할 수 있는 DMBR 방법을 개발하였다.Conventional object segmentation techniques can be a large burden on query processing due to the many components that are computed. In order to eliminate such disadvantages, the present invention has developed a DMBR method capable of appropriately adjusting the number of components.

DMBR 방법은 구성요소들의 개수와 복잡성 사이에 절충된 값을 선택함으로써 정제 단계가 효율적으로 수행될 수 있도록 지원하고 있다. 즉, 여과된 객체들에 대해 정제 단계를 바로 적용하기 전에 관련된 DR-트리가 주 메모리로 전송된다. 그러고 나서 DMBR들이 질의 윈도우에 교차되는지 검사한다.The DMBR method supports efficient refinement steps by selecting a trade-off between the number and complexity of the components. That is, before applying the refinement step directly on the filtered objects, the associated DR-tree is transferred to main memory. It then checks whether the DMBRs intersect the query window.

검사 결과 세가지 경우가 발생될 수 있는데, (1) 영역 질의를 만족하는 객체, (2) 영역 질의를 만족하지 못하는 객체, 그리고 (3) 후보 객체로 분리된다.There are three cases of the test result: (1) an object that satisfies an area query, (2) an object that does not satisfy an area query, and (3) a candidate object.

이들 중 후보 객체에 대해서만 정제 단계가 수행된다. 일반적으로 정제 단계는 기하학적 계산 알고리즘에 의해 객체의 경계선을 따라 교차가 검출될 때까지 순차적으로 스캔(scan)된다. 마지막 선분까지 교차가 검출되지 못하면 이 객체는 질의 윈도우와 교차되지 않는 것으로 간주하고 알고리즘의 수행을 끝낸다.The refinement step is performed only for the candidate object among these candidates. In general, the refinement step is sequentially scanned by a geometric computation algorithm until an intersection is detected along the object boundary. If an intersection is not detected up to the last line segment, the object is regarded as not intersecting the query window and the algorithm is terminated.

다음과 같은 기법에 의해 영역 질의의 정제 단계 알고리즘을 좀 더 성능 향상시킬 수 있다. 객체의 경계선을 스캔하면서 실제로 교차 검사가 필요한지 먼저 결정한다. 즉, 선분들이 윈도우 내에 완전히 포함되는지 검사한다. 만일 윈도우 내에 어떤 선분이 포함된다면 그 객체는 최종 결과로써 결정되고 알고리즘 수행을 끝낸다. 그렇지 않는 경우에는 영역 검사(region check)를 실시한다.The refinement step algorithm of the area query can be further improved by the following technique. It first determines if an intersection check is required while scanning the boundary of the object. That is, it checks whether the line segments are completely contained in the window. If a line segment is included in the window, the object is determined as the final result and finishes the algorithm execution. If not, perform a region check.

예를 들면, 도 7에서 질의 윈도우의 x좌표 경계를 Qx,min, Qx,max라 하고 y좌표 경계를 Qy,min, Qy,max라고 하면, 선분 e1 의 양 끝점은 Qy,max보다 큰 y좌표 값을 가지고 있다. 이것은 윈도우의 위 영역에 놓여 있음을 알 수 있다. 이 선분에 대해서는 교차 검사할 필요 없이 다음 선분으로 이동된다. 비슷하게 선분의 양 끝점이 Qy,min아래, Qx,min왼쪽, Qx,max오른쪽에 있는 선분들에 대해서는 교차 검사가 필요 없다.For example, if the x coordinate boundaries of the query window are Q x, min , Q x, max and the y coordinate boundaries are Q y, min , Q y, max , e 1 Have an y coordinate value greater than Q y, max . It can be seen that it lies in the upper area of the window. This line segment is moved to the next segment without cross-checking. Similarly, no intersection check is required for line segments whose end points are Q y, min below, Q x, min left, Q x, max right.

선분의 양 끝점이 윈도우의 위쪽, 아래쪽, 왼쪽, 오른쪽 영역에 놓여 있지 않는 경우에는 그 객체는 교차되는 최종 객체가 될 수도 있고 그렇지 않을 수도 있다 (예, 선분 e5 , e7 이 이러한 경우인데, 단지 e5 만 윈도우와 교차된다). 이런 경우 알고리즘은 그 선분에서 윈도우 외부에 있는 한 끝점을 선택한다. 만일 이 끝점이 윈도우의 왼쪽 영역에 놓여져 있다면 이 선분이 윈도우의 왼쪽 경계와 교차하는지를 검사한다. 예를 들면, 선분 e5 , e7 이 윈도우 경계 ac와 교차 검사된다. 비슷하게 끝점이 윈도우의 오른쪽, 위쪽, 아래쪽에 있을 때도 이와 같은 교차 검사를 실시한다.If both endpoints of the segment are not placed in the top, bottom, left, and right regions of the window, then the object may or may not be the final object intersected (eg, e 5 , e 7 In this case, e 5 Only windows intersect). In this case, the algorithm chooses one endpoint outside the window in that segment. If this endpoint is in the left area of the window, check if this line segment intersects the left border of the window. For example, e 5 , e 7 It is cross-checked with this window boundary ac. Similarly, this cross-check is done when the endpoint is on the right, top, or bottom of the window.

도 8은 DR-트리 내에서 영역 질의 처리 과정을 보여주고 있다.FIG. 8 shows a process of processing an area query in the DR-tree.

먼저, R*-트리의 탐색 알고리즘을 사용하여 질의 윈도우 Q=(Qx,min, Qx,max, Qy,min, Qy,max)와 교차되는 MBR을 가지고 있는 모든 레코드 식별자를 찾는다.First, we use the R * -tree search algorithm to find all record identifiers that have an MBR that intersects the query window Q = (Qx , min , Qx , max , Qy, min , Qy, max ).

따라서, 스텝 S301에서는 이들 식별자가 지시하는 DR-트리를 주 메모리로 읽어 들인 후 루트 노드부터 각 노드를 검사한다. 이때, 상기 스텝 S301에서 조사되는 노드가 리프 노드가 아니라고 판단되면 스텝 S302로 진행하여 해당 노드에 저장되어 있는 사각형 좌표가 윈도우 Q에 의해 포함되는지 검사한다.Therefore, in step S301, the DR-tree indicated by these identifiers is read into the main memory, and then each node is examined from the root node. If it is determined in step S301 that the node is not a leaf node, the flow advances to step S302 to check whether the rectangular coordinates stored in the corresponding node are included in the window Q.

만일 상기 스텝 S302에서 포함된다고 판단되면 스텝 S303으로 진행하여 Oid를 반환하고, 그렇지 않으면 스텝 S304로 진행하여 해당 노드가 Q에 겹치는지 검사한다.If it is determined to be included in step S302, the process proceeds to step S303 to return Oid. Otherwise, the process proceeds to step S304 to check whether or not the node overlaps the Q.

상기 스텝 S304의 검사과정을 통하여 겹친다고 판단되면 왼쪽 및 오른쪽 자식 노드(T)들에 대해 이 알고리즘을 재귀적으로 호출하고, 겹치지 않는다면 이 알고리즘을 벗어난다.If it is determined through overlapping in step S304, the algorithm is recursively called for the left and right child nodes T. If the nodes do not overlap, the algorithm is exited.

한편 상기 스텝 S301에서 조사되는 노드가 리프 노드라고 판단되면 스텝 S307로 진행하여 해당 노드에 저장되어 있는 DMBR 좌표가 윈도우 Q에 의해 포함되는지 검사한다. 만일, 상기 스텝 S307에서 노드에 저장되어 있는 DMBR 좌표가 윈도우 Q에 의해 포함된다고 판단되면 스텝 S308로 진행하여 Oid를 반환하고, 그렇지 않으면 스텝 S309로 진행하여 해당 노드가 Q에 겹치는지 검사한다.If it is determined in step S301 that the node is a leaf node, the flow advances to step S307 to check whether the DMBR coordinates stored in the corresponding node are included in the window Q. If it is determined in step S307 that the DMBR coordinates stored in the node are included by the window Q, the flow advances to step S308 to return Oid. Otherwise, the flow advances to step S309 to check whether the node overlaps Q.

만일, 상기 스텝 S309에서 해당 노드가 Q에 겹친다고 판단되면, 스텝 S310 으로 진행하여 구성요소의 각각의 선분에 대해 해당 선분이 윈도우 Q 내에 존재하는지 검사한다.If it is determined in step S309 that the node overlaps Q, the flow advances to step S310 to check whether or not the corresponding line segment exists in the window Q with respect to each line segment of the component.

즉, 스텝 S310에서 선분이 윈도우 Q 내에 존재하는지 검사하여 존재한다고 판단되면 스텝 S311로 진행하여 Oid를 반환하고, 그렇지 않으면 스텝 S312로 진행하여 영역 검사를 적용한다. 이후, 스텝 S313에서는 영역 검사에 의해 간단히 결정되는 가를 판단하는데, 간단히 결정되지 않는다면 스텝 S314로 진행하여 교차 검사를 적용한다.That is, if it is determined in step S310 that the line segment exists in the window Q, the process proceeds to step S311 and returns Oid. Otherwise, the process proceeds to step S312 to apply the area check. Thereafter, in step S313, it is determined whether it is simply determined by the area inspection, and if it is not easily determined, the process goes to step S314 to apply the cross check.

상기 스텝 S314에서 검사하는 교차검사를 통해 교차점이 검출되었는가를 스텝 S315에서 판단하여 만일 하나의 교차가 검출된다면 스텝 S316으로 진행하여 Oid를 반환하고, 그렇지 않으면 스텝 S317로 진행하여 다음 선분을 취한다.It is determined in step S315 whether or not an intersection is detected through the crossing inspection in step S314. If one intersection is detected, the process proceeds to step S316 to return Oid. Otherwise, the process proceeds to step S317 to take the next line segment.

이와같은 동작은 스텝 S318을 통해 모든 구성요소의 선분에 대한 수행이 완료되었다고 판단할 때 까지 반복적으로 수행된다.This operation is repeatedly performed until it is determined through step S318 that the execution of all the line segments of all the components is completed.

상술한 바와 같은 DR-트리 내에서 공간 조인 질의는 두개 이상의 복수 객체 집합들에 대해 공간 연산자를 만족하는 공간 객체들을 찾는 것이다. 본 발명에서는 두 집합에 대한 공간 교차 조인으로 한정하였다. 먼저, 공간 조인 처리의 여과 단계를 위해 본 발명에서는 Brinkhoff 등이 제안된 R-트리 조인 알고리즘이 사용된다 (참고 문헌: T. Brinkhoff, H. P. Kriegel, and B. Seeger, "Efficient Processing of Spatial Joins Using R-트리," Proceedings of the ACM SIGMOD International Conference on Management of Data, pp. 237-246, 1993).In the DR-tree as described above, the spatial join query searches space objects satisfying the spatial operator for two or more sets of multiple objects. In the present invention, space cross joins are limited to two sets. In the present invention, an R-tree join algorithm proposed by Brinkhoff et al. Is used for the filtering step of the spatial join process (see T. Brinkhoff, HP Kriegel, and B. Seeger, "Efficient Processing of Spatial Joins Using R -Tree, " Proceedings of the ACM SIGMOD International Conference on Management of Data, pp. 237-246, 1993).

그러나 R-트리 조인 알고리즘은 단지 공간 조인의 여과 단계를 위해서만 수행될 수 있으므로 본 발명에서는 정제 단계의 효율성 향상을 위해 R-트리 조인 알고리즘을 확장하였다. 기본 개념은 한단계 더 연속되는 여과 단계를 수행함으로써 비싼 정제 단계의 성능을 향상 시키는 것이다. 예를 들면, 도 1a와 같이 MBR로만 여과 단계를 수행한 후에 정제 단계를 수행하는 것보다 도 1c와 같이 MBR로 여과 단계를 수행한 후에 DMBR을 이용해 추가적인 여과 단계를 한번 더 수행한 후 교차되는 DMBR 내의 구성요소들에 대해서만 정제 단계를 수행한다.However, since the R-tree join algorithm can be performed only for the filtering step of the spatial join, the present invention extends the R-tree join algorithm to improve the efficiency of the refining step. The basic idea is to improve the performance of the expensive purification step by performing one more continuous filtration step. For example, as shown in FIG. 1A, after the filtration step is performed only with the MBR, the filtration step is performed with the MBR as shown in FIG. 1C rather than the purification step. Then, an additional filtration step is further performed once again using the DMBR, Lt; RTI ID = 0.0 > components. ≪ / RTI >

이러한 기법은 많은 잘못된 히트들을 재빨리 제거할 수 있으며, MBR로 선정된 후보 객체들 중에서 조인 조건을 분명히 만족하지 않는 부 객체들을 간단히 스킵(skip)할 수 있다. 즉, DMBR들에 의해 질의를 만족하지 못하는 객체들을 가능한 많이 제거한 후에 교차되는 구성요소들에 대해 정제 단계를 수행하며, 정제 단계는 계산 기하학 분야에서 활용되는 플레인-스윕 기법에 의해 수행된다.This technique can quickly remove many false hits and simply skip over subobjects that are not explicitly satisfied of the join condition among the candidate objects selected by the MBR. That is, after removing objects that do not satisfy the query by DMBRs as much as possible, the refinement step is performed on the intersecting components, and the refinement step is performed by the plane-sweep technique utilized in the field of computational geometry.

플레인-스윕 기법은 먼저 전처리 단계에서 두 객체들의 꼭지점들을 x좌표값에 따라 순서별로 정렬한다. 그렇게 한 후 첨부한 도 9에서와 같이 하나의 수직선(즉, 스윕 라인(sweep line))을 왼쪽부터 오른쪽으로 움직이면서 스윕 라인에 동시에 교차되는 선분 쌍이 발견되면 실제로 교차되는지 기하 연산 비교를 수행한다. 그림에서 선분 e3 , e4 와 같이 서로 교차가 발견되면 최종 결과로써 결정되고 알고리즘 수행을 종료한다.In the preprocessing step, the plane-sweep technique first aligns the vertices of the two objects according to the x-coordinate values. Then, as shown in FIG. 9, moving a vertical line (i.e., a sweep line) from left to right, a geometric comparison is performed to see if a pair of segments simultaneously intersecting the sweep line is actually intersected. Segments in the picture e 3 , e 4 The intersection is determined as the final result and the algorithm execution is terminated.

상술한 플레인-스윕 기법도 DMBR들을 사용함으로써 성능을 향상시킬 수 있는데, 두 DMBR들이 서로 겹쳐지는 교차 영역 내에 있는 선분들만 한정하여 검사를 수행하면 된다. 예를 들면, 그림에서 선분 e1 e5 는 교차 검사를 할 필요가 없다. 왜냐하면 이들은 결코 다른 선분들과 교차될 수 없기 때문이다.The above-described plane-sweep technique can also improve performance by using DMBRs. The DMBRs can perform the inspection only on the lines within the intersection area where the two DMBRs overlap each other. For example, e 1 and e 5 There is no need to perform a cross-check. Because they can never cross other lines.

도 10은 DR-트리 내에서 공간 조인 질의 처리 과정을 보여주고 있다. 먼저, R-트리 조인 알고리즘을 사용하여 두 공간 객체 O1, O2의 MBR들이 교차되는 모든 레코드 식별자를 찾는다. 이들 식별자들이 지시하는 두개의 DR-트리를 주 메모리로 읽어 들인 후 루트 노드부터 각 노드를 검사한다. 만일 조사되는 두 노드가 교차되지 않으면(S401) 이 알고리즘을 벗어난다. 조사되는 두 노드가 둘 다 리프 노드인 경우에는(S402), 먼저 그 노드들에 저장된 DMBR들이 서로 겹쳐지는 교차 영역 내에 있지 않은 선분들을 제거한다(S403). 그러고 난 후 플레인-스윕 기법을 적용한다(S404). 만일 플레인-스윕 수행 도중 교차가 발견된다면(S405) 이 Oid들을 반환한다(S406). 그러나 한 노드가 리프 노드이고 다른 한 노드가 리프 노드가 아닌 경우에는(S407, S409), 리프 노드가 아닌 노드에 대한 왼쪽 및 오른쪽 자식 노드들에 대해 이 알고리즘을 재귀적으로 호출한다(S408, S410). 두 노드 모두 리프 노드가 아닌 경우에는(S409), 두 노드에 대한 왼쪽 및 오른쪽 자식 노드들에 대해 이 알고리즘을 재귀적으로 호출한다(S411).FIG. 10 shows a spatial join query processing process in a DR-tree. First, we use the R-tree join algorithm to find all record identifiers where the MBRs of the two spatial objects O1 and O2 intersect. The two DR-trees indicated by these identifiers are read into main memory, and then checked from the root node. If the two nodes to be examined are not crossed (S401), the algorithm is exited. If both of the two nodes to be examined are leaf nodes (S402), the line segments that are not in the intersecting region where the DMBRs stored in the nodes overlap with each other are removed (S403). Then, the plane-sweep technique is applied (S404). If an intersection is found during the plane-sweep operation (S405), Oids are returned (S406). However, if one node is a leaf node and the other node is not a leaf node (S407, S409), the algorithm is recursively called for the left and right child nodes of the node other than the leaf node (S408, S410 ). If both nodes are not leaf nodes (S409), the algorithm is recursively called on the left and right child nodes of the two nodes (S411).

상기와 같이 동작하는 본 발명에 따른 분할된 최소 경계 사각형을 이용한 데이터 베이스 관리 시스템을 제공하여 한 객체의 MBR을 주어진 제한 조건을 만족할 때 까지 두개의 부 객체로 반복적으로 분할하는 것을 통해 구성요소들의 개수가 주어진 제한 조건에 의해 조절될 수 있어 구성요소들의 개수와 복잡성 사이에서 최적 절충값을 사용자가 선택할 수 있도록 허용된다.The database management system using the partitioned minimum bounding rectangle according to the present invention operates as described above. By dividing the MBR of an object repeatedly into two sub-objects until a given constraint is satisfied, Can be adjusted by a given constraint, allowing the user to select the optimal tradeoff between the number and complexity of the components.

또한, 본 발명의 효율적 활용을 위해 기존의 공간 색인 구조를 확장함에 따라 질의 조건을 만족하지 않는 후보 객체들을 재빨리 제거할 수 있으므로 질의 처리의 효율성이 향상될 수 있다.In addition, since the existing spatial index structure is expanded to efficiently utilize the present invention, candidate objects that do not satisfy the query condition can be quickly removed, and the efficiency of the query processing can be improved.

Claims (9)

비정형적인 형태의 공간 객체를 근사하는 최소 경계 사각형(minimum bounding rectangle: MBR)으로 복잡한 공간 객체를 다루는 응용분야의 데이터 베이스의 관리 방법에 있어서,1. A method for managing a database of an application field which deals with a complex spatial object with a minimum bounding rectangle (MBR) approximating an irregular shaped spatial object, 공간 객체를 둘러싼 MBR 영역의 반을 분할하여 두개의 부 객체를 산출하는 제 1 과정과;A first step of dividing a half of the MBR area surrounding the spatial object and calculating two sub-objects; 상기 제 1 과정을 통해 산출되어진 각각의 부 객체에 대해 분할된 최소 경계 사각형(Decomposed MBR: DMBR)을 생성하는 제 2 과정과;A second step of generating a divided minimum bounding rectangle (DMBR) for each subobject generated through the first process; 상기 DMBR들이 AOD(Accuracy Of the Decomposition)에 의해 표현되는 제한 조건을 만족할 때 까지 각 좌표축을 번갈아가면서 반복적으로 쉬프팅시키는 제 3 과정; 및A third step of repeatedly shifting each coordinate axis alternately until the DMBRs satisfy a constraint condition expressed by Accuracy Of the Decomposition (AOD); And DMBR의 크기가 어떤 한계치를 넘어가면 다시 분할되는 제 4 과정을 포함하는 것을 특징으로 하는 분할된 최소 경계 사각형을 이용한 데이터 베이스 관리 방법.And a fourth step of dividing the DMBR when the size of the DMBR exceeds a certain threshold value. 제 1항에 있어서,The method according to claim 1, 상기 제 1 과정에서 공간 객체를 분할할 때 객체 절단선이 선택되는데, 교차점이 객체의 외각 지점에서 발견될 때 이들을 무시함으로써 간단히 해결할 수 있는 제 1 단계와;The object cutting line is selected when dividing the spatial object in the first step, which can be solved simply by ignoring the intersection points when they are found at the outer point of the object; 여러 개의 부 객체들이 산출될 때 절단선들 중에서 가장 작은 y(또는 x) 좌표값을 가지고 있는 것을 선택하여 이를 객체 절단선으로 선택하는 제 2 단계와;A second step of selecting the object having the smallest y (or x) coordinate value among the cutting lines when a plurality of sub-objects are calculated and selecting the object as the object cutting line; 상기 제 3 과정에서 제한조건은 매개변수 g에 의해 관리되는 과정, 즉 AOD(g)는 MBR 영역의 2-g 보다 더 큰 DMBR들은 다시 분할되는 제 3 단계로 이루어지며, 분할된 구성요소들의 수와 근사의 정확도 사이에는 하나의 절충된 값이 존재하는데, 실제 실험을 수행시킨 결과 매개변수 g가 3일 때 성능이 최대화 되는 것을 특징으로 하는 분할된 최소 경계 사각형을 이용한 데이터 베이스 관리 방법.In the third step, the restriction condition is managed by the parameter g, i.e., AOD (g) 2- g There is one compromised value between the number of divided components and the accuracy of the approximation. The actual experiment shows that when the parameter g is 3, the performance Wherein the minimum bounding rectangle is maximized. 공간 객체를 둘러싼 MBR 영역의 반을 분할하여 두개의 부 객체를 산출하고, 각각의 부 객체에 대한 DMBR들이 AOD에 의해 표현되는 제한 조건을 만족할 때 까지 각 좌표축을 번갈아가면서 반복적으로 쉬프팅되며, DMBR의 크기가 어떤 한계치를 넘어가면 다시 분할되는 과정을 포함하는 분할된 최소 경계 사각형을 이용한 데이터 베이스 관리 방법에 있어서,The two subobjects are divided by dividing the MBR region around the spatial object, and the DMBRs for each subobject are shifted repeatedly while alternating between the coordinate axes until the constraint expressed by the AOD is satisfied. A method of managing a database using a partitioned minimum bounding rectangle including a process of re-partitioning when a size exceeds a certain threshold, 각 분할 단계마다 생성되는 결과들을 DR-트리(Decomposed Rectangle Tree) 속으로 저장하는 과정과;Storing the results generated in each division step into a DR-tree (Decomposed Rectangle Tree); DR-트리는 중간 노드와 리프 노드로 구성되어 있으며, 중간 노드에는 부 객체의 DMBR이 저장되며, 리프 노드에는 구성요소의 식별자와 DMBR을 포함하며, 리프 노드의 객체 식별자는 관련된 구성요소를 지시하는 과정과;The DR-tree consists of an intermediate node and a leaf node. In the intermediate node, the DMBR of the sub-object is stored. The leaf node includes the identifier of the component and the DMBR. The object identifier of the leaf node indicates the related component and; DR-트리를 구축하기 위해 'Divide and Conquer' 기법을 사용하고, 입력으로써 하나의 객체를 표현하는 배열 p 및 객체를 분할할 때 수직 또는 수평 분할선이 교대로 변경되도록 하는 불리안 변수 d를 받아 들인 후, 결과로써 하나의 DR-트리가 생성되는 것을 특징으로 하는 DR-트리 구축 방법.We use the 'Divide and Conquer' technique to construct the DR-tree, the array p, which represents an object as input, and the boolean variable d, which causes the vertical or horizontal splitting line to change alternately when splitting the object And a DR-tree is generated as a result. 제 3항에 있어서,The method of claim 3, 원형의 객체들을 효율적으로 관리할 수 있는 기존의 색인 구조에 분할된 구성요소들을 구조화할 수 있는 색인 구조를 결합시키는 과정과;Combining an index structure capable of structuring divided elements into an existing index structure capable of efficiently managing circular objects; 두 부분으로 구성되는 색인 구조의 첫번째 부분은 원형의 객체들을 저장하기 위한 색인 구조로서 R*-트리를 수정 없이 사용하고, 두 번째 부분은 분할된 구성요소들을 저장하기 위해 DR-트리를 사용하는 과정과;The first part of the two-part index structure uses the R * -tree as an index structure for storing circular objects without modification, and the second part uses the DR-tree to store the partitioned components and; 상기 색인 구조에 새로운 공간 객체를 삽입할 때 2단계(분할 알고리즘 적용과 R*-트리 삽입 알고리즘 적용)로 처리되는 이단계 색인 구조를 갖는 것을 특징으로 하는 DR-트리 구축 방법.And a two-step index structure in which a new spatial object is inserted into the index structure by two steps (application of a partitioning algorithm and application of an R * -tree insertion algorithm). 원형의 객체들을 효율적으로 관리할 수 있는 기존의 색인 구조에 분할된 구성요소들을 구조화할 수 있는 색인 구조를 결합한 이단계 색인 구조의 첫번째 부분은 원형의 객체들을 저장하기 위한 색인 구조로서 R*-트리를 수정 없이 사용하고, 두 번째 부분은 분할된 구성요소들을 저장하기 위해 DR-트리를 사용하는 색인구조에 있어서,The first part of the two - stage index structure, which combines the existing index structure that can manage circular objects efficiently, and the index structure that can structure the divided elements, is an index structure for storing circular objects. The R * - tree And the second part is an index structure that uses DR-trees to store the partitioned components, 공간 질의 처리는 점 질의, 영역 질의, 그리고 공간 조인 질의로 구분되며,Spatial query processing is divided into point query, domain query, and spatial join query, 점 질의 처리과정은 정제 단계를 수행하기 전에 DR-트리의 DMBR들을 사용하여 많은 잘못된 히트들을 재빨리 제거하고, DMBR들에 의해 여과된 간단한 구성요소들에 대해서만 정제 단계를 수행하는 과정과;The point query processing includes using the DMBRs of the DR-tree to quickly remove many erroneous hits before performing the refinement step, and performing a refinement step only on the simple components filtered by the DMBRs; R*-트리의 탐색 알고리즘을 사용하여 질의 점을 포함하는 모든 레코드 식별자를 찾고, 이들 식별자가 지시하는 DR-트리를 주 메모리로 읽어 들인 후 루트 노드부터 각 노드를 검사하는 과정과;Searching all the record identifiers including the query point using the R * -tree search algorithm, reading the DR-tree indicated by these identifiers into main memory, and examining each node from the root node; 조사되는 노드가 리프 노드가 아니면, 그 노드에 저장되어 있는 사각형 좌표가 질의 점을 포함하는지 검사하고, 포함한다면 왼쪽 및 오른쪽 자식 노드들에 대해 알고리즘을 재귀적으로 호출하는 과정과;Checking whether a rectangular coordinate stored in the node includes a query point if the node to be examined is not a leaf node, and recursively calling an algorithm for the left and right child nodes if the node includes the query point; 조사되는 노드가 리프 노드면, 그 노드에 저장되어 있는 DMBR 좌표가 질의 점을 포함하는지 검사하고, 만일 포함한다면 점 포함 객체 검사 과정을 거치고, 그렇지 않으면 이 알고리즘을 벗어나는 과정을 포함하는 것을 특징으로 하는 질의 처리 알고리즘.Checking whether the node to be examined is a leaf node, whether the DMBR coordinates stored in the node include a query point, and if so, passing the dot inclusion object inspection process, or otherwise leaving the algorithm. Query processing algorithm. 제 5 항에 있어서,6. The method of claim 5, 영역 질의 처리과정은 여과된 객체들에 대해 정제 단계를 바로 적용하기 전에 관련된 DR-트리가 주 메모리로 전송된 후, DMBR들이 질의 윈도우에 교차되는지 검사하는 과정과;The region query process includes the steps of checking whether the DMBRs cross the query window after the associated DR-tree is sent to the main memory before immediately applying the refinement step to the filtered objects; 정제 단계가 기하학적 계산 알고리즘에 의해 객체의 경계선을 따라 교차가 검출될 때까지 순차적으로 스캔되며, 마지막 선분까지 교차가 검출되지 못하면 이 객체는 질의 윈도우와 교차되지 않는 것으로 간주하는 과정과;The refinement step is sequentially scanned until the intersection is detected along the object boundary by the geometric calculation algorithm, and if the intersection is not detected until the last line segment, the object is regarded as not intersecting the query window; 객체의 경계선을 스캔하면서 실제로 교차 검사가 필요한지 먼저 결정하는 과정과;Determining whether an intersection inspection is actually required while scanning a boundary line of the object; 선분의 양 끝점이 윈도우의 위쪽, 아래쪽, 왼쪽, 오른쪽 영역에 놓여 있는지 조사하는 영역 검사 과정과;An area inspection process for examining whether both end points of a line segment are located in the upper, lower, left, and right regions of the window; 선분에서 윈도우 외부에 있는 한 끝점을 선택하고, 만일 이 끝점이 윈도우의 왼쪽 영역에 놓여져 있다면 이 선분이 윈도우의 왼쪽 경계와 교차하는지를 검사하는 과정을 포함하는 것을 특징으로 하는 질의 처리 알고리즘.Selecting an endpoint outside the window in the segment and inspecting if the endpoint intersects the left border of the window if the endpoint is in the left region of the window. 제 6항에 있어서,The method according to claim 6, R*-트리의 탐색 알고리즘을 사용하여 질의 윈도우와 교차되는 MBR을 가지고 있는 모든 레코드 식별자를 찾고, 이들 식별자가 지시하는 DR-트리를 주 메모리로 읽어 들인 후 루트 노드부터 각 노드를 검사하는 과정과;Using the R * -tree search algorithm to find all record identifiers that have an MBR intersecting the query window, reading the DR-tree pointed to by these identifiers into main memory and examining each node from the root node ; 조사되는 노드가 리프 노드가 아니면, 그 노드에 저장되어 있는 사각형 좌표가 윈도우에 의해 포함되는지 검사하여, 포함된다면 Oid를 반환하고, 그렇지 않으면 그 노드가 윈도우에 겹치는지 검사하는 과정과;If the node to be examined is not a leaf node, checking whether the rectangular coordinates stored in the node are included by the window and returning Oid if included, or checking whether the node overlaps the window; 노드가 윈도우에 겹친다면, 왼쪽 및 오른쪽 자식 노드들에 대해 이 알고리즘을 재귀적으로 호출하는 과정과;Recursively invoking the algorithm on the left and right child nodes if the node overlaps the window; 조사되는 노드가 리프 노드면, 그 노드에 저장되어 있는 DMBR 좌표가 윈도우에 의해 포함되는지 검사하여, 포함된다면 Oid를 반환하고, 그렇지 않으면 그 노드가 윈도우에 겹치는지 검사하는 과정과;Checking whether the examined node is a leaf node, whether the DMBR coordinates stored in the node are included by the window, returning Oid if included, and checking if the node overlaps the window; 노드가 윈도우에 겹친다면 구성요소의 각각의 선분에 대해 그 선분이 윈도우 내에 존재하는지 검사하여, 만일 존재한다면 Oid를 반환하고, 그렇지 않으면 영역 검사를 적용하는 과정과;Checking if the segment exists in the window for each segment of the component if the node overlaps the window, returning Oid if present, and otherwise applying a region check; 만일 영역 검사에 의해 간단히 결정되지 않는다면 교차 검사를 적용하는데, 하나의 교차가 검출된다면 Oid를 반환하고, 그렇지 않으면 다음 선분을 취하는 과정을 포함하는 것을 특징으로 하는 질의 처리 알고리즘.If it is not simply determined by the region check, apply a cross check, returning Oid if one intersection is detected, and otherwise taking the next segment. 제 5항에 있어서,6. The method of claim 5, 공간 조인 처리과정은 정제 단계의 효율성 향상을 위해 한단계 더 연속되는 여과 단계를 수행하여 비싼 정제 단계의 성능을 향상 시키기 위해 DMBR들에 의해 질의를 만족하지 못하는 객체들을 가능한 많이 제거한 후에 교차되는 구성요소들에 대해 정제 단계를 수행하는 과정과;In order to improve the efficiency of the refinement phase, the spatial join process removes the objects that are not satisfied by the query by the DMBRs in order to improve the performance of the expensive refinement phase by performing one more continuous filtration step. Performing a purification step with respect to the sample; 플레인-스윕(plane-sweep) 기법에 의해 수행되는 정제 단계에서 두 DMBR들이 서로 겹쳐지는 교차 영역 내에 있는 선분들만 한정하여 검사를 수행하는 과정을 포함하는 것을 특징으로 하는 질의 처리 알고리즘.The method comprising the steps of: performing an inspection by limiting only the lines within the intersection area where two DMBRs overlap in a refinement step performed by a plane-sweep technique. 제 8항에 있어서,9. The method of claim 8, R-트리 조인 알고리즘을 사용하여 두 공간 객체의 MBR들이 교차되는 모든 레코드 식별자를 찾고, 이들 식별자들이 지시하는 두개의 DR-트리를 주 메모리로 읽어 들인 후 루트 노드부터 각 노드를 검사하는 과정과;Searching all record identifiers in which MBRs of two spatial objects intersect with each other using an R-tree join algorithm, inserting two DR-trees indicated by these identifiers into main memory, and inspecting each node from a root node; 조사되는 두 노드가 둘 다 리프 노드인 경우에는, 먼저 그 노드들에 저장된 DMBR들이 서로 겹쳐지는 교차 영역 내에 있지 않은 선분들을 제거하고, 플레인-스윕 기법을 적용하여 교차가 발견된다면 이 Oid들을 반환하는 과정과;If the two nodes to be examined are both leaf nodes, first remove the lines that are not in the intersection area where the DMBRs stored in the nodes are overlapped with each other, and if the intersection is found by applying the plane-sweep technique, ; 한 노드가 리프 노드이고 다른 한 노드가 리프 노드가 아닌 경우에는, 리프 노드가 아닌 노드에 대한 왼쪽 및 오른쪽 자식 노드들에 대해 이 알고리즘을 재귀적으로 호출하는 과정과;Recursively calling the algorithm for left and right child nodes of a node other than a leaf node when one node is a leaf node and the other node is not a leaf node; 두 노드 모두 리프 노드가 아닌 경우에는, 두 노드에 대한 왼쪽 및 오른쪽 자식 노드들에 대해 이 알고리즘을 재귀적으로 호출하는 과정을 포함하는 것을 특징으로 하는 공간 조인 질의 처리 알고리즘.And if the two nodes are not leaf nodes, recursively calling the algorithm for the left and right child nodes of the two nodes.
KR1019980026356A 1998-07-01 1998-07-01 A database management method using partitioned minimum bounding rectangle KR100282640B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980026356A KR100282640B1 (en) 1998-07-01 1998-07-01 A database management method using partitioned minimum bounding rectangle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980026356A KR100282640B1 (en) 1998-07-01 1998-07-01 A database management method using partitioned minimum bounding rectangle

Publications (2)

Publication Number Publication Date
KR20000007169A KR20000007169A (en) 2000-02-07
KR100282640B1 true KR100282640B1 (en) 2001-02-15

Family

ID=19542660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980026356A KR100282640B1 (en) 1998-07-01 1998-07-01 A database management method using partitioned minimum bounding rectangle

Country Status (1)

Country Link
KR (1) KR100282640B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100429792B1 (en) * 2000-11-15 2004-05-03 삼성전자주식회사 Indexing method of feature vector space and retrieval method
KR20020069781A (en) * 2001-02-28 2002-09-05 주식회사 트윈클리틀스타 Multi-cash method of a geograhphic information in the geographic information system
KR100472949B1 (en) * 2001-10-18 2005-03-08 한국전자통신연구원 A method for searching an index for subsequence matching in time-series databases
CN106815319B (en) * 2016-12-26 2019-12-31 北京爱接力科技发展有限公司 Target object determination method and device
CN113312436B (en) * 2020-07-27 2024-04-19 阿里巴巴集团控股有限公司 Spatial index processing method and device
CN116361516B (en) * 2023-06-02 2023-08-29 交通运输部天津水运工程科学研究所 Searching method based on unit to which multistage rectangular block query target point belongs

Also Published As

Publication number Publication date
KR20000007169A (en) 2000-02-07

Similar Documents

Publication Publication Date Title
EP0793831B1 (en) Method and apparatus for multidimensional database using binary hyperspatial code
Snoeyink Point location
Günther et al. Research issues in spatial databases
Patel et al. STRIPES: an efficient index for predicted trajectories
Roussopoulos et al. Nearest neighbor queries
US6701306B1 (en) Methods and apparatus for manipulating polygons in a multidimensional space
Samet Connected component labeling using quadtrees
Pelanis et al. Indexing the past, present, and anticipated future positions of moving objects
Martins et al. Indexing and ranking in Geo-IR systems
Papadias et al. The retrieval of direction relations using R-trees
US20100082654A1 (en) Methods And Apparatus Using Range Queries For Multi-dimensional Data In A Database
Aluru Quadtrees and octrees
Theodoridis et al. Range queries involving spatial relations: A performance analysis
Ooi Spatial kd-tree: A data structure for geographic database
Samet Multidimensional spatial data structures
Fonseca et al. Content-based retrieval of technical drawings
Samet et al. Recent developments in linear quadtree-based geographic information systems
KR100282640B1 (en) A database management method using partitioned minimum bounding rectangle
Duncan Balanced aspect ratio trees
Theodoridis et al. Supporting direction relations in spatial database systems
Paiva Topological equivalence and similarity in multi-representation geographic databases
Overmars Geometric data structures for computer graphics: an overview
Afshani et al. Concurrent range reporting in two-dimensional space
Sitzmann et al. O-trees: a constraint-based index structure
Lin et al. An efficient method for the retrieval of objects by topological relations in spatial database systems

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20030930

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee