KR101820017B1 - Database clustering apparatus and method - Google Patents

Database clustering apparatus and method Download PDF

Info

Publication number
KR101820017B1
KR101820017B1 KR1020160140061A KR20160140061A KR101820017B1 KR 101820017 B1 KR101820017 B1 KR 101820017B1 KR 1020160140061 A KR1020160140061 A KR 1020160140061A KR 20160140061 A KR20160140061 A KR 20160140061A KR 101820017 B1 KR101820017 B1 KR 101820017B1
Authority
KR
South Korea
Prior art keywords
record
data record
data
hash
page
Prior art date
Application number
KR1020160140061A
Other languages
Korean (ko)
Inventor
김용호
김재광
한혁
이지나
진성일
Original Assignee
주식회사 리얼타임테크
현대엠엔소프트 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 리얼타임테크, 현대엠엔소프트 주식회사 filed Critical 주식회사 리얼타임테크
Priority to KR1020160140061A priority Critical patent/KR101820017B1/en
Priority to PCT/KR2017/011896 priority patent/WO2018080188A1/en
Application granted granted Critical
Publication of KR101820017B1 publication Critical patent/KR101820017B1/en

Links

Images

Classifications

    • G06F17/30598
    • 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/2255Hash tables
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • G06F17/3033

Abstract

The present invention relates to an apparatus and a method for database clustering, wherein a certain field value of data is used to determine a record page of a database on which corresponding data are stored and store only data having same reference value on one record page, thereby keeping time for searching data at an initial state. The apparatus and a method for database clustering according to the present invention comprises: a hash table management module for managing a hash table composed of at least one different hash reference value, a data record field value corresponding thereto, and information on different record pages which respectively correspond to each data record field value; a record page probe module for using a predetermined data record reference value to derive a hash reference value to probe a record page of the data record corresponding to the hash reference value on the hash table; and a control module for storing a data record having the corresponding reference value on the probed record page to store only the data record having the same reference value on one record page and simultaneously perform an editing process on a data record through the record page probed with reference to the hash table.

Description

데이터베이스 클러스터링 장치 및 그 방법{DATABASE CLUSTERING APPARATUS AND METHOD}[0001] DATABASE CLUSTERING APPARATUS AND METHOD [0002]

본 발명은 데이터의 일정 필드값을 이용하여 해당 데이터를 저장할 데이터베이스의 레코드 페이지를 결정하여 하나의 레코드 페이지에는 동일 기준값을 갖는 데이터만 저장함으로써, 데이터 검색시간을 처음의 상태로 유지할 수 있도록 해 주는 데이터베이스 클러스터링 장치 및 그 방법에 관한 것이다. The present invention is characterized in that a record page of a database for storing corresponding data is determined by using a certain field value of data, and only a data having the same reference value is stored in one record page, Clustering apparatus and method thereof.

데이터베이스는 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체로서, 논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조화함으로써 검색과 갱신의 효율화를 꾀한 것이다.A database is a set of data that is organized by integrating several data files, eliminating duplication of data items and structuring and memorizing data. It is a collection of one or more logically related data that is highly structured to efficiently search and update It is intended.

또한, 데이터베이스 내의 정보를 검색하거나, 데이터베이스에 정보를 저장하기 편리하고 효율적인 환경을 제공하기 위하여 데이터베이스 관리 시스템(Database Management System: DBMS, '이하 DBMS'라 함)이 운용되고 있다.Also, a database management system (DBMS, hereinafter referred to as "DBMS") is being operated to provide a convenient and efficient environment for searching information in a database or storing information in the database.

이러한 DBMS에서는 모든 데이터를 테이블(Table) 형태로 데이터베이스에 저장하는데, 여기서 테이블이란 데이터베이스에서 데이터를 저장하는 기본구조를 말하며, 하나의 테이블은 하나 이상의 레코드(Record)들로 구성된다. 여기서, 레코드란 테이블의 한 행(Row)를 의미한다. 또한, 각 레코드는 하나 이상의 칼럼으로 구성되는데, 하나의 칼럼은 다수의 필드(Field)값을 갖는다. In this DBMS, all data is stored in a database in the form of a table, where a table is a basic structure for storing data in a database, and a table is made up of one or more records. Here, the record means one row of the table. Also, each record consists of one or more columns, one column having a number of field values.

또한, 데이터베이스는 일정 단위의 데이터 레코드를 저장할 수 있는 다수의 레코드 페이지로 구성되고, 레코드 페이지에 대한 시작 포인터와 삽입 포인트를 통해 입력되는 데이터 레코드가 해당 레코드 페이지에 순차 저장된다.In addition, the database is composed of a plurality of record pages capable of storing data records of a predetermined unit, and data records inputted through the start point and insertion point of the record page are sequentially stored in the corresponding record page.

그러나, 데이터 레코드를 레코드 페이지에 순차 저장하는 경우, 데이터 검색시 데이터베이스의 모든 레코드 페이지를 검색함으로 인해 많은 검색시간이 소요되는 단점이 있다. However, when data records are sequentially stored on a record page, there is a disadvantage in that a lot of search time is required for retrieving all the record pages of the database in data retrieval.

이에, 저장할 데이터 레코드를 기 설정된 기준에 따라 오더링(ordering)하여 레코드 페이지에 저장하는 방법이 제안되어 이용되고 있다.Accordingly, a method of ordering data records to be stored according to predetermined criteria and storing them in a record page has been proposed and used.

그러나, 특정 기준값에 따라 오더링된 데이터 레코드를 저장한 이후, 기 저장된 데이터 레코드가 삭제되는 경우, 데이터 베이스의 저장 효율성을 위해 삭제된 레코드 페이지 영역에 이후 저장요청되는 데이터레코드를 저장하게 된다. 이에 따라 시간이 경과되면서 데이터베이스에 저장된 데이터 레코드간의 인접성이 깨지게 된다.However, if the pre-stored data record is deleted after storing the data record ordered according to the specific reference value, the data record to be stored later is stored in the deleted record page area for the storage efficiency of the database. As a result, the adjacency between the data records stored in the database is broken over time.

예컨대, 상술한 데이터 레코드 "삭제" 에 의해 도1에 도시된 바와 같이 일정 기준값(1,2,3) 중 "2" 기준값에 대해서는 서로 다른 3개의 레코드 페이지(RP2,RP3,RP4)에 각각 저장될 수 있다. 이 상태에서 기준 값 "2"에 대응되는 데이터 레코드의 "삭제" 처리를 수행해야 하는 경우, 결국 "2" 기준값이 존재하는 3개의 레코드 페이지(RP2,RP3,RP4)를 모두 탐색하여 처리해야 하므로 이에 따른 검색시간이 지연되는 문제가 있다. For example, as shown in Fig. 1, by the above-described data record "delete ", the" 2 "reference value among the predetermined reference values 1,2,3 is stored in three different record pages RP2, RP3 and RP4 . If it is necessary to perform the "delete" process of the data record corresponding to the reference value "2 " in this state, all three record pages RP2, RP3 and RP4 with the" 2 & There is a problem that the search time is delayed.

