KR101656750B1 - 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치 - Google Patents

인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치 Download PDF

Info

Publication number
KR101656750B1
KR101656750B1 KR1020160023403A KR20160023403A KR101656750B1 KR 101656750 B1 KR101656750 B1 KR 101656750B1 KR 1020160023403 A KR1020160023403 A KR 1020160023403A KR 20160023403 A KR20160023403 A KR 20160023403A KR 101656750 B1 KR101656750 B1 KR 101656750B1
Authority
KR
South Korea
Prior art keywords
group
information
record
compressed data
search
Prior art date
Application number
KR1020160023403A
Other languages
English (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 KR1020160023403A priority Critical patent/KR101656750B1/ko
Application granted granted Critical
Publication of KR101656750B1 publication Critical patent/KR101656750B1/ko
Priority to EP16891742.5A priority patent/EP3422205A4/en
Priority to JP2018543238A priority patent/JP6598101B2/ja
Priority to CN201680081618.2A priority patent/CN108604249A/zh
Priority to PCT/KR2016/011465 priority patent/WO2017146338A1/ko
Priority to US16/077,236 priority patent/US11030172B2/en
Priority to AU2016394744A priority patent/AU2016394744A1/en

Links

Images

Classifications

    • G06F17/30312
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • 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/21Design, administration or maintenance of databases
    • 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/2282Tablespace storage structures; Management thereof
    • G06F17/3007
    • G06F17/30094
    • G06F17/30289
    • G06F17/30336
    • G06F17/30339
    • G06F17/30569

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

인덱스정보를 생성하는 데이터베이스 아카이빙 방법을 제공한다. 본 발명의 일 실시예에 따른 인덱스정보를 생성하는 데이터베이스 아카이빙 방법은 데이터 아카이빙을 하려는 원본테이블에서 필드(field)값에 대한 정보에 기초하여 복수의 레코드(record)를 포함하는 적어도 하나의 레코드그룹을 선별하는 단계; 상기 적어도 하나의 레코드그룹 각각에 대하여 상기 레코드그룹별로 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터별로 고유하게 부여된 저장키(stored key)값을 압축테이블에 저장하는 단계; 상기 적어도 하나의 레코드그룹 각각에 대응되는 상기 필드값 및 상기 저장키값을 그룹인덱스테이블에 저장하는 단계; 및 상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 단계를 포함한다.

Description

인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치{METHOD AND APPARATUS FOR ARCHIVING AND SEARCHING DATABASE WITH INDEX INFORMATION}
본 발명은 데이터베이스의 아카이빙 방법 및 그 장치와 아카이빙된 데이터베이스의 검색 방법 및 그 장치에 관한 것으로, 보다 구체적으로는 데이터 압축기술 및 인덱스 생성기술을 이용한 데이터베이스의 아카이빙 방법 및 그 장치와 압축되어 아카이빙된 데이터베이스를 인덱스정보를 이용하여 검색하는 방법 및 그 장치에 관한 것이다.
인터넷의 보급 확대, 데이터 통신 기술의 발전 등과 더불어 PC, 랩탑 및 스마트폰과 같은 데이터 생산 및 소비 수단이 널리 보급됨에 따라, 오늘날 생산되고 소비되는 데이터의 양은 기하급수적으로 늘어나고 있는 실정이다.
이러한 데이터들을 효과적으로 분류하고 활용하기 위하여 데이터베이스를 이용하여 데이터를 관리하는 방법이 각종 기업, 단체 및 학교 등지에서 널리 이용되고 있다. 그러나, 늘어나는 데이터의 양이 기하급수적인 만큼, 데이터베이스의 용량도 곧 한계에 다다르게 될 것이며, 데이터베이스의 용량을 계속하여 확장하는 것도 비용 및 관리의 측면에서 제약이 있는 것이 현실이다.
따라서, 데이터베이스를 효율적으로 아카이빙하여 용량을 절약할 수 있는 기술에 대한 관심이 증가하고 있다. 특히, 데이터 압축기술 및 인덱스 생성기술을 이용한 데이터베이스의 아카이빙 방법 및 그 장치와 압축되어 아카이빙된 데이터베이스를 인덱스정보를 이용하여 검색하는 방법 및 그 장치에 대한 관심이 대두되고 있다.
관련 선행기술로는 대한민국 공개특허 제2014-0072929호(발명의 명칭: 아카이빙 작업수행 자동화 방법, 공개일자: 2014년 6월 16일)가 있다.
본 발명은 데이터베이스의 레코드를 소정의 기준에 의해 분류하고, 분류된 레코드별로 압축하여 아카이빙함으로써 데이터베이스의 용량을 절약할 수 있는 데이터베이스 아카이빙 방법 및 그 장치를 제공하고자 한다.
또한, 본 발명은 데이터베이스 아카이빙 시에 인덱스정보를 더 생성함으로써, 생성된 인덱스정보를 이용하여 데이터베이스를 보다 효율적으로 검색하는 데이터베이스 검색 방법 및 그 장치를 제공하고자 한다.
또한, 본 발명은 위와 같은 방법으로 아카이빙된 데이터베이스를 병렬로 검색하는 보다 효율적인 데이터베이스 검색 방법 및 그 장치를 제공하고자 한다.
상기 목적을 달성하기 위해, 본 발명에서 제공하는 인덱스정보를 생성하는 데이터베이스 아카이빙 방법은 데이터 아카이빙을 하려는 원본테이블에서 필드(field)값에 대한 정보에 기초하여 복수의 레코드(record)를 포함하는 적어도 하나의 레코드그룹을 선별하는 단계; 상기 적어도 하나의 레코드그룹 각각에 대하여 상기 레코드그룹별로 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터별로 고유하게 부여된 저장키(stored key)값을 압축테이블에 저장하는 단계; 상기 적어도 하나의 레코드그룹 각각에 대응되는 상기 필드값 및 상기 저장키값을 그룹인덱스테이블에 저장하는 단계; 및 상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 단계를 포함한다.
바람직하게는, 상기 적어도 하나의 레코드그룹을 선별하는 단계가 상기 원본테이블에서 시간에 대한 정보에 더 기초하여 상기 적어도 하나의 레코드그룹을 선별할 때, 상기 적어도 하나의 레코드그룹 각각에 대하여 대응되는 상기 시간에 대한 정보 및 상기 저장키값을 기간인덱스테이블에 저장하는 단계;를 더 포함할 수 있다.
바람직하게는, 상기 원본테이블에 포함된 각 레코드에 대하여 프라이머리키(primary key)의 값, 상기 그룹압축데이터 내에서의 위치인 키인덱스정보 및 상기 그룹압축데이터에 대응되는 상기 저장키값에 대한 정보를 키인덱스테이블에 저장하는 단계를 더 포함할 수 있다.
바람직하게는, 상기 프라이머리키를 통해 상기 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 상기 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여, 상기 제2 그룹압축데이터에 포함된 복수의 레코드 중에서 상기 원본테이블에 포함된 레코드와 상기 프라이머리키의 값이 동일한 레코드를 검색하는 단계; 및 상기 검색된 레코드에 대하여 상기 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 상기 키인덱스테이블 상의 상기 프라이머리키의 값이 동일한 레코드에 더 저장하는 단계를 포함할 수 있다.
또한, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 인덱스정보를 생성하는 데이터베이스의 아카이빙 장치는 데이터 아카이빙을 하려는 원본테이블에서 필드값에 대한 정보에 기초하여 복수의 레코드를 포함하는 적어도 하나의 레코드그룹을 선별하는 데이터선별부; 상기 적어도 하나의 레코드그룹 각각에 대하여 상기 레코드그룹별로 압축하여 그룹압축데이터를 생성하는 데이터압축부; 상기 그룹압축데이터 및 상기 그룹압축데이터별로 고유하게 부여된 저장키값을 압축테이블에 저장하고, 상기 적어도 하나의 레코드그룹 각각에 대응되는 상기 필드값 및 상기 저장키값을 그룹인덱스테이블에 저장하고, 상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 DB관리부;를 포함한다.
바람직하게는, 상기 데이터선별부가 상기 원본테이블에서 시간에 대한 정보에 더 기초하여 상기 적어도 하나의 레코드그룹을 선별할 때, 상기 DB관리부는 상기 적어도 하나의 레코드그룹 각각에 대응되는 상기 시간에 대한 정보 및 상기 저장키값을 기간인덱스테이블에 더 저장할 수 있다.
바람직하게는, 상기 DB관리부는 상기 원본테이블에 포함된 각 레코드에 대하여 프라이머리키의 값, 상기 그룹압축데이터 내에서의 위치인 키인덱스정보 및 상기 그룹압축데이터에 대응되는 상기 저장키값에 대한 정보를 키인덱스테이블에 더 저장할 수 있다.
바람직하게는, 상기 프라이머리키를 통해 상기 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 상기 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여, 상기 DB관리부는 상기 제2 그룹압축데이터에 포함된 복수의 레코드 중에서 상기 원본테이블에 포함된 레코드와 상기 프라이머리키의 값이 동일한 레코드를 더 검색하고, 상기 검색된 레코드에 대하여 상기 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 상기 키인덱스테이블 상의 상기 프라이머리키의 값이 동일한 레코드에 더 저장할 수 있다.
또한, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 방법은 필드값에 대한 정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 고유한 저장키값을 포함하는 압축테이블에서 사용자가 원하는 상기 필드값에 대한 소정 조건의 레코드를 검색하기 위한 검색조건을 수신하는 단계; 상기 필드값에 대한 정보 및 상기 필드값에 대한 정보에 대응되는 상기 저장키값이 저장된 그룹인덱스테이블에서 상기 검색조건을 만족하는 저장키값을 검색하는 단계; 검색이 수행되는 컴퓨터의 성능 및 상기 검색조건을 만족하는 상기 저장키값에 대응되는 상기 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계; 및 상기 결정된 DB검색과정의 개수에 기초하여 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 단계를 포함한다.
바람직하게는, 시간에 대한 정보에 더 기초하여 생성된 상기 그룹압축데이터가 상기 압축테이블에 포함되고, 상기 시간에 대한 소정 조건이 상기 수신된 검색조건에 더 포함될 때, 상기 시간에 대한 정보 및 상기 시간에 대한 정보에 대응되는 상기 저장키값이 저장된 기간인덱스테이블에서 상기 검색조건을 만족하는 저장키값을 검색하는 단계; 를 더 포함할 수 있다.
바람직하게는, 프라이머리키값에 대한 검색 조건이 상기 검색조건에 더 포함되었을 때, 상기 압축테이블로 아카이빙된 원본테이블의 각 레코드별 상기 프라이머리키의 값, 상기 그룹압축데이터 내에서의 위치인 키인덱스정보 및 상기 그룹압축데이터에 대응되는 상기 저장키값에 대한 정보가 저장된 키인덱스테이블에서 상기 검색조건을 만족하는 레코드의 상기 저장키값 및 상기 키인덱스정보를 검색하는 단계;를 더 포함하고, 상기 레코드의 검색을 병렬로 수행하는 단계는 상기 저장키값 및 상기 키인덱스정보에 더 기초하여 검색을 수행할 수 있다.
바람직하게는, 상기 프라이머리키를 통해 상기 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 상기 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여, 상기 저장키값 및 상기 키인덱스정보를 검색하는 단계는 각 레코드별 상기 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 포함하는 상기 키인덱스테이블에서 상기 검색조건을 만족하는 레코드의 상기 서브인덱스정보를 더 검색하고, 상기 레코드의 검색을 병렬로 수행하는 단계는 상기 서브인덱스정보 및 상기 제2 그룹압축데이터에 더 기초하여 검색을 수행할 수 있다.
바람직하게는, 상기 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계는 상기 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집하는 단계; 상기 압축테이블에 저장된 상기 그룹압축데이터 중에서 상기 수신된 검색조건을 만족하는 상기 저장키값에 대응되는 상기 그룹압축데이터의 개수를 결정하는 단계; 및 상기 수집된 컴퓨터성능정보 및 상기 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계;를 포함할 수 있다.
또한, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 장치는 필드값에 대한 정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 고유한 저장키값을 포함하는 압축테이블에서 사용자가 원하는 상기 필드값에 대한 소정 조건의 레코드를 검색하기 위한 검색조건을 수신하는 수신부; 상기 필드값에 대한 정보 및 상기 필드값에 대한 정보에 대응되는 상기 저장키값이 저장된 그룹인덱스테이블에서 상기 검색조건을 만족하는 저장키값을 검색하는 인덱스검색부; 검색이 수행되는 컴퓨터의 성능 및 상기 검색조건을 만족하는 상기 저장키값에 대응되는 상기 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 검색준비부; 및 상기 결정된 DB검색과정의 개수에 기초하여 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 병렬검색부를 포함한다.
바람직하게는, 시간에 대한 정보에 더 기초하여 생성된 상기 그룹압축데이터가 상기 압축테이블에 포함되고, 상기 시간에 대한 소정 조건이 상기 수신된 검색조건에 더 포함될 때, 상기 인덱스검색부는 상기 시간에 대한 정보 및 상기 시간에 대한 정보에 대응되는 상기 저장키값이 저장된 기간인덱스테이블에서 상기 검색조건을 만족하는 저장키값을 더 검색할 수 있다.
바람직하게는, 상기 검색조건에 프라이머리키값에 대한 검색 조건이 포함되었을 때, 상기 인덱스검색부는 상기 압축테이블로 아카이빙된 원본테이블의 각 레코드별 상기 프라이머리키의 값, 상기 그룹압축데이터 내에서의 위치인 키인덱스정보 및 상기 그룹압축데이터에 대응되는 상기 저장키값에 대한 정보가 저장된 키인덱스테이블에서 상기 검색조건을 만족하는 레코드의 상기 저장키값 및 상기 키인덱스정보를 더 검색하고, 상기 병렬검색부는 상기 저장키값 및 상기 키인덱스정보에 더 기초하여 검색을 수행할 수 있다.
바람직하게는, 상기 프라이머리키를 통해 상기 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 상기 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여, 상기 인덱스검색부는 각 레코드별 상기 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 포함하는 상기 키인덱스테이블에서 상기 검색조건을 만족하는 레코드의 상기 서브인덱스정보를 더 검색하고, 상기 병렬검색부는 상기 서브인덱스정보 및 상기 제2 그룹압축데이터에 더 기초하여 검색을 수행할 수 있다.
바람직하게는, 상기 검색준비부는 상기 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집하고, 상기 압축테이블에 저장된 상기 그룹압축데이터 중에서 상기 수신된 검색조건을 만족하는 상기 저장키값에 대응되는 상기 그룹압축데이터의 개수를 결정하고, 상기 수집된 컴퓨터성능정보 및 상기 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정할 수 있다.
본 발명은 데이터베이스에 저장된 데이터를 검색 빈도, 중요도 등에 따라 분류하고, 분류 결과별로 압축하여 아카이빙함으로써, 데이터베이스의 사용 용량을 획기적으로 줄일 수 있는 효과가 있다.
또한, 본 발명은 아카이빙 과정에서 인덱스정보를 생성함으로써, 아카이빙된 데이터베이스의 검색시 효율성을 극대화할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 인덱스정보를 생성하는 데이터베이스 아카이빙 방법을 설명하기 위하여 도시한 흐름도이다.
도 2는 본 발명의 다른 실시예에 따른 인덱스정보를 생성하는 데이터베이스 아카이빙 방법을 설명하기 위하여 도시한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 방법을 설명하기 위하여 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 DB검색과정의 개수를 결정하는 방법을 설명하기 위하여 도시한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 인덱스정보를 생성하는 데이터베이스의 아카이빙 장치를 설명하기 위하여 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 장치를 설명하기 위하여 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 압축테이블의 구조를 설명하기 위하여 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 그룹인덱스테이블 및 기간인덱스테이블의 구조를 설명하기 위하여 도시한 도면이다.
도 9은 본 발명의 일 실시예에 따른 키인덱스테이블의 구조를 설명하기 위하여 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 인덱스정보를 생성하는 데이터베이스 아카이빙 방법을 설명하기 위하여 도시한 흐름도이다.
단계 S110에서는, 데이터베이스 아카이빙 장치가 데이터 아카이빙을 하려는 원본테이블에서 필드(field)값에 대한 정보에 기초하여 복수의 레코드(record)를 포함하는 적어도 하나의 레코드그룹을 선별한다.
테이블은 데이터베이스에서 데이터를 저장하는 기본 구조를 이루는 단위이며, 원본테이블은 데이터베이스에 포함된 복수의 테이블 중에서 용량을 절약하기 위하여 아카이빙을 하려는 테이블일 수 있다.
예컨대, 데이터베이스 아카이빙 장치가 원본테이블에서 필드값에 대한 정보에 기초하여 복수의 레코드를 포함하는 적어도 하나의 레코드그룹을 선별할 때, 필드값이 소정의 범위 이내인 복수의 레코드만으로 레코드그룹을 선별할 수 있다.
한편, 레코드그룹의 선별에 이용되는 필드값은 원본테이블에서 가장 검색이 빈번하게 발생하는 필드의 필드값으로 결정될 수 있다. 이 아카이빙된 데이터베이스를 나중에 검색할 때, 생성된 인덱스정보를 이용하여 검색의 효율성을 극대화할 수 있기 때문이다.
레코드그룹은 원본테이블에 포함된 전체 레코드 중에서 선별된 복수의 레코드의 집합으로 구성된 그룹이다. 레코드그룹은 적어도 하나 이상 생성될 수 있으며, 필요에 따라서 원본테이블의 전체가 아닌 일부의 레코드만을 대상으로 한정하여 레코드그룹을 생성할 수 있다. 예를 들어, 원본테이블에서 2015년 이후의 레코드는 제외하고, 2015년 이전의 레코드만을 대상으로 하여 아카이빙하기 위하여 레코드그룹을 생성할 수 있다.
한편, 하나의 레코드그룹에 포함되는 레코드의 개수는 원본테이블에 포함된 전체 레코드의 개수, 데이터베이스를 검색하는 컴퓨터의 성능 및 데이터베이스의 빈도가 높은 검색 조건 등을 종합적으로 분석 및 검토하여 결정될 수 있다.
다른 실시예에서는, 데이터베이스 아카이빙 장치가 그 선별된 적어도 하나의 레코드그룹 중에서 레코드의 개수가 임계치를 초과하는 초과레코드그룹이 존재하면, 그 초과레코드그룹을 레코드의 개수가 임계치 이하인 복수의 레코드그룹으로 분리할 수 있다.
예컨대, 하나의 레코드그룹이 포함할 수 있는 레코드의 개수인 임계치가 10만개로 설정될 수 있다. 그러나, 만약에, 선별된 레코드그룹에 그 임계치를 초과하는 레코드 개수를 포함한 초과레코드그룹이 존재한다면, 이는 컴퓨터의 과부하 및 비효율을 초래할 수 있어, 문제의 소지가 될 수 있다
따라서, 하나의 레코드그룹이 10만개를 초과하는 레코드를 가지는 경우, 이를 10만개 단위로 분리하여 여러 개의 레코드그룹을 생성할 수 있다. 예컨대, 하나의 레코드그룹이 25만개의 레코드 개수를 가지는 경우, 데이터베이스 아카이빙 장치가 이 초과레코드그룹을 10만개씩의 레코드 개수를 가지는 두개의 레코드그룹과 5만개의 레코드 개수를 가지는 레코드그룹의 총 3개의 레코드그룹으로 분리할 수 있다.
한편, 위와 같이 분리된 복수의 레코드그룹은 서로 동일한 필드값에 의한 분류 기준에 의해 분류되었기 때문에, 그 복수의 레코드그룹을 서로 구별할 방법이 없을 수 있다. 따라서, 그 분리된 복수의 레코드그룹 각각에 일련번호(예, 1,2,3,4,…)를 부여하고 압축테이블의 일련번호 필드에 더 저장할 수 있다. 이 경우, 아카이빙된 데이터베이스를 검색할 때에도, 레코드그룹 각각을 구별하여 검색을 수행할 수 있다.
단계 S120에서는, 데이터베이스 아카이빙 장치가 선별된 적어도 하나의 레코드그룹 각각에 대하여 레코드그룹별로 압축하여 생성된 그룹압축데이터 및 그 그룹압축데이터별로 고유하게 부여된 저장키(stored key)값을 압축테이블에 저장한다.
압축테이블은 원본테이블을 레코드그룹 단위로 압축하여 아카이빙한 데이터가 저장되는 테이블을 의미한다. 또한, 압축테이블은 레코드그룹별로 압축하여 생성된 그룹압축데이터를 저장하기 위한 필드와 그 그룹압축데이터에 대응되도록 고유하게 부여된 저장키값을 저장하기 위한 적어도 하나의 필드를 포함할 수 있다.
저장키값은 그룹압축데이터별로 고유하게 부여된 키값으로, 저장키에 해당하는 필드에 각 그룹압축데이터별로 고유한 저장키값이 저장될 수 있다. 또한, 그 저장키에 해당하는 필드는 하나 이상이 될 수도 있으며, 그 하나 이상의 필드에 분산 저장된 저장키값이 결합되었을 때, 각 그룹압축데이터별로 고유한 저장키값을 가질 수 있다.
그룹압축데이터는 분류된 레코드그룹 각각을 압축하여 생성한 바이너리 데이터일 수 있으며, 그룹압축데이터를 생성하고 압축테이블에 저장하는 구체적인 과정은 다음과 같다.
단계 S122에서는, 데이터베이스 아카이빙 장치가 레코드그룹에 포함된 복수의 레코드의 데이터를 버퍼에 저장한다.
복수의 레코드의 데이터가 저장되는 버퍼의 크기는 원본테이블의 테이블 구조(필드의 개수, 종류 및 크기) 및 레코드그룹에 포함되는 레코드의 임계치에 기초하여 결정될 수 있다.
예컨대, 원본테이블이 DATE(문자 8자), NAME(문자 30자) 및 AGE(정수 4바이트)의 총 3개의 필드를 포함하고 있고, 레코드그룹의 레코드 개수에 대한 임계치가 10만개라고 하면, 문자 1자를 2바이트로 계산할 때, 버퍼의 크기는 최소 10만 * (8*2 + 30*2 + 4) = 800만바이트(약 8메가바이트)가 될 수 있다.
그리고, 데이터베이스 아카이빙 장치가 레코드그룹에 포함된 레코드 및 그 레코드의 필드값을 순차적으로 모두 읽어서, 버퍼에 차례대로 저장할 수 있다.
단계 S124에서는, 데이터베이스 아카이빙 장치가 그 버퍼에 저장된 데이터를 압축하여 그룹압축데이터를 생성한다.
그룹압축데이터는 버퍼에 저장된 레코드그룹의 데이터를 압축하여 생성된 바이너리 형태의 결과물일 수 있다. 이때, 압축으로 인한 손실이 발생하지 않도록 하기 위하여, 무손실의 압축 알고리즘인 ZIP, CTW, LZ77 또는 LZW 등이 사용될 수 있다.
단계 S126에서는, 데이터베이스 아카이빙 장치가 그 생성된 그룹압축데이터별로 고유하게 부여된 저장키값을 생성한다.
예컨대, 데이터베이스 아카이빙 장치가 시간에 소정의 필드값에 기초하여 레코드그룹을 분류하고, 그 레코드그룹에 대응되는 그룹압축데이터를 생성하였을 때, 그 생성된 그룹압축데이터 각각에 대하여 고유한 저장키값을 부여할 수 있다.
마지막으로 단계 S128에서는, 데이터베이스 아카이빙 장치가 생성된 그룹압축데이터를 부여된 저장키값과 함께 압축테이블 상의 동일한 레코드에 저장한다.
압축테이블은 바이너리 형태인 그룹압축데이터를 저장하기 위한 필드와 저장키값을 저장하기 위한 적어도 하나의 필드를 포함할 수 있다. 즉, 생성된 그룹압축데이터는 압축된 바이너리 데이터를 저장하기 위한 필드에 저장되고, 그 그룹압축데이터에 대응되는 저장키값은 그 적어도 하나의 필드에 분산되어 저장될 수 있다.
한편, 도 7은 압축테이블의 구조를 설명하기 위하여 도시한 도면으로, 압축테이블의 구조를 설명하면 다음과 같다.
원본테이블(710)은 시간에 대한 Date필드(714) 및 특정 속성에 대한 Col1필드(716)를 포함하고 있다. 이때, 데이터베이스 아카이빙 장치가 원본테이블(710)을 시간에 대한 정보인 Date필드(714)의 필드값 및 특정 속성에 대한 Col1필드(716)값에 기초하여 분류한 후, 각 분류 결과별로 그룹압축데이터(724) 및 그 그룹압축데이터에 대응되는 고유하게 부여된 저장키값(722)를 압축테이블(720)에 저장할 수 있다.
예컨대, 원본테이블(710)에서 Date필드(714)의 필드값이 2002.01이면서, Col1필드(716)의 필드값이 1000인 레코드그룹을 분류하여 150001의 저장키값(722)을 부여하고, Date필드(714)의 필드값이 2002.01이면서, Col1필드(716)의 필드값이 2000인 레코드그룹을 분류하여 150002의 저장키값(722)을 부여할 수 있다. 이때, Date필드(714)의 필드값이 2002.01이면서, Col1필드(716)의 필드값이 각각 1000 및 2000인 레코드의 개수가 각각 5만개 및 4만개인 것을 압축테이블(720)의 그룹압축데이터(724)의 레코드의 개수에 대한 정보로부터 알 수 있다.
단계 S130에서는, 데이터베이스 아카이빙 장치가 적어도 하나의 레코드그룹 각각에 대응되는 필드값 및 저장키값을 그룹인덱스테이블에 저장한다.
그룹인덱스테이블은 소정의 필드값에 대한 정보를 저장하기 위한 필드와 그 소정의 필드값에 대한 정보에 대응되는 그룹압축데이터에게 고유하게 부여된 저장키를 저장하기 위한 적어도 하나의 필드를 포함할 수 있다.
그 필드값 및 저장키값을 포함하는 그룹인덱스테이블은 소정의 필드값에 대한 정보로부터 대응되는 저장키값을 획득하는데 이용되고, 압축테이블은 그 저장키값에 대응되는 그룹압축데이터를 획득하는데 이용될 수 있다.
마지막으로 단계 S140에서는, 데이터베이스 아카이빙 장치가 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 원본테이블에서 삭제한다.
데이터베이스를 압축하여 아카이빙하는 목적은 데이터베이스의 저장 공간을 절약하기 위함이므로, 아카이빙이 된 레코드그룹에 포함되는 복수의 레코드들을 원본테이블에서 삭제함으로써 데이터베이스의 저장 공간을 절약할 수 있다.
다른 실시예에서는, 데이터베이스 아카이빙 장치가 원본테이블에서 시간에 대한 정보에 더 기초하여 적어도 하나의 레코드그룹을 선별할 때, 적어도 하나의 레코드그룹 각각에 대하여 대응되는 시간에 대한 정보 및 저장키값을 기간인덱스테이블에 저장할 수 있다.
기간인덱스테이블은 소정의 시간에 대한 정보를 저장하기 위한 필드와 그 소정의 시간에 대한 정보에 대응되는 그룹압축데이터에게 고유하게 부여된 저장키를 저장하기 위한 적어도 하나의 필드를 포함할 수 있다.
그 소정의 시간에 대한 정보 및 저장키값을 포함하는 기간인덱스테이블은 소정의 시간에 대한 정보로부터 대응되는 저장키값을 획득하는데 이용되고, 압축테이블은 그 저장키값에 대응되는 그룹압축데이터를 획득하는데 이용될 수 있다. 한편, 기간인덱스테이블은 시간 또는 기간에 대한 검색 빈도 등에 기초하여 선택적으로 생성되어 이용될 수 있다.
예컨대, 데이터베이스 아카이빙 장치가 소정의 필드값 및 시간에 대한 정보에 기초하여 원본테이블로부터 레코드그룹을 선별하고, 그 선별된 레코드그룹별로 생성된 그룹압축데이터와 그 생성된 그룹압축데이터에 고유하게 부여된 저장키값을 압축테이블에 저장할 수 있다.
그리고, 그 선별된 레코드그룹별로 포함된 복수의 레코드에게 공통되는 필드값에 대한 정보(예, Col1 필드값이 1000)와 그룹압축데이터에 대응되는 저장키값을 그룹인덱스테이블에 저장할 수 있다. 또한, 그 선별된 레코드그룹별로 포함된 복수의 레코드에게 공통되는 시간에 대한 정보(예, Date 필드값이 2002.01)와 그룹압축데이터에 대응되는 저장키값을 기간인덱스테이블에 저장할 수 있다.
한편, 도 8은 그룹인덱스테이블 및 기간인덱스테이블의 구조를 설명하기 위하여 도시한 도면으로, 그룹인덱스테이블 및 기간인덱스테이블의 구조를 설명하면 다음과 같다.
도 7을 참조하면, 압축테이블(720)에는 그룹압축데이터(724) 및 그 그룹압축데이터에 대응되는 고유하게 부여된 저장키값(722)이 저장되어 있다. 데이터베이스 아카이빙 장치가 압축테이블(720)에 저장된 각각의 그룹압축데이터(724)에 대하여, 대응되는 저장키값(722) 및 원본테이블(710)의 Col1필드(716)값에 기초하여, 도 8에 포함된 그룹인덱스테이블(820)에 저장키값(722) 및 필드값에 대한 정보(822)를 저장할 수 있다. 또한, 데이터베이스 아카이빙 장치가 압축테이블(720)에 저장된 각각의 그룹압축데이터(724)에 대하여, 대응되는 저장키값(722) 및 원본테이블(710)의 Date필드(714)값에 기초하여, 도 8에 포함된 기간인덱스테이블(810)에 저장키값(722) 및 시간에 대한 정보(812)를 저장할 수 있다.
이와 같이, 본 발명의 일실시예에 따른 데이터베이스 아카이빙 방법은 압축하는 절차를 거쳐 데이터베이스를 아카이빙함으로써, 데이터베이스의 용량을 획기적으로 절약하는 효과가 있다. 또한, 데이터베이스에 포함된 원본테이블 및 연결테이블로부터 그룹인덱스테이블 및 기간인덱스테이블을 생성함으로써 추후에 그 아카이빙된 데이터를 검색하는데 있어서 검색의 효율성을 극대화할 수 있는 효과가 있다.
도 2는 본 발명의 다른 실시예에 따른 인덱스정보를 생성하는 데이터베이스 아카이빙 방법을 설명하기 위하여 도시한 흐름도이다.
단계 S210에서는, 데이터베이스 아카이빙 장치가 데이터 아카이빙을 하려는 원본테이블에서 필드값에 대한 정보에 기초하여 복수의 레코드를 포함하는 적어도 하나의 레코드그룹을 선별한다.
단계 S220에서는, 데이터베이스 아카이빙 장치가 선별된 적어도 하나의 레코드그룹 각각에 대하여 레코드그룹별로 압축하여 생성된 그룹압축데이터 및 그 그룹압축데이터별로 고유하게 부여된 저장키값을 압축테이블에 저장한다.
단계 S230에서는, 데이터베이스 아카이빙 장치가 적어도 하나의 레코드그룹 각각에 대응되는 필드값 및 저장키값을 그룹인덱스테이블에 저장한다.
단계 S240에서는, 데이터베이스 아카이빙 장치가 원본테이블에 포함된 각 레코드에 대하여 프라이머리키(primary key)의 값, 그룹압축데이터 내에서의 위치인 키인덱스정보 및 그룹압축데이터에 대응되는 저장키값에 대한 정보를 키인덱스테이블에 저장한다.
프라이머리키는 데이터베이스에서 레코드별로 고유하게 식별되는 값을 가지는 필드를 의미하며, 기본키, 주키 또는 유니크키라고도 할 수 있다. 또한, 하나의 테이블에는 하나 이상의 프라이머리키가 존재할 수 있다.
또한, 키인덱스정보는 특정한 프라이머리키값을 가지는 레코드가 그룹압축데이터 내에서 어느 위치에 저장되어 있는지에 대한 정보이다. 예를 들어, 그룹압축데이터가 포함하는 10만개의 레코드에 대한 정보 중에서 1000번째로 저장된 레코드라는 저장순서에 관한 정보가 키인덱스정보로 저장될 수 있다.
한편, 키인덱스테이블에서 프라이머리키의 값을 저장하는 이유는 검색 대상이 되는 테이블을 다른 필드값 및 시간에 대한 정보뿐만 아니라 그 프라이머리키값에 의해 직접 검색할 수 있도록 하기 위함이다. 즉, 사용자가 특정한 프라이머리키값을 입력하면서, 그 프라이머리키값을 갖는 레코드를 테이블에서 검색하려고 할 때, 키인덱스테이블이 사용될 수 있다.
보다 구체적으로는, 데이터베이스 검색 장치가 그 특정한 프라이머리키값을 갖는 레코드를 키인덱스테이블에서 검색할 수 있다. 그리고, 그 검색된 레코드에 포함된 키인덱스정보 및 저장키값에 기초하여, 압축테이블에서 그 저장키값에 대응되는 그룹압축데이터를 획득하고, 그 키인덱스정보를 이용하여 그 그룹압축데이터에서 사용자가 검색을 원하는 레코드를 검색할 수 있다. 이에 대한 보다 구체적인 설명은 도 3에 대한 설명에서 후술한다.
다른 실시예에서는, 데이터베이스 아카이빙 장치가, 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여, 그 제2 그룹압축데이터에 포함된 복수의 레코드 중에서 원본테이블에 포함된 레코드와 프라이머리키의 값이 동일한 레코드를 검색하고, 그 검색된 레코드에 대하여 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 키인덱스테이블 상의 프라이머리키의 값이 동일한 레코드에 더 저장할 수 있다.
연결테이블은 프라이머리키를 통해 원본테이블과 연결되는 테이블이다. 즉, 그 프라이머리키는 원본테이블과 연결테이블에 모두 존재할 수 있다.
제2 그룹압축데이터는 프라이머리키를 통해 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 그 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 데이터이다. 이때. 제2 그룹압축데이터는 도 1에 대한 설명에서 상술한 그룹압축데이터와 동일한 방식으로 생성될 수 있으며, 그룹압축데이터와 마찬가지로 고유한 저장키값 함께 압축테이블에 저장될 수 있다.
서브인덱스정보는 특정한 프라이머리키값을 가지는 레코드가 어떤 제2 그룹압축데이터 내에서 어느 위치에 저장되어 있는지에 대한 정보이다. 예를 들어, 제2 그룹압축데이터에 포함된 10만개의 레코드에 대한 정보 중에서 1000번째로 저장된 레코드라는 저장순서에 관한 정보가 서브인덱스정보로 저장될 수 있다.
예컨대, 데이터베이스에 원본테이블과 프라이머리키를 통해 연결되는 1개의 연결테이블이 존재할 수 있다. 만일, 원본테이블에는 존재하지 않으나 연결테이블에는 존재하는 필드에 대하여, 사용자가 그 필드의 필드값 정보를 필요로 한다면, 데이터베이스 아카이빙 장치가 추후에 그 연결테이블까지 검색할 수 있도록 키인덱스테이블 상의 동일한 프라이머리키값을 가지는 레코드에 서브인덱스정보를 더 저장할 수 있다.
또 다른 실시예에서는, 데이터베이스 아카이빙 장치가 적어도 하나의 연결테이블 각각에 대한 서브인덱스정보를 취합하여 압축한 뒤, 키인덱스테이블에 새로운 서브인덱스정보로 저장할 수 있다.
예컨대, 데이터베이스 아카이빙 장치가 적어도 하나의 연결테이블에서 동일한 프라이머리키값을 가지는 레코드에 대하여 적어도 하나의 제2 그룹압축데이터 내에서의 위치에 대한 서브인덱스정보를 모두 취합할 수 있다. 그리고, 그 취합된 값들을 압축하여, 키인덱스테이블 상의 동일한 프라이머리키의 값을 포함하는 레코드에 새로운 서브인덱스정보로 저장할 수 있다.
한편, 도 9는 키인덱스테이블의 구조를 설명하기 위하여 도시한 도면으로, 키인덱스테이블의 구조를 설명하면 다음과 같다.
도 7을 참조하면, 원본테이블(710)에 포함된 각 레코드에 대하여 프라이머리키인 Doc.No.필드(712)값, 그 레코드가 저장된 그룹압축데이터(724)에 대응되는 저장키값(722) 및 그 레코드의 키인덱스정보(912)가 키인덱스테이블(910)에 저장될 수 있다. 또한, 원본테이블(710)과 프라이머리키(712)를 통해 연결되는 연결테이블(미도시)에 기초하여 생성된 제2 그룹압축데이터에 대하여, 원본테이블(710)의 레코드와 동일한 프라이머리키값(712)을 가지는 연결테이블의 레코드의 서브인덱스정보(914)가 키인덱스테이블(910)에 더 저장될 수 있다.
단계 S250에서는, 데이터베이스 아카이빙 장치가 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 원본테이블에서 삭제한다.
이와 같이, 본 발명의 일실시예에 따른 데이터베이스 아카이빙 방법은 압축하는 절차를 거쳐 데이터베이스를 아카이빙함으로써, 데이터베이스의 용량을 획기적으로 절약하는 효과가 있다. 또한, 데이터베이스에 포함된 원본테이블 및 연결테이블로부터 키인덱스테이블을 생성함으로써 추후에 프라이머리키값을 이용하여 그 아카이빙된 데이터를 검색하는데 있어서 검색의 효율성을 극대화할 수 있는 효과가 있다.
도 3은 본 발명의 일 실시예에 따른 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 방법을 설명하기 위하여 도시한 흐름도이다.
단계 S310에서는, 데이터베이스 검색 장치가 압축테이블에서 사용자가 원하는 그 필드값에 대한 소정 조건의 레코드를 검색하기 위한 검색조건을 수신한다.
압축테이블은 데이터베이스 검색 장치가 필드값에 대한 정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터 및 그 그룹압축데이터에 대응되는 고유한 저장키값에 대한 정보를 포함하는 테이블이다.
수신된 검색조건은 SQL(structured query language)문 형태의 검색조건일 수 있다. 즉, 데이터베이스 검색 장치가 그룹압축데이터와 그 그룹압축데이터에 대응되는 저장키값이 저장된 압축테이블에서 사용자가 원하는 필드값에 대한 조건을 포함하는 레코드를 검색하기 위한 검색조건을 SQL문의 형식으로 수신할 수 있다.
단계 S320에서는, 데이터베이스 검색 장치가 그룹인덱스테이블에서 그 검색조건을 만족하는 저장키값을 검색한다.
그룹인덱스테이블은 필드값에 대한 정보 및 그 필드값에 대한 정보에 대응되는 저장키값에 대한 정보를 포함하는 테이블이다.
데이터베이스 검색 장치가 그룹인덱스테이블에서 사용자의 그 필드값에 대한 조건을 포함하는 검색조건을 만족하는 레코드를 검색한다. 그리고, 그 검색된 레코드에 포함된 저장키값에 대한 정보를 수집할 수 있다.
다른 실시예에서는, 데이터베이스 검색 장치가, 시간에 대한 정보에 더 기초하여 생성된 그룹압축데이터가 압축테이블에 포함되고, 시간에 대한 소정 조건이 그 수신된 검색조건에 더 포함될 때, 기간인덱스테이블에서 그 검색조건을 만족하는 저장키값을 검색할 수 있다.
기간인덱스테이블은 시간에 대한 정보 및 그 시간에 대한 정보에 대응되는 저장키값에 대한 정보를 포함하는 테이블이다.
압축테이블에 포함된 그룹압축데이터가 필드값에 대한 정보뿐 아니라 시간에 대한 정보에 더 기초하여 생성되었을 때, 데이터베이스 검색 장치가 시간에 대한 검색조건을 더 이용하여 압축테이블의 레코드를 검색할 수 있다.
보다 구체적으로는, 데이터베이스 검색 장치가 시간에 대한 검색 조건을 만족하는 레코드를 기간인덱스테이블에 검색할 수 있다. 그리고, 그 검색된 레코드에 포함된 저장키값에 대한 정보를 수집할 수 있다.
한편, 수신된 검색조건이 필드값 및 시간에 대한 정보를 모두 포함하고 있을 때, 데이터베이스의 검색 장치는 그룹인덱스테이블과 기간인덱스테이블 모두에서 저장키값에 대한 정보를 수집할 수 있다. 그리고, 그 수집된 저장키값에 대한 정보 중에서 그룹인덱스테이블과 기간인덱스테이블에서 공통적으로 수집된 저장키값에 대한 정보가 최종적으로 레코드의 검색을 위해 필요한 저장키값이 될 수 있다.
단계 S330에서는, 데이터베이스 검색 장치가 검색이 수행되는 컴퓨터의 성능 및 검색조건을 만족하는 저장키값에 대응되는 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정한다.
DB검색과정은 아카이빙된 데이터베이스에서 레코드의 검색을 수행하는 단일 과정을 의미한다. 따라서, 만일 레코드의 검색이 병렬로 처리되는 경우에는, DB검색과정이 복수개 존재하여, 동시에 진행되는 것으로 이해될 수 있다
한편, DB검색과정의 개수가 컴퓨터의 성능에 기초하여 결정되는 것은 각 DB검색과정이 압축된 그룹압축데이터로부터 레코드를 검색하는 과정은 컴퓨터에 많은 부하를 줄 수 있기 때문이다. 또한, DB검색과정의 개수가 검색조건을 만족하는 저장키값에 대응되는 그룹압축데이터의 개수에 기초하여 결정되는 것은 그 그룹압축데이터의 개수가 결국은 검색의 양 또는 범위와 관련될 수 있기 때문이다.
한편, 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 구체적인 과정에 대하여는 도 4에 대한 설명에서 구체적으로 후술한다.
단계 S340에서는, 데이터베이스 검색 장치가 결정된 DB검색과정의 개수에 기초하여 검색조건을 만족하는 레코드의 검색을 병렬로 수행한다.
예컨대, 데이터베이스 검색 장치가 앞서 결정된 개수만큼의 DB검색과정을 준비하고, 각 DB검색과정별로 검색 범위를 분담하여 레코드의 검색을 병렬로 수행할 수 있다.
다른 실시예에서는, 데이터베이스 검색 장치가, 프라이머리키값에 대한 검색 조건이 검색조건에 더 포함되었을 때, 키인덱스테이블에서 그 프라이머리키값에 대한 검색조건을 만족하는 레코드의 저장키값 및 키인덱스정보를 더 검색할 수 있다. 그리고, 데이터베이스 검색 장치가 그 검색된 저장키값 및 키인덱스정보에 더 기초하여 레코드의 병렬 검색을 수행할 수 있다.
키인덱스테이블은 압축테이블로 아카이빙된 원본테이블의 각 레코드별 프라이머리키의 값, 그룹압축데이터 내에서의 위치인 키인덱스정보 및 그룹압축데이터에 대응되는 저장키값에 대한 정보를 포함하는 테이블이다.
예컨대, 사용자로부터 수신된 검색조건에 필드값 및 시간에 대한 정보뿐 아니라, 프라이머리키의 값에 대한 정보가 포함될 수 있다. 이 경우, 데이터베이스 검색 장치가 키인덱스테이블에서 그 프라이머리키의 값을 갖는 레코드를 검색하고, 그 검색된 레코드의 저장키값 및 키인덱스정보를 더 이용하여 사용자의 검색조건을 만족하는 레코드를 검색할 수 있다.
또 다른 실시예에서는, 데이터베이스 검색 장치가, 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여, 저장키값 및 키인덱스정보를 검색할 때, 키인덱스테이블에서 사용자의 검색조건을 만족하는 레코드의 서브인덱스정보를 더 검색할 수 있다. 그리고, 데이터베이스 검색 장치가 레코드의 검색을 병렬로 수행할 때, 검색된 서브인덱스정보 및 그 서브인덱스정보에 대응되는 제2 그룹압축데이터에 더 기초하여 검색을 수행할 수 있다.
연결테이블은 프라이머리키를 통해 원본테이블과 연결되는 테이블이며, 그 프라이머리키는 원본테이블과 연결테이블에 모두 존재할 수 있다. 한편, 키인덱스테이블에는 연결테이블의 각 레코드별 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보가 더 포함될 수 있다.
제2 그룹압축데이터는 프라이머리키를 통해 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 그 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 데이터이다. 이때. 제2 그룹압축데이터는 도 1에 대한 설명에서 상술한 그룹압축데이터와 동일한 방식으로 생성될 수 있으며, 그룹압축데이터와 마찬가지로 고유한 저장키값 함께 압축테이블에 저장될 수 있다.
예컨대, 사용자로부터 수신된 검색조건에 연결테이블에만 존재하는 필드값에 대한 조건이 더 포함된 경우, 데이터베이스 검색 장치가 키인덱스테이블에서 그 검색조건을 만족하는 프라이머리키값에 대응되는 서브인덱스정보를 더 검색하고, 그 서브인덱스정보를 이용하여 제2 그룹압축데이터에 포함된 그 필드값에 대한 정보를 더 검색할 수 있다.
또 다른 실시예에서는, 데이터베이스 검색 장치가 DB검색과정 각각에 대하여 적어도 하나의 그룹압축데이터를 할당하고, 그에 기초하여 레코드의 검색을 병렬로 수행할 수 있다.
예컨대, 검색조건을 만족하는 저장키값에 대응되는 그룹압축데이터의 개수가 6개이고, 결정된 DB검색과정의 개수는 4개라고 하면, 데이터베이스 검색 장치가 DB검색과정 4개중 2개에는 2개씩의 그룹압축데이터를 할당하고, 나머지 DB검색과정 2개에는 1개씩의 그룹압축데이터를 할당할 수 있다. 그리고, 그 4개의 DB검색과정이 할당된 1개 또는 2개의 그룹압축데이터에 대한 레코드의 검색을 병렬로 수행할 수 있다.
이때, 각 DB검색과정은 할당된 그룹압축데이터의 압축을 해제하여 버퍼에 저장하고, 그 버퍼에 저장된 데이터로부터 검색조건을 만족하는 레코드를 검색하는 과정을 통해 검색을 수행할 수 있다.
또 다른 실시예에서는, 데이터베이스 검색 장치가 압축테이블로 아카이빙된 원본테이블에 포함된 필드의 종류, 크기, 순서 및 명칭에 대한 정보인 테이블구조정보에 더 기초하여 검색조건을 만족하는 레코드의 검색을 수행할 수 있다.
그룹압축데이터의 압축을 해제하여 버퍼에 저장하고, 그 버퍼에 저장된 데이터로부터 검색조건을 만족하는 레코드를 검색하는 경우에, 데이터베이스 검색 장치가 원본테이블에 포함된 각 필드의 종류, 크기, 순서 및 명칭에 대한 정보인 테이블구조정보를 알고 있으면 그 테이블구조정보에 기초하여 검색을 보다 용이하게 수행할 수 있다.
또 다른 실시예에서는, DB검색과정은 각각의 DB검색과정별로 할당된 프로세스(process) 또는 쓰레드(thread)를 이용하여 검색을 수행할 수 있다.
각 DB검색과정은 병렬적으로 레코드의 검색을 수행해야 하기 때문에, 이러한 병렬적인 특성을 만족시키기 위하여 자식 프로세스(child process) 또는 쓰레드가 각 DB검색과정마다 하나씩 할당되어 검색을 수행할 수 있다. 이때, 각 DB검색과정별로 자식 프로세스가 할당될 지 혹은 쓰레드가 할당될 지는 검색이 수행되는 컴퓨터의 CPU 종류 및 OS 종류 등에 따른 지원여부에 의하여 결정될 수 있다.
예컨대, DB검색과정의 개수가 6개로 결정된 경우에, 6개의 자식 프로세스가 각 DB검색과정마다 할당될 수 있고, 6개의 자식 프로세스 각각이 DB검색과정에게 할당된 그룹압축데이터에 대한 레코드의 검색을 병렬로 수행할 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 아카이빙된 데이터베이스의 검색 방법은 컴퓨터의 성능 및 데이터베이스 검색의 범위에 따라서 결정된 DB검색과정의 개수에 기초하여 레코드의 검색을 병렬로 수행할 수 있는 효과가 있다.
도 4는 본 발명의 일 실시예에 따른 DB검색과정의 개수를 결정하는 방법을 설명하기 위하여 도시한 흐름도이다.
단계 S410에서는, 데이터베이스 검색 장치가 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집한다.
컴퓨터의 성능은 레코드의 검색이 수행되는 컴퓨터에 포함된 CPU, 메모리 및 저장장치의 성능에 의하여 결정될 수 있다. 특히, CPU의 경우 그 컴퓨터에 탑재된 CPU의 개수, 클럭주파수, 캐시 크기 및 CPU별 코어 개수 등에 의해 성능이 결정될 수 있다. 또한, 메모리는 용량 및 동작 주파수 등에 의해 성능이 결정될 수 있다. 또한, 저장장치는 입출력 속도에 의해 성능이 결정될 수 있다.
따라서, 데이터베이스 검색 장치가 레코드의 검색이 수행되는 컴퓨터의 CPU, 메모리 및 저장장치 중 적어도 하나에 대한 정보를 포함하는 컴퓨터성능정보를 수집할 수 있다.
단계 S420에서는, 데이터베이스 검색 장치가 압축테이블에 저장된 그룹압축데이터 중에서 수신된 검색조건을 만족하는 저장키값에 대응되는 그룹압축데이터의 개수를 결정한다.
예컨대, 압축테이블에 저장된 저장키값 및 그 저장키값에 대응되는 그룹압축데이터에 대하여, 사용자가 2015년 1월부터 2015년 10월까지의 검색조건을 생성한 경우에, 이 검색조건을 만족하는 저장키값을 기간인덱스테이블에서 찾으면 그 저장키값에 대응되는 그룹압축데이터의 개수가 결정될 수 있다.
마지막으로 단계 S430에서는, 데이터베이스 검색 장치가 그 수집된 컴퓨터성능정보 및 그 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정한다.
예컨대, 데이터베이스의 검색 장치는 수집된 컴퓨터성능정보와 그룹압축데이터의 개수를 종합적으로 분석하여, 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정할 수 있다.
보다 구체적으로는, 수집된 컴퓨터성능정보가 우수하지 않더라도 결정된 그룹압축데이터의 개수가 많지 않을 경우 DB검색과정의 개수는 그룹압축데이터의 개수에 맞추어 적은 수로 결정될 수 있으며, 반대로 수집된 컴퓨터성능정보가 매우 우수한 경우에 결정된 그룹압축데이터의 개수가 많더라도 DB검색과정의 개수는 컴퓨터성능정보에 맞추어 역시 적은 수로 결정될 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 DB검색과정의 개수를 결정하는 방법은 검색이 수행되는 컴퓨터의 성능에 대한 정보 및 검색조건을 만족하는 저장키값에 대응되는 그룹압축데이터의 개수에 의하여 DB검색과정의 개수를 결정함으로써 보다 효율적으로 레코드의 검색을 병렬로 수행하는 효과가 있다.
도 5는 본 발명의 일 실시예에 따른 인덱스정보를 생성하는 데이터베이스의 아카이빙 장치를 설명하기 위하여 도시한 도면이다.
도 5를 살펴보면, 인덱스정보를 생성하는 데이터베이스 아카이빙 장치(500)는 데이터선별부(510), 데이터압축부(520) 및 DB관리부(530)를 포함한다. 이때, 인덱스정보를 생성하는 데이터베이스 아카이빙 장치(500)는 데이터베이스가 탑재된 컴퓨터에 함께 탑재되거나 데이터베이스와 네트워크로 연결된 컴퓨터에 탑재될 수 있다.
데이터선별부(510)는 데이터 아카이빙을 하려는 원본테이블에서 필드값에 대한 정보에 기초하여 복수의 레코드를 포함하는 적어도 하나의 레코드그룹을 선별한다.
데이터압축부(520)는 선별된 적어도 하나의 레코드그룹 각각에 대하여 레코드그룹별로 압축하여 그룹압축데이터를 생성한다.
DB관리부(530)는 그룹압축데이터 및 그 그룹압축데이터별로 고유하게 부여된 저장키값을 압축테이블에 저장하고, 적어도 하나의 레코드그룹 각각에 대응되는 필드값 및 저장키값을 그룹인덱스테이블에 저장하고, 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 원본테이블에서 삭제한다.
다른 실시예에서는, 데이터선별부(510)가 원본테이블에서 시간에 대한 정보에 더 기초하여 적어도 하나의 레코드그룹을 선별할 때, DB관리부(530)는 그 적어도 하나의 레코드그룹 각각에 대응되는 시간에 대한 정보 및 저장키값을 기간인덱스테이블에 더 저장할 수 있다.
또 다른 실시예에서는, DB관리부(530)는 원본테이블에 포함된 각 레코드에 대하여 프라이머리키의 값, 그룹압축데이터 내에서의 위치인 키인덱스정보 및 그룹압축데이터에 대응되는 저장키값에 대한 정보를 키인덱스테이블에 더 저장할 수 있다.
또 다른 실시예에서는, 프라이머리키를 통해 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 그 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여, DB관리부(530)는 그 제2 그룹압축데이터에 포함된 복수의 레코드 중에서 원본테이블에 포함된 레코드와 프라이머리키의 값이 동일한 레코드를 더 검색하고, 그 검색된 레코드에 대하여 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 키인덱스테이블 상의 프라이머리키의 값이 동일한 레코드에 더 저장할 수 있다.
도 6은 본 발명의 일 실시예에 따른 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 장치를 설명하기 위하여 도시한 도면이다.
도 6을 살펴보면, 아카이빙된 데이터베이스의 검색 장치(600)는 수신부(610), 인덱스검색부(620), 검색준비부(630) 및 병렬검색부(640)를 포함한다. 이때, 아카이빙된 데이터베이스의 검색 장치(600)는 데이터베이스가 탑재된 컴퓨터에 함께 탑재되거나 데이터베이스와 네트워크로 연결된 컴퓨터에 탑재될 수 있다.
수신부(610)는 필드값에 대한 정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터 및 그 그룹압축데이터에 대응되는 고유한 저장키값을 포함하는 압축테이블에서 사용자가 원하는 그 필드값에 대한 소정 조건의 레코드를 검색하기 위한 검색조건을 수신한다.
인덱스검색부(620)는 필드값에 대한 정보 및 그 필드값에 대한 정보에 대응되는 저장키값이 저장된 그룹인덱스테이블에서 수신된 검색조건을 만족하는 저장키값을 검색한다.
검색준비부(630)는 검색이 수행되는 컴퓨터의 성능 및 검색조건을 만족하는 저장키값에 대응되는 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정한다.
병렬검색부(640)는 그 결정된 DB검색과정의 개수에 기초하여 검색조건을 만족하는 레코드의 검색을 병렬로 수행한다.
다른 실시예에서는, 시간에 대한 정보에 더 기초하여 생성된 그룹압축데이터가 압축테이블에 포함되고, 그 시간에 대한 소정 조건이 수신된 검색조건에 더 포함될 때, 인덱스검색부(620)는 시간에 대한 정보 및 그 시간에 대한 정보에 대응되는 저장키값이 저장된 기간인덱스테이블에서 수신된 검색조건을 만족하는 저장키값을 더 검색할 수 있다.
또 다른 실시예에서는, 수신된 검색조건에 프라이머리키값에 대한 검색 조건이 포함되었을 때, 인덱스검색부(620)는 압축테이블로 아카이빙된 원본테이블의 각 레코드별 프라이머리키의 값, 그룹압축데이터 내에서의 위치인 키인덱스정보 및 그룹압축데이터에 대응되는 저장키값에 대한 정보가 저장된 키인덱스테이블에서, 수신된 검색조건을 만족하는 레코드의 저장키값 및 키인덱스정보를 더 검색하고, 병렬검색부(640)는 저장키값 및 키인덱스정보에 더 기초하여 검색을 수행할 수 있다.
또 다른 실시예에서는, 프라이머리키를 통해 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 그 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여, 인덱스검색부(620)는 각 레코드별 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 포함하는 키인덱스테이블에서 검색조건을 만족하는 레코드의 서브인덱스정보를 더 검색하고, 병렬검색부(640)는 서브인덱스정보 및 제2 그룹압축데이터에 더 기초하여 검색을 수행할 수 있다.
또 다른 실시예에서는, 검색준비부(620)는 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집하고, 압축테이블에 저장된 그룹압축데이터 중에서 수신된 검색조건을 만족하는 저장키값에 대응되는 그룹압축데이터의 개수를 결정하고, 그 수집된 컴퓨터성능정보 및 그 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (18)

  1. 데이터 아카이빙을 하려는 원본테이블에서 필드(field)값에 대한 정보에 기초하여 복수의 레코드(record)를 포함하는 적어도 하나의 레코드그룹을 선별하는 단계;
    상기 적어도 하나의 레코드그룹 각각에 대하여 상기 레코드그룹별로 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터별로 고유하게 부여된 저장키(stored key)값을 압축테이블에 저장하는 단계;
    상기 적어도 하나의 레코드그룹 각각에 대응되는 상기 필드값 및 상기 저장키값을 그룹인덱스테이블에 저장하는 단계; 및
    상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 단계
    를 포함하는 것을 특징으로 하는 인덱스정보를 생성하는 데이터베이스 아카이빙 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 레코드그룹을 선별하는 단계가 상기 원본테이블에서 시간에 대한 정보에 더 기초하여 상기 적어도 하나의 레코드그룹을 선별할 때,
    상기 적어도 하나의 레코드그룹 각각에 대하여 대응되는 상기 시간에 대한 정보 및 상기 저장키값을 기간인덱스테이블에 저장하는 단계;
    를 더 포함하는 것을 특징으로 하는 인덱스정보를 생성하는 데이터베이스 아카이빙 방법.
  3. 제1항에 있어서,
    상기 원본테이블에 포함된 각 레코드에 대하여 프라이머리키(primary key)의 값, 상기 그룹압축데이터 내에서의 위치인 키인덱스정보 및 상기 그룹압축데이터에 대응되는 상기 저장키값에 대한 정보를 키인덱스테이블에 저장하는 단계
    를 더 포함하는 것을 특징으로 하는 인덱스정보를 생성하는 데이터베이스 아카이빙 방법.
  4. 제3항에 있어서,
    상기 프라이머리키를 통해 상기 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 상기 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여,
    상기 제2 그룹압축데이터에 포함된 복수의 레코드 중에서 상기 원본테이블에 포함된 레코드와 상기 프라이머리키의 값이 동일한 레코드를 검색하는 단계; 및
    상기 검색된 레코드에 대하여 상기 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 상기 키인덱스테이블 상의 상기 프라이머리키의 값이 동일한 레코드에 더 저장하는 단계
    를 포함하는 것을 특징으로 하는 인덱스정보를 생성하는 데이터베이스 아카이빙 방법.
  5. 데이터 아카이빙을 하려는 원본테이블에서 필드값에 대한 정보에 기초하여 복수의 레코드를 포함하는 적어도 하나의 레코드그룹을 선별하는 데이터선별부;
    상기 적어도 하나의 레코드그룹 각각에 대하여 상기 레코드그룹별로 압축하여 그룹압축데이터를 생성하는 데이터압축부;
    상기 그룹압축데이터 및 상기 그룹압축데이터별로 고유하게 부여된 저장키값을 압축테이블에 저장하고, 상기 적어도 하나의 레코드그룹 각각에 대응되는 상기 필드값 및 상기 저장키값을 그룹인덱스테이블에 저장하고, 상기 선별된 적어도 하나의 레코드그룹에 포함된 복수의 레코드를 상기 원본테이블에서 삭제하는 DB관리부;
    를 포함하는 것을 특징으로 하는 인덱스정보를 생성하는 데이터베이스의 아카이빙 장치.
  6. 제5항에 있어서,
    상기 데이터선별부가 상기 원본테이블에서 시간에 대한 정보에 더 기초하여 상기 적어도 하나의 레코드그룹을 선별할 때,
    상기 DB관리부는
    상기 적어도 하나의 레코드그룹 각각에 대응되는 상기 시간에 대한 정보 및 상기 저장키값을 기간인덱스테이블에 더 저장하는 것을 특징으로 하는 인덱스정보를 생성하는 데이터베이스의 아카이빙 장치.
  7. 제5항에 있어서,
    상기 DB관리부는
    상기 원본테이블에 포함된 각 레코드에 대하여 프라이머리키의 값, 상기 그룹압축데이터 내에서의 위치인 키인덱스정보 및 상기 그룹압축데이터에 대응되는 상기 저장키값에 대한 정보를 키인덱스테이블에 더 저장하는 것을 특징으로 하는 인덱스정보를 생성하는 데이터베이스의 아카이빙 장치.
  8. 제7항에 있어서,
    상기 프라이머리키를 통해 상기 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 상기 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여,
    상기 DB관리부는
    상기 제2 그룹압축데이터에 포함된 복수의 레코드 중에서 상기 원본테이블에 포함된 레코드와 상기 프라이머리키의 값이 동일한 레코드를 더 검색하고,
    상기 검색된 레코드에 대하여 상기 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 상기 키인덱스테이블 상의 상기 프라이머리키의 값이 동일한 레코드에 더 저장하는 것을 특징으로 하는 인덱스정보를 생성하는 데이터베이스의 아카이빙 장치.
  9. 필드값에 대한 정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 고유한 저장키값을 포함하는 압축테이블에서 사용자가 원하는 상기 필드값에 대한 소정 조건의 레코드를 검색하기 위한 검색조건을 수신하는 단계;
    상기 필드값에 대한 정보 및 상기 필드값에 대한 정보에 대응되는 상기 저장키값이 저장된 그룹인덱스테이블에서 상기 검색조건을 만족하는 저장키값을 검색하는 단계;
    검색이 수행되는 컴퓨터의 성능 및 상기 검색조건을 만족하는 상기 저장키값에 대응되는 상기 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계; 및
    상기 결정된 DB검색과정의 개수에 기초하여 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 단계
    를 포함하는 것을 특징으로 하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 방법.
  10. 제9항에 있어서,
    시간에 대한 정보에 더 기초하여 생성된 상기 그룹압축데이터가 상기 압축테이블에 포함되고, 상기 시간에 대한 소정 조건이 상기 수신된 검색조건에 더 포함될 때,
    상기 시간에 대한 정보 및 상기 시간에 대한 정보에 대응되는 상기 저장키값이 저장된 기간인덱스테이블에서 상기 검색조건을 만족하는 저장키값을 검색하는 단계;
    를 더 포함하는 것을 특징으로 하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 방법.
  11. 제9항에 있어서,
    프라이머리키값에 대한 검색 조건이 상기 검색조건에 더 포함되었을 때,
    상기 압축테이블로 아카이빙된 원본테이블의 각 레코드별 상기 프라이머리키의 값, 상기 그룹압축데이터 내에서의 위치인 키인덱스정보 및 상기 그룹압축데이터에 대응되는 상기 저장키값에 대한 정보가 저장된 키인덱스테이블에서 상기 검색조건을 만족하는 레코드의 상기 저장키값 및 상기 키인덱스정보를 검색하는 단계;
    를 더 포함하고,
    상기 레코드의 검색을 병렬로 수행하는 단계는
    상기 저장키값 및 상기 키인덱스정보에 더 기초하여 검색을 수행하는 것을 특징으로 하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 방법.
  12. 제11항에 있어서,
    상기 프라이머리키를 통해 상기 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 상기 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여,
    상기 저장키값 및 상기 키인덱스정보를 검색하는 단계는
    각 레코드별 상기 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 포함하는 상기 키인덱스테이블에서 상기 검색조건을 만족하는 레코드의 상기 서브인덱스정보를 더 검색하고,
    상기 레코드의 검색을 병렬로 수행하는 단계는
    상기 서브인덱스정보 및 상기 제2 그룹압축데이터에 더 기초하여 검색을 수행하는 것을 특징으로 하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 방법.
  13. 제9항에 있어서,
    상기 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계는
    상기 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집하는 단계;
    상기 압축테이블에 저장된 상기 그룹압축데이터 중에서 상기 수신된 검색조건을 만족하는 상기 저장키값에 대응되는 상기 그룹압축데이터의 개수를 결정하는 단계; 및
    상기 수집된 컴퓨터성능정보 및 상기 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 단계;
    를 포함하는 것을 특징으로 하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 방법.
  14. 필드값에 대한 정보에 대응되는 복수의 레코드를 압축하여 생성된 그룹압축데이터 및 상기 그룹압축데이터에 대응되는 고유한 저장키값을 포함하는 압축테이블에서 사용자가 원하는 상기 필드값에 대한 소정 조건의 레코드를 검색하기 위한 검색조건을 수신하는 수신부;
    상기 필드값에 대한 정보 및 상기 필드값에 대한 정보에 대응되는 상기 저장키값이 저장된 그룹인덱스테이블에서 상기 검색조건을 만족하는 저장키값을 검색하는 인덱스검색부;
    검색이 수행되는 컴퓨터의 성능 및 상기 검색조건을 만족하는 상기 저장키값에 대응되는 상기 그룹압축데이터의 개수 중 적어도 하나에 기초하여, 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 검색준비부; 및
    상기 결정된 DB검색과정의 개수에 기초하여 상기 검색조건을 만족하는 레코드의 검색을 병렬로 수행하는 병렬검색부
    를 포함하는 것을 특징으로 하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 장치.
  15. 제14항에 있어서,
    시간에 대한 정보에 더 기초하여 생성된 상기 그룹압축데이터가 상기 압축테이블에 포함되고, 상기 시간에 대한 소정 조건이 상기 수신된 검색조건에 더 포함될 때,
    상기 인덱스검색부는
    상기 시간에 대한 정보 및 상기 시간에 대한 정보에 대응되는 상기 저장키값이 저장된 기간인덱스테이블에서 상기 검색조건을 만족하는 저장키값을 더 검색하는 것을 특징으로 하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 장치.
  16. 제14항에 있어서,
    상기 검색조건에 프라이머리키값에 대한 검색 조건이 포함되었을 때,
    상기 인덱스검색부는
    상기 압축테이블로 아카이빙된 원본테이블의 각 레코드별 상기 프라이머리키의 값, 상기 그룹압축데이터 내에서의 위치인 키인덱스정보 및 상기 그룹압축데이터에 대응되는 상기 저장키값에 대한 정보가 저장된 키인덱스테이블에서 상기 검색조건을 만족하는 레코드의 상기 저장키값 및 상기 키인덱스정보를 더 검색하고,
    상기 병렬검색부는
    상기 저장키값 및 상기 키인덱스정보에 더 기초하여 검색을 수행하는 것을 특징으로 하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 장치.
  17. 제16항에 있어서,
    상기 프라이머리키를 통해 상기 원본테이블과 연결되는 적어도 하나의 연결테이블이 존재할 때, 상기 적어도 하나의 연결테이블 각각에서 복수의 레코드를 압축하여 생성된 제2 그룹압축데이터에 대하여,
    상기 인덱스검색부는
    각 레코드별 상기 제2 그룹압축데이터 내에서의 위치인 서브인덱스정보를 포함하는 상기 키인덱스테이블에서 상기 검색조건을 만족하는 레코드의 상기 서브인덱스정보를 더 검색하고,
    상기 병렬검색부는
    상기 서브인덱스정보 및 상기 제2 그룹압축데이터에 더 기초하여 검색을 수행하는 것을 특징으로 하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 장치.
  18. 제14항에 있어서,
    상기 검색준비부는
    상기 컴퓨터에 포함된 CPU의 개수, 메모리의 용량 및 저장장치의 입출력속도 중 적어도 하나에 대한 컴퓨터성능정보를 수집하고,
    상기 압축테이블에 저장된 상기 그룹압축데이터 중에서 상기 수신된 검색조건을 만족하는 상기 저장키값에 대응되는 상기 그룹압축데이터의 개수를 결정하고,
    상기 수집된 컴퓨터성능정보 및 상기 결정된 그룹압축데이터의 개수 중 적어도 하나에 기초하여 상기 레코드의 검색을 병렬로 처리하기 위한 DB검색과정의 개수를 결정하는 것을 특징으로 하는 인덱스정보를 이용하는 아카이빙된 데이터베이스의 검색 장치.
KR1020160023403A 2016-02-26 2016-02-26 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치 KR101656750B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020160023403A KR101656750B1 (ko) 2016-02-26 2016-02-26 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
EP16891742.5A EP3422205A4 (en) 2016-02-26 2016-10-13 DATABASE ARCHIVING METHOD AND DEVICE FOR GENERATING INFORMATION AND METHOD AND DEVICE FOR SEARCHING IN AN ARCHIVED DATABASE WITH INDEX INFORMATION
JP2018543238A JP6598101B2 (ja) 2016-02-26 2016-10-13 インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置
CN201680081618.2A CN108604249A (zh) 2016-02-26 2016-10-13 生成索引信息的数据库的存档方法及装置、包含索引信息的存档的数据库的搜索方法及装置
PCT/KR2016/011465 WO2017146338A1 (ko) 2016-02-26 2016-10-13 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
US16/077,236 US11030172B2 (en) 2016-02-26 2016-10-13 Database archiving method and device for creating index information and method and device of retrieving archived database including index information
AU2016394744A AU2016394744A1 (en) 2016-02-26 2016-10-13 Database-archiving method and apparatus that generate index information, and method and apparatus for searching archived database comprising index information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160023403A KR101656750B1 (ko) 2016-02-26 2016-02-26 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101656750B1 true KR101656750B1 (ko) 2016-09-23

Family

ID=57047451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160023403A KR101656750B1 (ko) 2016-02-26 2016-02-26 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치

Country Status (7)

Country Link
US (1) US11030172B2 (ko)
EP (1) EP3422205A4 (ko)
JP (1) JP6598101B2 (ko)
KR (1) KR101656750B1 (ko)
CN (1) CN108604249A (ko)
AU (1) AU2016394744A1 (ko)
WO (1) WO2017146338A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102256814B1 (ko) * 2020-09-10 2021-05-27 주식회사 아미크 목적 데이터 선별 방법 및 시스템
KR102267441B1 (ko) * 2020-01-06 2021-06-22 주식회사 아미크 데이터의 하이브리드 저장을 이용한 데이터 아카이빙 방법 및 시스템
WO2021141292A1 (ko) * 2020-01-06 2021-07-15 주식회사 아미크 하이브리드 클라우드 기반의 실시간 데이터 아카이빙 방법 및 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6949449B2 (ja) * 2018-09-13 2021-10-13 東芝情報システム株式会社 データ検索システム及びデータ検索用プログラム
KR20210081888A (ko) 2019-12-24 2021-07-02 삼성전자주식회사 키-밸류 기반으로 데이터를 저장하는 스토리지 장치 및 이의 동작 방법
KR102529704B1 (ko) * 2020-08-27 2023-05-09 주식회사 아미크 인 메모리 데이터베이스의 데이터를 처리하는 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013519141A (ja) * 2010-02-04 2013-05-23 パーストリーム ゲーエムベーハー データレコードを圧縮し圧縮されたデータレコードを処理するための方法及びシステム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860136A (en) * 1989-06-16 1999-01-12 Fenner; Peter R. Method and apparatus for use of associated memory with large key spaces
JP2000235551A (ja) * 1999-02-17 2000-08-29 Pfu Ltd データベース並列検索制御方法および記録媒体
US9477729B2 (en) * 2004-02-20 2016-10-25 Informatica Llc Domain based keyword search
CN1318974C (zh) * 2005-08-05 2007-05-30 北京九州汇宝软件有限公司<Del/> 数据库备份数据的压缩和查询方法
JP2007241377A (ja) * 2006-03-06 2007-09-20 Sony Corp 検索システム、撮像装置、データ保存装置、情報処理装置、撮像画像処理方法、情報処理方法、プログラム
DK2013974T3 (en) 2006-04-07 2018-10-29 Data Storage Group Inc DATA COMPRESSION AND DATA STORAGE TECHNOLOGY
US8589357B2 (en) * 2006-10-20 2013-11-19 Oracle International Corporation Techniques for automatically tracking and archiving transactional data changes
US8229902B2 (en) * 2006-11-01 2012-07-24 Ab Initio Technology Llc Managing storage of individually accessible data units
CN101676899A (zh) * 2008-09-18 2010-03-24 上海宝信软件股份有限公司 海量数据库记录的归档和查询方法
KR20110066041A (ko) * 2009-12-10 2011-06-16 송해종 3차원 가상현실 e-book 콘텐츠
DE102010011344B4 (de) 2010-03-12 2015-08-27 Artec Computer Gmbh Verfahren zur Herstellung und Verwaltung eines großvolumigen Langzeitarchivs
JP5323806B2 (ja) * 2010-12-29 2013-10-23 ヤフー株式会社 インデックス生成装置及び方法
JP5844554B2 (ja) 2011-06-08 2016-01-20 Jfeシステムズ株式会社 データ管理保存システム
US20130013605A1 (en) * 2011-07-08 2013-01-10 Stanfill Craig W Managing Storage of Data for Range-Based Searching
US9305045B1 (en) * 2012-10-02 2016-04-05 Teradata Us, Inc. Data-temperature-based compression in a database system
US9442913B2 (en) * 2014-01-30 2016-09-13 International Business Machines Corporation Using parallel insert sub-ranges to insert into a column store
JP6273969B2 (ja) * 2014-03-28 2018-02-07 富士通株式会社 データ加工装置、情報処理装置、方法、およびプログラム
EP2937794B1 (en) * 2014-04-22 2016-08-17 DataVard GmbH Method and system for archiving digital data
CN104298726B (zh) * 2014-09-26 2018-07-03 惠州市亿能电子有限公司 一种基于数据库的bms数据存储系统及其方法
US10263908B1 (en) * 2015-12-09 2019-04-16 A9.Com, Inc. Performance management for query processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013519141A (ja) * 2010-02-04 2013-05-23 パーストリーム ゲーエムベーハー データレコードを圧縮し圧縮されたデータレコードを処理するための方法及びシステム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021141292A1 (ko) * 2020-01-06 2021-07-15 주식회사 아미크 하이브리드 클라우드 기반의 실시간 데이터 아카이빙 방법 및 시스템
KR102267441B1 (ko) * 2020-01-06 2021-06-22 주식회사 아미크 데이터의 하이브리드 저장을 이용한 데이터 아카이빙 방법 및 시스템
KR102270896B1 (ko) * 2020-01-06 2021-06-30 주식회사 아미크 데이터 비식별화에 기반한 데이터 아카이빙 방법 및 시스템
KR20210088419A (ko) * 2020-01-06 2021-07-14 주식회사 아미크 데이터의 전송 및 조회 시의 비용을 최소화하기 위한 데이터 아카이빙 방법 및 시스템
KR20210088407A (ko) * 2020-01-06 2021-07-14 주식회사 아미크 하이브리드 클라우드 기반의 실시간 데이터 아카이빙 방법 및 시스템
WO2021141294A1 (ko) * 2020-01-06 2021-07-15 주식회사 아미크 데이터의 하이브리드 저장을 이용한 데이터 아카이빙 방법 및 시스템
KR102301304B1 (ko) 2020-01-06 2021-09-14 주식회사 아미크 데이터의 전송 및 조회 시의 비용을 최소화하기 위한 데이터 아카이빙 방법 및 시스템
US11249975B2 (en) 2020-01-06 2022-02-15 Armiq Co., Ltd. Data archiving method and system using hybrid storage of data
JP2022520654A (ja) * 2020-01-06 2022-03-31 アーミク カンパニー,リミテッド データのハイブリッド保存を利用したデータアーカイブ方法およびシステム
KR102559290B1 (ko) 2020-01-06 2023-07-26 주식회사 아미크 하이브리드 클라우드 기반의 실시간 데이터 아카이빙 방법 및 시스템
JP7324471B2 (ja) 2020-01-06 2023-08-10 アーミク カンパニー,リミテッド データのハイブリッド保存を利用したデータアーカイブ方法およびシステム
KR102256814B1 (ko) * 2020-09-10 2021-05-27 주식회사 아미크 목적 데이터 선별 방법 및 시스템
US11372899B2 (en) 2020-09-10 2022-06-28 Armiq Co., Ltd. Method and system for selecting target data

Also Published As

Publication number Publication date
JP2019512124A (ja) 2019-05-09
EP3422205A1 (en) 2019-01-02
US20190034466A1 (en) 2019-01-31
AU2016394744A1 (en) 2018-08-30
JP6598101B2 (ja) 2019-10-30
WO2017146338A1 (ko) 2017-08-31
US11030172B2 (en) 2021-06-08
EP3422205A4 (en) 2020-01-22
CN108604249A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
KR101656750B1 (ko) 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
KR101663547B1 (ko) 데이터베이스의 아카이빙 방법 및 장치, 아카이빙된 데이터베이스의 검색 방법 및 장치
US9298774B2 (en) Changing the compression level of query plans
US20200097483A1 (en) Novel olap pre-calculation model and method for generating pre-calculation result
KR20160148703A (ko) 클러스터링 저장 방법 및 장치
JP5594145B2 (ja) 検索装置、検索方法、及びプログラム
US10963440B2 (en) Fast incremental column store data loading
CN111611250A (zh) 数据存储设备、数据查询方法、装置、服务器及存储介质
CN114780530A (zh) 基于lsm树键值分离的时序数据存储方法及系统
CN107391769B (zh) 一种索引查询方法及装置
US9213759B2 (en) System, apparatus, and method for executing a query including boolean and conditional expressions
Wang et al. PLSM: a highly efficient LSM-tree index supporting real-time big data analysis
CN112380256B (zh) 能源系统数据存取的方法、数据库、计算机可读存储介质
KR100892406B1 (ko) 정보 검색 방법 및 그 시스템
US11494093B2 (en) Method and apparatus for processing data of in-memory database
US11734282B1 (en) Methods and systems for performing a vectorized delete in a distributed database system
KEAWPIBAL et al. Optimizing range query processing for Dual bitmap index
JP6562478B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2020108045A (ja) データ圧縮方法
CN117688125A (zh) 一种索引管理方法、服务器及服务器集群
KR20230116470A (ko) 하이브리드 인덱스 시스템을 위한 동작 방법
CN117992404A (zh) 一种基于k8s的轻量日志存储查询系统及方法
CN115795180A (zh) 一种基于社交网络分析用户社交关系的轻量级方法
CN115840785A (zh) 一种分布式终端数据查询系统及方法
CN117807174A (zh) 索引处理方法、装置、计算机设备、介质和程序产品

Legal Events

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

Payment date: 20190701

Year of fee payment: 4