또한, 데이터베이스에 저장된 데이터에 대한 탐색 속도를 높여주기 위해 트리 자료 구조가 제안되어 이용되고 있으나, 이는 구조가 복잡하고 트리 구조 생성을 위해 메모리 사용량이 많은 단점이 있다. 또한, 트리 구조의 특성상 삽입/삭제 시에 발생하는 구조 변형(Rebalancing) 오버헤드가 있고, 한쪽으로 치우친(skewed) 상태에서는 동작 성능이 현저히 저하되는 단점을 가지고 있다.In addition, a tree data structure has been proposed and used to increase the searching speed of the data stored in the database. However, this structure has a complicated structure and has a drawback in that memory usage is large for generating a tree structure. In addition, due to the nature of the tree structure, there is a rebalancing overhead that occurs at the time of insertion / deletion, and there is a disadvantage that the operation performance is significantly lowered in a skewed state.

1. 한국공개특허 제10-2015-0044013호 (명칭 :데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조)1. Korean Patent Publication No. 10-2015-0044013 (titled: database management method, system and database tree structure) 2. 한국공개특허 제10-2015-0123136호 (명칭 : 데이터베이스 관리 장치 및 방법)2. Korean Patent Laid-Open No. 10-2015-0123136 (titled: Database Management Apparatus and Method)

이에, 본 발명은 상기한 사정을 감안하여 창출된 것으로, 해시 기준값과, 이에 대응되는 저장할 데이터 레코드의 필드값 및, 각 데이터 레코드 필드값에 대응되는 레코드 페이지 정보로 이루어지는 해시테이블을 통해 하나의 레코드 페이지에는 동일 필드값을 갖는 데이터만 저장하도록 함으로써, 데이터 검색시간을 초기의 상태로 유지시킬 수 있도록 해 주는 데이터베이스 클러스터링 장치 및 그 방법을 제공함에 그 기술적 목적이 있다. SUMMARY OF THE INVENTION Accordingly, the present invention has been made in view of the above circumstances, and it is an object of the present invention to provide a hash table, which is composed of a hash reference value, a field value of a data record to be stored and a record page information corresponding to each data record field value, The present invention also provides a database clustering apparatus and method for storing data having the same field value in a page so that data retrieval time can be maintained at an initial state.

상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 적어도 하나 이상의 서로 다른 해시 기준값과 이에 대응되는 데이터 레코드 필드값 및, 각 데이터 레코드 필드값에 대응되는 서로 다른 레코드 페이지 정보로 이루어지는 해시테이블을 관리하는 해시테이블 관리모듈과, 기 설정된 데이터 레코드의 필드값을 이용하여 해시 기준값을 산출하고, 해시테이블에서 해시 기준값에 대응되는 데이터 레코드 필드값의 레코드 페이지를 탐색하는 레코드 페이지 탐색모듈, 탐색된 레코드 페이지에 해당 데이터 레코드를 저장함으로써, 하나의 레코드 페이지에는 동일한 필드값을 갖는 데이터 레코드만을 저장함과 더불어, 해시테이블을 참조하여 탐색된 레코드 페이지를 통해 데이터 레코드에 대한 편집처리를 수행하는 제어모듈을 포함하여 구성되는 것을 특징으로 하는 데이터베이스 클러스터링 장치가 제공된다.According to an aspect of the present invention, there is provided a method of managing a hash table including at least one or more different hash reference values, corresponding data record field values, and different record page information corresponding to each data record field value, A record page search module for calculating a hash reference value using field values of a predetermined data record and searching a record page of a data record field value corresponding to a hash reference value in a hash table, And a control module that stores only the data records having the same field value in one record page and performs edit processing on the data record through the search record page with reference to the hash table Being configured A database clustering device is provided.

또한, 상기 해시테이블 관리모듈은 데이터 레코드의 필드값을 해시 기준값 개수로 나누기 연산한 나머지 값을 해시 기준값으로 설정하는 것을 특징으로 하는 데이터베이스 클러스터링 장치가 제공된다.Also, the hash table management module sets the remaining value obtained by dividing the field value of the data record by the number of hash reference values, as a hash reference value.

또한, 상기 해시테이블 관리모듈은 데이터 레코드 필드값별 삽입 포인터를 각각 관리하도록 구성되는 것을 특징으로 하는 데이터베이스 클러스터링 장치가 제공된다. In addition, the hash table management module is configured to manage insertion pointers for each data record field value, respectively.

또한, 상기 목적을 달성하기 위한 본 발명의 또 다른 일측면에 따르면, 클러스터링 장치에서 서로 다른 해시 기준값과 이에 대응되는 데이터 레코드 필드값 및, 각 데이터 레코드 필드값에 대응되는 데이터 베이스의 서로 다른 레코드 페이지 정보로 이루어지는 해시테이블을 탐색하여 저장 요청된 데이터 레코드 에 해당하는 해시 기준값이 존재하는지를 판단하는 제1 단계와, 상기 제1 단계에서 해당 해시 기준값이 존재하지 않는 경우, 해당 해시 기준값에 대해 데이터 레코드 필드값을 설정하고, 해당 데이터 레코드 필드값에 대응되는 새로운 레코드 페이지를 설정함으로써, 하나의 레코드 페이지에는 동일한 필드값을 갖는 데이터 레코드만을 저장하기 위한 해시테이블을 생성하는 제2 단계, 상기 클러스터링 장치에서 해시테이블을 참조하여 데이터 레코드의 필드값에 해당하는 레코드 페이지에 저장 요청된 데이터 레코드를 저장하는 제3 단계를 포함하여 구성되는 것을 특징으로 하는 데이터베이스 클러스터링 방법이 제공된다.According to another aspect of the present invention, there is provided a clustering apparatus including: a clustering unit configured to compare different hash reference values, corresponding data record field values, and different record pages of a database corresponding to each data record field value, The method comprising: a first step of searching for a hash table including information as a hash reference value and determining whether there is a hash reference value corresponding to the data record requested to be stored; and if the hash reference value does not exist in the first step, A second step of setting a new record page corresponding to the value of the corresponding data record field to generate a hash table for storing only a data record having the same field value in one record page, By referring to the table, And a third step of storing the data record requested to be stored in the record page corresponding to the field value of the record.

또한, 상기 해시테이블은 데이터 레코드의 필드값을 기 설정된 해시 기준값 개수로 나누기 연산한 나머지 값으로 해시 기준값이 설정되는 것을 특징으로 하는 데이터베이스 클러스터링 방법이 제공된다.A hash reference value is set as a remainder value obtained by dividing the field value of the data record by the predetermined number of hash reference values.

또한, 상기 제3단계에서 클러스터링 장치는 저장 요청된 데이터 레코드를 탐색된 레코드 페이지에 저장함과 더불어, 해당 레코드 페이지에 대한 삽입 포인터 위치를 변경 설정함으로써, 데이터 레코드 필드값별 삽입포인터를 관리하도록 구성되는 것을 특징으로 하는 데이터베이스 클러스터링 방법이 제공된다.In addition, in the third step, the clustering device stores the data record requested to be stored in the searched record page, and manages the insertion pointer according to the data record field value by changing the insertion pointer position for the record page A database clustering method is provided.

또한, 상기 제2 단계에서 클러스터링 장치는 상기 제1 단계에서 검색된 해시 기준값에 대응되는 데이터 레코드 필드값에 대한 레코드 페이지의 삽입 포인터 위치가 해당 레코드 페이지의 종단 위치와 일정 크기 미만 차이인 경우, 해당 데이터 레코드 필드값에 대한 레코드 페이지를 추가 생성함과 더불어 이에 따라 해시테이블을 업데이트하고, 제3 단계에서 상기 클러스터링 장치는 저장 요청된 데이터 레코드를 추가 생성된 레코드 페이지에 저장함과 더불어, 이에 따라 해당 데이터 레코드 필드값에 대한 삽입 포인터의 위치를 변경 설정하는 것을 특징으로 하는 데이터베이스 클러스터링 방법이 제공된다.In the second step, when the insertion pointer position of the record page with respect to the data record field value corresponding to the hash reference value retrieved in the first step is less than a predetermined size from the end position of the record page, In addition to generating a record page for the record field value, the hash table is updated accordingly. In the third step, the clustering device stores the data record requested to be saved in the additionally generated record page, And changing the position of the insertion pointer with respect to the field value.

또한, 상기 제2 단계에서 클러스터링 장치는 해시 기준값에 대응되는 데이터 레코드 필드값이 존재하지 않는 경우, 해당 데이터 레코드 필드값에 대해 새로운 레코드 페이지를 설정함으로써, 해시테이블을 생성하는 것을 특징으로 하는 데이터베이스 클러스터링 방법이 제공된다.In the second step, if the data record field value corresponding to the hash reference value does not exist, the clustering device generates a hash table by setting a new record page for the corresponding data record field value. Method is provided.

또한, 상기 클러스터링 장치는 해시테이블을 참조하여 하나의 레코드 페이지에는 동일한 필드값을 갖는 데이터 레코드만 저장된 상태에서, 편집 요청되는 데이터 레코드의 필드값을 이용하여 해시 기준값을 산출하고, 산출된 해시 기준값에 대응되는 데이터 레코드 필드값에 대한 레코드 페이지를 탐색하여 해당 데이터 레코드에 대한 편집처리를 수행하는 단계를 추가로 포함하여 구성되는 것을 특징으로 하는 데이터베이스 클러스터링 방법이 제공된다.The clustering apparatus calculates a hash reference value using a field value of a data record requested to be edited while only a data record having the same field value is stored in one record page with reference to the hash table, Searching the record page for the corresponding data record field value and performing an edit process on the data record.

본 발명에 의하면, 데이터 레코드의 필드값을 이용하여 해당 데이터 레코드를 저장할 레코드 페이지를 결정함으로써, 하나의 레코드 페이지에는 동일한 필드값을 갖는 데이터 레코드만이 저장되어 초기 데이터 인접성을 유지할 수 있게 된다.According to the present invention, by using a field value of a data record to determine a record page to store the data record, only a data record having the same field value is stored in one record page, so that the initial data adjacency can be maintained.

또한, 데이터베이스에 저장된 데이터간 인접성을 유지하여 데이터에 대한 검색 시간이 일정하게 유지됨으로써, 데이터베이스와 연동하여 서비스를 제공함에 있어서, 사용자는 처음과 같은 성능으로 지속적인 서비스를 제공받는 것이 가능하다. In addition, since the search time for data is maintained constant by maintaining the proximity between the data stored in the database, in providing the service in cooperation with the database, the user can receive continuous service with the same performance as the first.

도1은 종래 데이터베이스의 데이터베이스의 레코드 페이지 구조를 예시한 도면.
도2는 본 발명의 제1 실시예에 따른 데이터베이스 클러스터링 장치의 개략적인 구성을 도시한 도면.
도3은 해시테이블 구성을 예시한 도면.
도4는 도2에 도시된 데이터베이스 클러스터링 장치의 동작을 설명하기 위한 흐름도.
도5는 해시테이블을 참조하여 저장된 데이터베이스의 레코드 페이지 구조를 예시한 도면.
BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a diagram illustrating a record page structure of a database of a conventional database.
2 is a diagram showing a schematic configuration of a database clustering apparatus according to a first embodiment of the present invention;
Figure 3 illustrates a hash table configuration.
FIG. 4 is a flowchart illustrating an operation of the database clustering apparatus shown in FIG. 2. FIG.
5 is a diagram illustrating a record page structure of a database stored with reference to a hash table;

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The description of the present invention is merely an example for structural or functional explanation, and the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, the embodiments are to be construed as being variously embodied and having various forms, so that the scope of the present invention should be understood to include equivalents capable of realizing technical ideas. Also, the purpose or effect of the present invention should not be construed as limiting the scope of the present invention, since it does not mean that a specific embodiment should include all or only such effect.

한편, 본 발명에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in the present invention should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms "first "," second ", and the like are intended to distinguish one element from another, and the scope of the right should not be limited by these terms. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected to the other element, but there may be other elements in between. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that there are no other elements in between. On the other hand, other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It should be understood that the singular " include "or" have "are to be construed as including a stated feature, number, step, operation, component, It is to be understood that the combination is intended to specify that it does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (e.g., a, b, c, etc.) is used for convenience of explanation, the identification code does not describe the order of each step, Unless otherwise stated, it may occur differently from the stated order. That is, each step may occur in the same order as described, may be performed substantially concurrently, or may be performed in reverse order.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs, unless otherwise defined. Commonly used predefined terms should be interpreted to be consistent with the meanings in the context of the related art and can not be interpreted as having ideal or overly formal meaning unless explicitly defined in the present invention.

도2는 본 발명의 제1 실시예에 따른 데이터베이스 클러스터링 장치의 개략적인 구성을 도시한 도면이다. 도2에 도시된 바와 같이 클러스터링 장치(100)는 데이터가 저장되는 데이터베이스(200)와 연동하여, 데이터베이스(200)에 데이터를 저장함과 더불어, 수정, 삭제 등의 편집 처리를 수행한다. 이때, 상기 클러러스터링 장치(100)와 데이터베이스(200)는 별개의 장치로 각각 구성되거나, 또는 주 메모리와 관리장치를 포함하여 이루어지는 데이터베이스 시스템 형태로 구성될 수 있음은 물론이다. FIG. 2 is a diagram showing a schematic configuration of a database clustering apparatus according to a first embodiment of the present invention. As shown in FIG. 2, the clustering apparatus 100 stores data in the database 200 in cooperation with a database 200 in which data is stored, and performs editing processing such as modification and deletion. At this time, the clustering apparatus 100 and the database 200 may be configured as separate devices, or may be configured in the form of a database system including a main memory and a management device.

클러스터링 장치(100)는 해시테이블 관리모듈(110)과, 레코드 페이지 탐색모듈(120) 및, 제어모듈(130)을 포함하여 구성된다.The clustering apparatus 100 includes a hash table management module 110, a record page search module 120, and a control module 130.

상기 해시테이블 관리모듈(110)은 적어도 하나 이상의 서로 다른 해시 기준값과 이에 대응되는 데이터 레코드 기준값 및, 각 데이터 레코드 필드값에 대응되는 데이터 베이스의 서로 다른 레코드 페이지 정보로 이루어지는 해시테이블을 관리한다. 이때, 데이터 레코드의 기준값은 데이터 레코드를 구성하는 임의 필드값으로, 특정 분류 기준에 대응되는 필드값, 예컨대 ID 값으로 설정될 수 있다. 또한, 상기 해시테이블은 관리하는 시스템 또는 데이터 종류에 따라 서로 다른 기준값 개수를 갖도록 다수개 생성되어 운용될 수 있다.The hash table management module 110 manages a hash table composed of at least one or more different hash reference values, a corresponding data record reference value, and different record page information of a database corresponding to each data record field value. At this time, the reference value of the data record may be set to a field value corresponding to a specific classification criterion, for example, an ID value, as an arbitrary field value constituting a data record. In addition, the hash table may be generated and operated in a plurality of ways so as to have different numbers of reference values depending on the system to be managed or the data type.

예컨대, 내비게이션 데이터의 경우, 한 화면은 다수의 영역으로 분리되어 관리되고, 각 영역에 대해서는 ID 필드값이 설정될 수 있다. 그리고, ID 필드값에 대해서는 건물이나 도로 차량 등과 같은 객체 정보들로 이루어지는 데이터 레코드가 각각 생성될 수 있다. 이때, 본 발명에 의하면 ID 필드값"1" 영역에 대한 건물, 도로, 차량 정보로 이루지는 각각의 데이터 레코드(총 3개의 데이터 레코드)에 대해서는 모두 해시 기준값 "1"로 설정된다. For example, in the case of navigation data, one screen is divided into a plurality of areas and managed, and an ID field value may be set for each area. For the ID field value, a data record including object information such as a building or a road vehicle can be generated. At this time, according to the present invention, the hash reference value "1" is set for each data record (total of three data records) made up of building, road, and car information for the ID field value "1"

상기 해시테이블은 데이터 레코드와 데이터베이스(200)의 레코드 페이지를 연결하기 위한 것으로, 도3에 도시된 바와 같이 해시 기준값(111)과, 이에 대응되는 데이터 레코드 필드값 링크정보(112) 및, 각 데이터 레코드 필드값에 대응되는 레코드 페이지 정보(실선 표시, 113)로 구성된다. 상기 해시 기준값(111)은 데이터 레코드를 구성하는 기 설정된 임의 필드값에 대한 나머지 연산을 통해 설정된다. 도3에 도시된 바와 같이, 해시 기준값(111)은 "0~9"의 10개 값으로 설정되고, 데이터 레코드의 필드값이 "111"인 경우, 데이터 레코드 필드값을 해시 기준값 총 개수로 나누기 연산(111 ÷ 10)한 나머지값("1")이 해당 데이터 레코드에 대한 해시 기준값으로 산출된다. The hash table is for linking the data record with the record page of the database 200. As shown in FIG. 3, the hash reference value 111, the corresponding data record field value link information 112, And record page information (solid line display) 113 corresponding to the record field value. The hash reference value 111 is set through a remaining operation on a predetermined field value constituting the data record. As shown in FIG. 3, the hash reference value 111 is set to 10 values of "0 to 9". When the field value of the data record is "111", the value of the data record field is divided by the total number of hash reference values The remaining value ("1") obtained by the calculation (111 ÷ 10) is calculated as a hash reference value for the corresponding data record.

또한, 도3에 도시된 바와 같이, 해시테이블은 하나의 해시 기준값에 대한 적어도 하나 이상의 데이터 레코드 필드값들의 링크정보로 구성될 수 있다. 도3에서 해시 기준값 "0"에 대해서는 데이터 레코드 필드값이 "10", "100", "20", "50", "900" 이 등록되고, 각 데이터 레코드 필드값에 대해 서로 다른 레코드 페이지가 링크되어 있다. 이때, 해시테이블에서 하나의 데이터 레코드 필드값에 대해서는 다수의 레코드 페이지가 링크될 수 있음은 물론이다. In addition, as shown in FIG. 3, the hash table may be composed of link information of at least one data record field value for one hash reference value. In FIG. 3, data record field values "10", "100", "20", "50", and "900" are registered for the hash reference value "0" It is linked. At this time, it is a matter of course that a plurality of record pages can be linked to one data record field value in the hash table.

상기 레코드 페이지 탐색모듈(120)은 기 설정된 데이터 레코드의 필드값을 이용하여 해시 기준값을 산출하고, 해시테이블에서 해당 데이터 레코드 필드값에 대응되는 레코드 페이지를 탐색한다. The record page search module 120 calculates a hash reference value using a field value of a predetermined data record, and searches a record page corresponding to the corresponding data record field value in the hash table.

상기 제어모듈(130)은 탐색된 레코드 페이지에 해당 데이터 레코드 필드값을 갖는 데이터를 저장함으로써, 하나의 레코드 페이지에는 동일한 데이터 레코드 필드값을 갖는 데이터 레코드만을 저장한다. The control module 130 stores data having the corresponding data record field value in the searched record page, so that only one data record having the same data record field value is stored in one record page.

상기 제어모듈(130)은 레코드 페이지에 대한 시작 포인터(도3의 "startPage") 및 삽입 포인터(도3의 "pointOfInsert")를 관리하며, 특히 데이터 레코드 필드값 별 레코드 페이지에 대한 각각의 삽입 포인터로 이루어지는 포인터 테이블을 생성하여 관리한다. 즉, 본 발명에 있어서는 데이터 레코드 필드값별로 각각의 삽입 포인터가 관리된다. 상기 제어모듈(130)은 데이터 레코드 저장시 해당 레코드 페이지의 삽입 포인터를 데이터 레코드가 저장된 마지막 메모리 논리 주소값으로 변경설정한다. 상기 포인터 테이블은 상기 해시테이블 관리모듈(110) 또는 레코드 페이지 탐색모듈(120)에 구비되어 구성될 수 있음은 물론이다. The control module 130 manages a start pointer ("startPage" in FIG. 3) and an insertion pointer ("pointOfInsert" in FIG. 3) for a record page, And generates and manages a pointer table. That is, in the present invention, each insertion pointer is managed according to the data record field value. When the data record is stored, the control module 130 changes the insertion pointer of the corresponding record page to the last memory logical address value in which the data record is stored. The pointer table may be provided in the hash table management module 110 or the record page search module 120.

또한, 상기 제어모듈(130)은 편집 요청된 데이터에 대해 해당 데이터 레코드 필드값에 대응되는 해시 기준값을 산출하고, 필드값에 대해 탐색된 레코드 페이지를 통해 해당 데이터 레코드에 대한 수정 또는 삭제 등의 편집처리를 수행한다. 이때, 상기 제어모듈(130)은 데이터 레코드 삭제 처리에 대해서는 포인터 테이블의 삽입 포인터 위치를 삭제된 데이터 레코드 위치로 변경 설정할 수 있다.In addition, the control module 130 may calculate a hash reference value corresponding to the data record field value for the data requested to be edited, and may edit the data record by modifying or deleting the corresponding data record Processing is performed. At this time, the control module 130 may change the insertion pointer position of the pointer table to the deleted data record position in the data record deletion process.

또한, 상기 제어모듈(130)은 데이터 레코드 삭제 처리에 따라 레코드 페이지에 저장된 데이터 레코드가 존재하지 않는 경우에는 상기 해시테이블 관리모듈(110)로 해당 데이터 레코드 필드값에 대한 레코드 페이지 삭제요청을 수행한다. 이때, 상기 제어모듈(130)은 레코드 페이지에 대한 사용 여부를 관리하기 위한 레코드 페이지 테이블을 관리할 수 있다. 레코드 페이지 테이블은 기 생성된 레코드 페이지 ID와, 메모리 영역(주소) 및, 저장 데이터 저장 여부정보를 포함할 수 있으며, 레코드 페이지 테이블은 상기 해시테이블 관리모듈(110) 또는 레코드 페이지 탐색모듈(120)에 구비될 수 있음은 물론이다. If there is no data record stored in the record page according to the data record deletion process, the control module 130 requests the hash table management module 110 to delete the record page of the corresponding data record field value . At this time, the control module 130 may manage a record page table for managing whether to use the record page. The record page table may include the generated record page ID, the memory area (address), and the stored data storage information. The record page table may include the hash table management module 110 or the record page search module 120, Of course.

도4는 도2에 도시된 데이터베이스 클러스터링 장치의 동작을 설명하기 위한 흐름도이다. 도5는 해시테이블을 참조하여 저장된 데이터베이스(200)의 레코드 페이지(210) 구조를 예시한 도면이다.FIG. 4 is a flowchart illustrating an operation of the database clustering apparatus shown in FIG. 2. FIG. 5 is a diagram illustrating a structure of a record page 210 of a database 200 stored with reference to a hash table.

먼저, 데이터 레코드를 분류하기 위한 적어도 하나 이상의 해시 기준값 및 그 개수가 미리 설정된다. 이때, 해시 기준값의 개수가 많아질수록 레코드 페이지 탐색 시간은 적게 소요되나, 레코드 페이지의 분산 수가 많아져 데이터베이스(200)의 데이터 저장 효율이 떨어지게 되므로, 해시 기준값은 이를 고려하여 적절하게 설정하는 것이 바람직하다.At first, at least one hash reference value and its number for sorting the data record are set in advance. At this time, as the number of hash reference values increases, the record page search time is small, but the data storage efficiency of the database 200 decreases because the number of distributed pages of the record page becomes large. Hence, Do.

상기한 상태에서, 클러스터링 장치는 데이터 저장요청에 대해 해당 데이터 레코드의 필드값을 이용하여 해시 기준값을 산출한다(ST110). 이때, 상기 클러스터링 장치(100)는 데이터 레코드의 ID 필드값을 기 설정된 해시 기준값 수로 나누기 연산한 나머지 값을 해시 기준값으로 설정한다.In the above state, the clustering apparatus calculates a hash reference value using the field value of the data record for the data storage request (ST110). At this time, the clustering apparatus 100 sets the remaining value obtained by dividing the ID field value of the data record by the predetermined number of hash reference values, as the hash reference value.

이어, 클러스터링 장치(100)는 상기 ST110 단계에서 산출된 데이터 레코드의 해시 기준값이 해시테이블에 존재하는지를 판단한다(ST120).Next, the clustering apparatus 100 determines whether a hash reference value of the data record calculated in step ST110 exists in the hash table (ST120).

클러스터링 장치(100)는 상기 ST120 단계에서 해시테이블에 해당 해시 기준값이 존재하지 않는다고 판단되면, 데이터 베이스(200)에서 사용 가능한 메모리 영역에 대응되는 레코드 페이지를 생성한다(ST130). 이때, 새롭게 생성되는 레코드 페이지에 대하여 레코드 ID가 부여되며, 이에 따라 레코드 페이지 테이블을 업데이트 한다.If it is determined in ST120 that the hash reference value does not exist in the hash table, the clustering apparatus 100 generates a record page corresponding to the usable memory area in the database 200 (ST130). At this time, a record ID is assigned to the newly generated record page, and the record page table is updated accordingly.

클러스터링 장치(100)는 새롭게 생성된 레코드 페이지 ID 정보가 해당 데이터 레코드 필드값에 대응하여 링크되도록 등록함으로써, 해시테이블을 생성한다(ST140). 즉, 상기 ST110 내지 ST140 동작의 반복에 의해 도3에 도시된 바와 같이 해시 기준값에 대한 데이터 레코드 필드값 및, 각 데이터 레코드 필드값에 대한 레코드 페이지 정보(예컨대, 레코드 ID)로 구성되는 해시테이블이 생성된다. The clustering apparatus 100 creates a hash table by registering newly generated record page ID information so as to be linked to the corresponding data record field value (ST140). That is, as shown in FIG. 3, a hash table composed of a data record field value for a hash reference value and record page information (for example, a record ID) for each data record field value is generated by repeating the operations of ST110 to ST140 .

또한, 상기 클러스터링 장치(100)는 상기 ST120 단계에서 검색된 해시 기준값에 대해 레코드 페이지가 존재하지 않거나 또는 해시 기준값이 존재하더라도 해당 데이터 레코드 필드값이 존재하지 않는 경우, ST130 단계에서 해당 해시 기준값 또는 레코드 페이지 필드값에 대해 새로운 레코드 페이지를 설정함으로써, 해시테이블을 업데이트 할 수 있다. In addition, if the record page does not exist in the hash reference value retrieved in step ST120, or if the corresponding data record field value does not exist even if the hash reference value exists, the clustering apparatus 100 determines whether the hash reference value or the record page By setting a new record page for the field value, the hash table can be updated.

또한, 상기 클러스터링 장치(100)는 상기 ST120 단계에서 검색된 해시 기준값에 대한 레코드 페이지의 삽입 포인터 위치가 레코드 페이지의 종단 위치와 데이터 레코드 크기 미만 차이인 경우, 해당 기준값에 대한 레코드 페이지를 추가 생성하도록 해시테이블을 업데이트 한다. If the position of the insertion pointer of the record page with respect to the hash reference value retrieved in step ST120 is less than the position of the end of the record page and the size of the data record, the clustering apparatus 100 may generate a hash Update the table.

한편, 클러스터링 장치(100)는 해시테이블을 참조하여 저장 요청된 데이터 레코드의 필드값에 대응되는 레코드 페이지에 해당 데이터 레코드를 저장한다(ST150). 즉, 클러스터링 장치(100)는 상기 ST120 단계에서 검색된 해시 기준값에 대응되는 데이터 레코드 필드값에 대한 레코드 페이지 또는 상기 ST130 단계에서 해당 해시 기준값 또는 데이터 레코드 필드값에 대해 새롭게 생성된 레코드 페이지에 데이터 레코드를 저장한다. On the other hand, the clustering apparatus 100 refers to the hash table and stores the corresponding data record in the record page corresponding to the field value of the stored data record (ST150). That is, the clustering apparatus 100 records a data record on a record page corresponding to the hash reference value found in step ST120 or a newly generated record page for the corresponding hash reference value or data record field value in step ST130 .

이때, 상기 클러스터링 장치(100)는 해당 레코드 페이지에 데이터 레코드를 저장함에 있어서, 해당 레코드 페이지에 대한 삽입 포인터를 근거로 레코드 페이지의 적절한 저장 위치에 데이터 레코드를 저장한다. 여기서, 상기 클러스터링 장치(100)는 상기 현재 탐색된 레코드 페이지의 삽입 포인터 위치와 해당 레코드 페이지의 종단 위치를 비교하여 그 차가 일정 크기 미만인 경우, 해당 데이터 레코드 필드값에 대한 레코드 페이지를 추가 생성함으로써, 해시테이블을 업데이트하고, 저장 요청된 데이터 레코드를 추가 생성된 레코드 페이지에 저장함과 더불어, 이에 따라 해당 해시 기준값에 대한 삽입 포인터의 위치를 변경 설정한다. At this time, when the clustering apparatus 100 stores the data record in the corresponding record page, the clustering apparatus 100 stores the data record in an appropriate storage location of the record page based on the insertion pointer to the record page. Here, the clustering apparatus 100 compares the insertion pointer position of the currently searched record page with the end position of the corresponding record page, and if the difference is less than a predetermined size, generates a record page for the corresponding data record field value, Updates the hash table, stores the data record requested to be saved in the additional generated record page, and changes the position of the insertion pointer with respect to the hash reference value accordingly.

상기 포인터 연산을 통한 레코드 페이지의 저장 영역 설정은 일반적인 기술이므로 그 상세한 설명은 생략한다. 그러나, 본 발명에 있어서는 데이터 레코드 필드값별로 레코드 페이지에 대한 삽입 포인터가 각각 설정된다는 점에서는 종래와 차이가 있다.The storage area setting of the record page through the pointer operation is a general technique, and a detailed description thereof will be omitted. However, the present invention differs from the prior art in that the insertion pointers for the record pages are set according to the data record field values.

즉, 본 발명에 있어서는 하나의 레코드 페이지에는 동일한 기준값을 갖는 데이터 레코드가 저장된다. 다시 말해, 서로 다른 필드값을 갖는 데이터 레코드는 동일한 레코드 페이지에 저장될 수 없다. 예컨대, 도5에 도시된 바와 같이, 필드값 "1"을 갖는 데이터 레코드는 제1 내지 제3 레코드 페이지(RP1, RP2, RP3)에 저장되고, 필드값 "2"를 갖는 데이터 레코드는 제4 레코드 페이지(RP4)에 저장되며, 필드값 "3"을 갖는 데이터 레코드는 제5 레코드 페이지(RP5)에 각각 저장된다. That is, in the present invention, a data record having the same reference value is stored in one record page. In other words, data records having different field values can not be stored in the same record page. For example, as shown in Fig. 5, a data record having a field value "1" is stored in the first to third record pages RP1, RP2 and RP3, The data record having the field value "3 " is stored in the record page RP4, and the data record stored in the fifth record page RP5, respectively.

한편, 상술한 바와 같이 데이터 저장요청에 대하여 해시테이블이 생성됨과 더불어, 도5에 도시된 바와 같이 해시테이블에 의해 데이터 레코드의 필드값에 대응되는 레코드 페이지에 해당 데이터 레코드가 저장된 상태에서, 임의 데이터 레코드에 대한 데이터 편집 요청이 있게 되면, 클러스터링 장치(100)는 편집 요청된 데이터의 데이터 레코드에 대응되는 해시 기준값을 산출한다(ST160). Meanwhile, as shown in FIG. 5, in the state where the hash table is generated for the data storage request as described above and the corresponding data record is stored in the record page corresponding to the field value of the data record by the hash table, When there is a data editing request for a record, the clustering apparatus 100 calculates a hash reference value corresponding to the data record of the data requested to be edited (ST 160).

클러스터링 장치(100)는 해시테이블에서 상기 ST160 단계에서 산출된 해시 기준값에 대해 등록된 해당 데이터 레코드 필드값에 대응되는 레코드 페이지를 탐색한다(ST170).The clustering apparatus 100 searches the hash table for a record page corresponding to the corresponding data record field value registered for the hash reference value calculated in step ST160 (ST170).

이어, 클러스터링 장치(100)는 탐색된 레코드 페이지에서 해당 데이터 레코드에 대한 수정 또는 삭제 등의 편집처리를 수행한다(ST180). 이때, 상기 클러스터링 장치(100)는 도5에서 기준값 "2"인 데이터 레코드를 전부 삭제하는 경우, 1개의 제4 레코드 페이지(RP4)만을 탐색하여 해당 레코드 데이터에 대한 삭제처리를 수행하면 된다. 이는 도1에 도시된 바와 같이 레코드 데이터가 분산되어 저장되는 종래의 시스템에서 전체 또는 최소 3개의 레코드 페이지를 탐색하는 경우에 비해 데이터 탐색 시간이 적게 소요될 수 있음을 알 수 있다. 또한, 이 경우 해당 레코드 페이지는 사용 가능상태로 반환되어, 해시테이블에서 클리어됨과 더불어 타 데이터 레코드 기준값에 대응되는 레코드 페이지로 새롭게 설정될 수 있다. Then, the clustering apparatus 100 performs edit processing such as modification or deletion of the corresponding data record in the found record page (ST180). At this time, when the clustering apparatus 100 deletes all of the data records having the reference value "2" in FIG. 5, the clustering apparatus 100 searches only one fourth record page RP4 and performs deletion processing on the record data. As shown in FIG. 1, it can be seen that the data search time can be reduced in comparison with the case of searching all or at least three record pages in the conventional system in which record data is distributed and stored. In this case, the corresponding record page is returned to the usable state, and can be newly set to a record page corresponding to another data record reference value, in addition to being cleared in the hash table.

100 : 클러스터링 장치,
110 : 해시테이블 관리모듈, 120 : 레코드 페이지 탐색모듈,
130 : 제어모듈.
100: Clustering device,
110: hash table management module, 120: record page search module,
130: Control module.

Claims (9)

적어도 하나 이상의 서로 다른 해시 기준값과 이에 대응되는 데이터 레코드 필드값 및, 각 데이터 레코드 필드값에 대응되는 서로 다른 레코드 페이지 정보로 이루어지는 해시테이블을 관리하는 해시테이블 관리모듈과,
기 설정된 데이터 레코드의 필드값을 이용하여 해시 기준값을 산출하고, 해시테이블에서 해시 기준값에 대응되는 데이터 레코드 필드값의 레코드 페이지를 탐색하는 레코드 페이지 탐색모듈,
탐색된 레코드 페이지에 해당 데이터 레코드를 저장함으로써, 하나의 레코드 페이지에는 동일한 필드값을 갖는 데이터 레코드만을 저장함과 더불어, 해시테이블을 참조하여 탐색된 레코드 페이지를 통해 데이터 레코드에 대한 편집처리를 수행하는 제어모듈을 포함하여 구성되는 것을 특징으로 하는 데이터베이스 클러스터링 장치.
A hash table management module that manages a hash table composed of at least one or more different hash reference values, corresponding data record field values, and different record page information corresponding to each data record field value;
A record page search module for calculating a hash reference value by using a field value of a predetermined data record and searching a record page of a data record field value corresponding to a hash reference value in a hash table,
By storing corresponding data records in the searched record page, only a data record having the same field value is stored in one record page, and control for performing edit processing on the data record through the search record page with reference to the hash table Wherein the database comprises a plurality of modules.
제1항에 있어서,
상기 해시테이블 관리모듈은 데이터 레코드의 필드값을 해시 기준값 개수로 나누기 연산한 나머지 값을 해시 기준값으로 설정하는 것을 특징으로 하는 데이터베이스 클러스터링 장치.
The method according to claim 1,
Wherein the hash table management module sets the remaining value obtained by dividing the field value of the data record by the number of hash reference values as a hash reference value.
제1항에 있어서,
상기 해시테이블 관리모듈은 데이터 레코드 필드값별 삽입 포인터를 각각 관리하도록 구성되는 것을 특징으로 하는 데이터베이스 클러스터링 장치.
The method according to claim 1,
Wherein the hash table management module is configured to manage insert pointers for each data record field value.
클러스터링 장치에서 서로 다른 해시 기준값과 이에 대응되는 데이터 레코드 필드값 및, 각 데이터 레코드 필드값에 대응되는 데이터 베이스의 서로 다른 레코드 페이지 정보로 이루어지는 해시테이블을 탐색하여 저장 요청된 데이터 레코드 에 해당하는 해시 기준값이 존재하는지를 판단하는 제1 단계와,
상기 제1 단계에서 해당 해시 기준값이 존재하지 않는 경우, 해당 해시 기준값에 대해 데이터 레코드 필드값을 설정하고, 해당 데이터 레코드 필드값에 대응되는 새로운 레코드 페이지를 설정함으로써, 하나의 레코드 페이지에는 동일한 필드값을 갖는 데이터 레코드만을 저장하기 위한 해시테이블을 생성하는 제2 단계,
상기 클러스터링 장치에서 해시테이블을 참조하여 데이터 레코드의 필드값에 해당하는 레코드 페이지에 저장 요청된 데이터 레코드를 저장하는 제3 단계를 포함하여 구성되는 것을 특징으로 하는 데이터베이스 클러스터링 방법.
The clustering apparatus searches for a hash table composed of different hash reference values, corresponding data record field values, and different record page information of the database corresponding to each data record field value, and obtains a hash reference value A first step of judging whether or not there is a first step,
If a hash reference value does not exist in the first step, a data record field value is set for the hash reference value and a new record page corresponding to the data record field value is set, A second step of generating a hash table for storing only the data records having the data record,
And a third step of storing the data record requested to be stored in the record page corresponding to the field value of the data record by referring to the hash table in the clustering device.
제4항에 있어서,
상기 해시테이블은 데이터 레코드의 필드값을 기 설정된 해시 기준값 개수로 나누기 연산한 나머지 값으로 해시 기준값이 설정되는 것을 특징으로 하는 데이터베이스 클러스터링 방법.
5. The method of claim 4,
Wherein the hash reference value is set to a value obtained by dividing the field value of the data record by the predetermined number of hash reference values.
제4항에 있어서,
상기 제3단계에서 클러스터링 장치는 저장 요청된 데이터 레코드를 탐색된 레코드 페이지에 저장함과 더불어, 해당 레코드 페이지에 대한 삽입 포인터 위치를 변경 설정함으로써, 데이터 레코드 필드값별 삽입포인터를 관리하도록 구성되는 것을 특징으로 하는 데이터베이스 클러스터링 방법.
5. The method of claim 4,
In the third step, the clustering device stores the data record requested to be stored in the searched record page, and changes the insertion pointer position for the record page, thereby managing the insertion pointer for each data record field value. To clustering databases.
제6항에 있어서,
상기 제2 단계에서 클러스터링 장치는 상기 제1 단계에서 검색된 해시 기준값에 대응되는 데이터 레코드 필드값에 대한 레코드 페이지의 삽입 포인터 위치가 해당 레코드 페이지의 종단 위치와 일정 크기 미만 차이인 경우, 해당 데이터 레코드 필드값에 대한 레코드 페이지를 추가 생성함과 더불어 이에 따라 해시테이블을 업데이트하고,
제3 단계에서 상기 클러스터링 장치는 저장 요청된 데이터 레코드를 추가 생성된 레코드 페이지에 저장함과 더불어, 이에 따라 해당 데이터 레코드 필드값에 대한 삽입 포인터의 위치를 변경 설정하는 것을 특징으로 하는 데이터베이스 클러스터링 방법.
The method according to claim 6,
In the second step, when the insertion pointer position of the record page with respect to the data record field value corresponding to the hash reference value retrieved in the first step is less than a predetermined size from the end position of the corresponding record page, In addition to creating a record page for the value, it updates the hash table accordingly,
In the third step, the clustering device stores the data record requested to be saved in the additionally created record page, and changes the location of the insertion pointer with respect to the corresponding data record field value.
제4항에 있어서,
상기 제2 단계에서 클러스터링 장치는 해시 기준값에 대응되는 데이터 레코드 필드값이 존재하지 않는 경우, 해당 데이터 레코드 필드값에 대해 새로운 레코드 페이지를 설정함으로써, 해시테이블을 생성하는 것을 특징으로 하는 데이터베이스 클러스터링 방법.
5. The method of claim 4,
Wherein in the second step, the clustering apparatus generates a hash table by setting a new record page for the corresponding data record field value if the data record field value corresponding to the hash reference value does not exist.
제4항에 있어서,
상기 클러스터링 장치는 해시테이블을 참조하여 하나의 레코드 페이지에는 동일한 필드값을 갖는 데이터 레코드만 저장된 상태에서,
편집 요청되는 데이터 레코드의 필드값을 이용하여 해시 기준값을 산출하고, 산출된 해시 기준값에 대응되는 데이터 레코드 필드값에 대한 레코드 페이지를 탐색하여 해당 데이터 레코드에 대한 편집처리를 수행하는 단계를 추가로 포함하여 구성되는 것을 특징으로 하는 데이터베이스 클러스터링 방법.
5. The method of claim 4,
The clustering apparatus refers to the hash table and stores only the data records having the same field value in one record page,
Further comprising the step of calculating a hash reference value using the field value of the data record to be edited and searching the record page for the value of the data record field corresponding to the calculated hash reference value and performing the edit process on the data record Wherein the database clustering method comprises:
KR1020160140061A 2016-10-26 2016-10-26 Database clustering apparatus and method KR101820017B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160140061A KR101820017B1 (en) 2016-10-26 2016-10-26 Database clustering apparatus and method
PCT/KR2017/011896 WO2018080188A1 (en) 2016-10-26 2017-10-26 Database clustering device and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160140061A KR101820017B1 (en) 2016-10-26 2016-10-26 Database clustering apparatus and method

Publications (1)

Publication Number Publication Date
KR101820017B1 true KR101820017B1 (en) 2018-01-18

Family

ID=61028886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160140061A KR101820017B1 (en) 2016-10-26 2016-10-26 Database clustering apparatus and method

Country Status (2)

Country Link
KR (1) KR101820017B1 (en)
WO (1) WO2018080188A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000194709A (en) 1998-12-24 2000-07-14 Nec Commun Syst Ltd Device and method for retrieving database and recording medium
JP2015515047A (en) 2012-02-24 2015-05-21 シンプリヴィティ・コーポレーション Method and apparatus utilizing non-uniform hash function to place records in non-uniform access memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110038246A (en) * 2009-10-08 2011-04-14 동국대학교 산학협력단 Apparatus and method for storing data
KR101072558B1 (en) * 2009-12-30 2011-10-11 동국대학교 산학협력단 Method and apparatus for managing data based on hashing
KR101640733B1 (en) * 2015-01-23 2016-07-20 주식회사 리얼타임테크 System for Managing data based In-Memory DataBase and method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000194709A (en) 1998-12-24 2000-07-14 Nec Commun Syst Ltd Device and method for retrieving database and recording medium
JP2015515047A (en) 2012-02-24 2015-05-21 シンプリヴィティ・コーポレーション Method and apparatus utilizing non-uniform hash function to place records in non-uniform access memory

Also Published As

Publication number Publication date
WO2018080188A1 (en) 2018-05-03

Similar Documents

Publication Publication Date Title
US8140495B2 (en) Asynchronous database index maintenance
CN100458779C (en) Index and its extending and searching method
US9262458B2 (en) Method and system for dynamically partitioning very large database indices on write-once tables
EP1393206B1 (en) Data structure for information systems
US6408312B1 (en) Method and system for supporting multiple, historical, and future designs in a relational database
US8452788B2 (en) Information retrieval system, registration apparatus for indexes for information retrieval, information retrieval method and program
KR101546333B1 (en) Apparatus for processing query in database with hybrid storages
CN106462592A (en) Systems and methods to optimize multi-version support in indexes
CN1975721B (en) Method and apparatus for managing content file information
CN102930060A (en) Method and device for performing fast indexing of database
KR101678149B1 (en) Data searching method of database, apparatus and computer program for the same
US8682872B2 (en) Index page split avoidance with mass insert processing
US20080059432A1 (en) System and method for database indexing, searching and data retrieval
US9418154B2 (en) Push-model based index updating
CN106682003A (en) Path segmentation mapping method and device for distributed memory namespace
US9594784B2 (en) Push-model based index deletion
CN103473324A (en) Multi-dimensional service attribute retrieving device and method based on unstructured data storage
KR101358793B1 (en) Method of forming index file, Method of searching data and System for managing data using dictionary index file, Recoding medium
CN105512325A (en) Multi-version data index renewing, deleting and establishing method and device
KR101666440B1 (en) Data processing method in In-memory Database System based on Circle-Queue
KR101575639B1 (en) Tile image update system for map service and method thereof
US20120185451A1 (en) Data processing method and system for database management system
KR101820017B1 (en) Database clustering apparatus and method
US7873672B2 (en) Efficient query processing of DML SQL statements
US8818990B2 (en) Method, apparatus and computer program for retrieving data

Legal Events

Date Code Title Description
GRNT Written decision to grant