KR101440475B1 - 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체 - Google Patents

혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체 Download PDF

Info

Publication number
KR101440475B1
KR101440475B1 KR1020120115452A KR20120115452A KR101440475B1 KR 101440475 B1 KR101440475 B1 KR 101440475B1 KR 1020120115452 A KR1020120115452 A KR 1020120115452A KR 20120115452 A KR20120115452 A KR 20120115452A KR 101440475 B1 KR101440475 B1 KR 101440475B1
Authority
KR
South Korea
Prior art keywords
index
column
data
node
information
Prior art date
Application number
KR1020120115452A
Other languages
English (en)
Other versions
KR20140049326A (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 KR1020120115452A priority Critical patent/KR101440475B1/ko
Priority to PCT/KR2012/008713 priority patent/WO2014061846A1/ko
Publication of KR20140049326A publication Critical patent/KR20140049326A/ko
Application granted granted Critical
Publication of KR101440475B1 publication Critical patent/KR101440475B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

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

Abstract

본 발명은 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체에 관한 것이다. 본 발명에 따른 혼합 질의 처리용 색인 생성 방법은, 데이터베이스의 특정 테이블에 대한 색인 생성 명령을 감지하면 상기 색인 생성 명령에 포함된 인수 중 기준 컬럼 정보와 확장 컬럼 정보를 판단하는 단계와; 상기 특정 테이블에 대한 테이블 스키마를 이용하여 기준 컬럼 정보에 대응되는 컬럼과 확장 컬럼 정보에 대응되는 컬럼에 대한 각각의 컬럼 타입을 확인하는 단계와; 상기 단계에서 확인된 모든 컬럼 타입이 포함된 색인 키 메타 정보를 생성하여 DBMS(Database Management System) 카탈로그에 저장하는 단계를 포함하는 것을 특징으로 한다.

Description

혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체{METHOD FOR CREATING INDEX FOR MIXED QUERY PROCESS, METHOD FOR PROCESSING MIXED QUERY, AND RECORDING MEDIA FOR RECORDING INDEX DATA STRUCTURE}
본 발명은 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체에 관한 것으로, 보다 상세하게는 색인 키 데이터와 비 색인 데이터를 포함하는 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 이러한 색인 자료 구조를 기록한 기록 매체에 관한 것이다.
데이터베이스에 저장된 데이터를 검색하기 위해서는 다양한 알고리즘의 색인 기술이 이용되고 있다.
예를 들어 데이터베이스의 각 테이블에는 적어도 하나의 레코드가 포함되어 있을 수 있고, 각 레코드에는 적어도 하나의 컬럼에 대응되는 데이터가 포함되어 있을 수 있는데, 이처럼 테이블에 저장된 데이터를 검색하기 위해서 테이블 레코드 전체를 순차적으로 비교 검색하는 것은 비효율적이므로 미리 특정 컬럼에 대해서는 색인을 생성해 두고, 필요시 색인을 이용하여 빠른 검색을 시도하는 것이다.
이러한 색인 알고리즘에 적용되는 색인 구조의 일 예로써 B+ Tree 구조가 있다.
B+ Tree는 인덱스 부분과 키 값을 저장하는 잎으로 된 순차 세트 부분의 2부분으로 구성되고 인덱스 부분은 잎에 있는 키를 신속하게 직접 접근 할 수 있는 경로에 관한 정보를 갖고 있는 구조이다.
그런데 종래의 B+ Tree를 생성할 때의 색인 검색 조건에는 색인 컬럼만 지정할 수 있으며, 이렇게 생성된 색인에서 색인 컬럼과 비 색인 컬럼을 모두 포함하는 질의 조건으로 조건 평가를 하게 되는 경우에는 색인 컬럼에 대한 조건 평가를 먼저 수행하고 비 색인 컬럼에 대한 조건 평가를 하기 위해 테이블 레코드에 접근해 컬럼 데이터를 획득하여 조건 평가를 수행하게 된다. 이때 레코드에 접근하여 데이터를 획득하기 위한 디스크 IO가 발생할 수 있으며 이로 인한 조건 평가에 대한 성능상의 오버헤드가 발생하게 된다.
즉, 종래의 B+ Tree는 그 색인에 색인 컬럼 데이터들만 저장되어 있어서 색인 컬럼에 대해서는 신속한 검색이 가능하기는 하지만, 예를 들어 색인 컬럼과 비 색인 컬럼을 모두 조건으로 가지는 질의 즉, 혼합 질의가 입력된 경우에는 해당 B+ Tree를 이용해서는 색인 컬럼에 대해서만 검색을 하고, 검색된 각 색인 컬럼에 대응되는 비 색인 컬럼 데이터를 실제 테이블 레코드에 읽어와야 함으로써 디스크 IO에 따른 시간 지연 현상이 발생하는 것이다.
본 발명은 상기한 종래의 단점을 해결하기 위해 안출된 것으로서, 그 목적은 색인 검색 조건과 비 색인 검색 조건을 모두 포함하는 혼합 질의를 처리할 수 있는 색인 구조를 개발하는 것을 목적으로 한다.
본 발명의 다른 목적은 색인 검색 조건과 비 색인 검색 조건을 모두 포함하는 혼합 질의를 처리하는 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 상술한 혼합 질의를 처리하기 위한 색인 자료 구조를 기록한 기록 매체를 제공하는 것이다.
상기한 목적을 달성하기 위해 본 발명에 따른 혼합 질의 처리용 색인 생성 방법은, (a) 데이터베이스의 특정 테이블에 대한 색인 생성 명령을 감지하면 상기 색인 생성 명령에 포함된 인수 중 색인 생성 명령에 대한 기 정의된 문법 해석에 따라 기준 컬럼 정보와 확장 컬럼 정보를 판단하는 단계와; (b) 상기 특정 테이블에 대한 테이블 스키마를 이용하여 기준 컬럼 정보에 대응되는 컬럼과 확장 컬럼 정보에 대응되는 컬럼에 대한 각각의 컬럼 타입을 확인하는 단계와; (c) 상기 (b) 단계에서 확인된 모든 컬럼 타입이 포함된 색인 키 메타 정보를 생성하여 DBMS(Database Management System) 카탈로그에 저장하는 단계를 포함하고, 상기 (c) 단계에서는, 상기 기준 컬럼 정보에 대응되는 적어도 하나의 컬럼에 대해서는 색인 키 컬럼으로 판단하고, 상기 확장 컬럼 정보에 대응되는 적어도 하나의 컬럼에 대해서는 비 색인 컬럼으로 판단하며, 상기 색인 키 메타 정보에 상기 색인 키 컬럼에 대한 정보와 상기 비 색인 컬럼에 대한 정보를 구별하여 포함시키는 것을 특징으로 한다.
삭제
여기서, 상기 (c) 단계에서 생성한 색인 키 메타 정보는 색인 키 컬럼 개수, 색인 키 컬럼에 대한 컬럼 메타 리스트, 비 색인 컬럼 개수, 비 색인 컬럼에 대한 컬럼 메타 리스트가 포함되고, 상기 색인 키 컬럼에 대한 컬럼 메타 리스트에는 상기 판단된 각 색인 키 컬럼에 대한 컬럼 메타 정보가 포함되고, 상기 비 색인 컬럼에 대한 컬럼 메타 리스트에는 상기 판단된 각 비 색인 컬럼에 대한 컬럼 메타 정보가 포함되며, 상기 각 컬럼 메타 정보에는 해당 컬럼 타입, 레코드에서 해당 컬럼의 위치, 데이터 검색의 기본이 되는 노드 엔트리에서의 해당 컬럼의 위치, 해당 컬럼 데이터의 최대 크기가 포함되는 것을 특징으로 한다.
여기서, 상기 (c) 단계 이후에, 상기 색인 키 메타 정보를 이용하여 데이터 검색의 기본이 되는 적어도 하나의 노드 엔트리를 저장하기 위한 노드 페이지를 생성하여 상기 생성한 노드 페이지의 초기화를 수행하는 단계를 더 포함하는 것을 특징으로 한다.
여기서, 상기 색인 키 메타 정보를 참조하여 테이블의 특정 레코드로부터 적어도 하나의 색인 키 컬럼에 대응되는 색인 키 데이터와 적어도 하나의 비 색인 컬럼에 대응되는 비 색인 데이터를 추출하는 단계와; 상기 추출한 적어도 하나의 색인 키 데이터 및 적어도 하나의 비 색인 데이터를 모두 포함하는 노드 엔트리를 생성하여 상기 노드 페이지에 저장하는 단계를 더 포함하여 이루어진다.
여기서, 상기 생성한 노드 엔트리의 위치 및 크기를 포함하는 노드 아이템을 생성하여 상기 노드 페이지에 저장하는 단계를 더 포함하는 것을 특징으로 한다.
여기서, 각 노드 엔트리에 대응되는 각 노드 아이템은 해당하는 노드 엔트리에 포함된 색인 키 컬럼에 대응되는 데이터를 기초로 정렬되어 상기 노드 페이지 상에 저장되는 것을 특징으로 한다.
또, 상기한 목적을 달성하기 위해 본 발명에 따른 혼합 질의 처리 방법은, (a) 데이터 검색을 위한 혼합 질의를 입력받는 단계와; (b) 상기 혼합 질의에 포함된 컬럼 모두와 가장 밀접하게 관계되는 색인을 기 설정된 알고리즘에 따라 선택하는 단계와; (c) 상기 선택된 색인에 대응되고 해당 색인에 저장된 데이터들의 구조를 나타내는 색인 키 메타 정보를 이용하여 상기 선택된 색인에 포함된 노드 엔트리 중 상기 혼합 질의에 포함된 색인 키 데이터와 동일한 색인 키 데이터를 포함하는 첫 번째 노드 엔트리와 마지막 노드 엔트리를 확인하는 단계와; (d) 상기 확인된 첫 번째 노드 엔트리로부터 마지막 노드 엔트리로 이동하면서 상기 혼합 질의에 포함된 비 색인 데이터와 동일한 비 색인 데이터를 포함하는 노드 엔트리를 추출하는 단계를 포함하여 이루어진다.
또, 상기한 목적을 달성하기 위해 본 발명에 따른 혼합 질의 처리 방법은, (a) 데이터 검색을 위한 혼합 질의를 입력받는 단계와; (b) 상기 혼합 질의에 포함된 컬럼 모두와 가장 밀접하게 관계되는 색인을 기 설정된 알고리즘에 따라 선택하는 단계와; (c) 상기 선택된 색인에 대응되고 해당 색인에 저장된 데이터들의 구조를 나타내는 색인 키 메타 정보를 이용하여 상기 선택된 색인에 포함된 노드 엔트리 중 상기 혼합 질의에 포함된 색인 키 데이터와 동일한 색인 키 데이터를 포함하는 첫 번째 노드 엔트리와 마지막 노드 엔트리를 확인하는 단계와; (d) 상기 확인된 첫 번째 노드 엔트리로부터 마지막 노드 엔트리로 이동하면서 각 노드 엔트리로부터 상기 혼합 질의에 포함된 비 색인 컬럼에 대응하는 비 색인 데이터를 추출하는 단계를 포함하여 이루어진다.
상기한 목적을 달성하기 위해 본 발명에 따른 데이터 검색을 수행하기 위해 적어도 하나의 색인 노드를 포함하는 색인 자료 구조를 기록한 컴퓨터로 읽을 수 있는 기록 매체는, 상기 각 색인 노드에는 데이터 검색의 대상이 되는 적어도 하나의 노드 엔트리가 포함되어 있고, 각 노드 엔트리는 데이터베이스 테이블에 있는 어느 하나의 레코드의 서로 다른 컬럼에서 추출한 데이터를 각각 저장한 저장 영역을 복수 개 구비하고 있는 것을 특징으로 한다.
여기서, 상기 각 노드 엔트리에 구비된 복수 개의 저장 영역 중 적어도 어느 하나에는 상기 테이블의 색인 키 컬럼에 대응되는 색인 키 데이터가 저장되고, 상기 복수 개의 저장 영역 중 나머지 저장 영역에는 상기 테이블의 비 색인 컬럼에 대응되는 비 색인 데이터가 저장되는 것을 특징으로 한다.
여기서, 상기 각 컬럼에서 추출한 데이터를 저장하는 각 저장 영역은 실 데이터가 저장되는 데이터 저장 영역과 상기 데이터 저장 영역의 위치 및 크기가 저장된 데이터 정보 저장 영역을 포함하는 것을 특징으로 한다.
여기서, 상기 각 색인 노드는 각 노드 엔트리의 위치 및 크기가 저장된 고정된 크기의 노드 아이템을 적어도 하나 포함하는 것을 특징으로 한다.
여기서, 각 노드 엔트리의 전체 크기는 저장되는 컬럼 개수 및 실 데이터의 크기에 따라 달라지는 것을 특징으로 한다.
이상 설명한 바와 같이 본 발명에 따르면, 혼합 질의 처리용 색인 구조를 개발하여 색인 검색 조건과 비 색인 검색 조건을 모두 포함하는 혼합 질의에 대한 고성능의 검색 결과 도출을 기대할 수 있다.
특히, 본 발명을 활용하면 리소스가 제한적인 모바일 환경에서 운영되는 데이터베이스 시스템의 혼합 질의에 대한 평가시 테이블 레코드에 직접 접근하지 않고 색인에 저장된 데이터를 이용하여 질의 평가를 수행할 수 있기 때문에 불필요한 디스크 IO로 인한 성능상의 오버헤드를 줄여 혼합 질의 평가에 대한 고성능 처리를 기대할 수 있다.
도 1은 본 발명의 일 실시예에 따른 색인 생성방법에 의해 생성된 노드 페이지의 구조이고,
도 2는 종래의 B+Tree에서 각 노드들 간의 관계를 간략히 보인 도면이고,
도 3은 본 발명의 일 실시예에 따른 색인 생성방법에 의해 생성된 노드 엔트리의 구조이고,
도 4는 도 3의 노드 엔트리에 포함된 데이터 저장 영역의 구체적인 구조이고,
도 5는 도 3의 노드 엔트리에 포함된 데이터 정보 저장 영역의 구체적인 구조이고,
도 6은 본 발명의 일 실시예에 따른 색인 생성방법에 의해 생성된 노드 아이템의 구조이고,
도 7은 본 발명의 일 실시예에 따른 색인 생성방법에 의해 생성된 노드 아이템 및 노드 페이지의 다른 예이고,
도 8은 색인 키 메타 자료 구조의 일 예이고,
도 9는 본 발명의 일 실시예에 따른 색인 생성방법에 의해 색인을 생성하는 테이블에 대한 테이블 스키마의 일 예이고,
도 10은 본 발명의 일 실시예에 따른 색인 생성방법에 의해 생성된 색인 키 메타 정보의 일 예이고,
도 11은 도 9의 테이블에 입력되는 데이터의 일 예이고,
도 12는 본 발명의 일 실시예에 따른 색인 생성방법에 의해 생성된 색인의 일 예이고,
도 13은 동일한 색인 키 데이터를 가지는 복수 개의 노드 엔트리의 일 예를 타낸 도면이다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.
우선, 본 발명의 일 실시예에 따른 혼합 질의 처리를 위한 색인의 각 색인 노드에 대응되는 노드 페이지는 도 1에 도시된 바와 같다.
본 실시예를 설명함에 있어서 혼합 질의 처리를 위한 색인은 종래의 B+Tree를 변형한 형태를 이용하는 것을 일 예로 한다.
B+Tree는 B-Tree의 문제점을 보완한 것으로서, 순차적인 데이터 처리를 위해 트리 구조 내의 노드 사이 탐색을 최소화한 구조의 트리이다. 한 노드 안에 키 값들은 오름차순을 유지하며 리프 노드들을 서로 링크드 리스트 형태로 연결되고 실제 데이터가 모두 리프 노드에만 존재한다는 특징이 있다.
이러한 종래의 B+Tree가 형성된 일 예는 도 2에 도시된 바와 같은데, 각 노드(도 2의 원형 모양이 각 노드에 해당함)에는 하나의 노드 페이지가 저장되어 있고, 각 노드 페이지에는 복수 개의 노드 엔트리가 포함될 수 있다는 점에서는 본원발명의 일 실시예에 따른 색인 구조와 종래의 B+Tree 색인 구조는 동일하다. 여기서 노드 엔트리는 색인을 이용한 데이터 검색의 기본이 되는 것으로서 적어도 하나의 색인 키 데이터를 포함하고 있을 수 있다.
본원발명 일 실시예에 따른 색인 구조는 노드 엔트리의 구체적 구성에 있어서, 더 나아가 후술하는 바와 같이 노드 아이템이 추가로 구성된다는 점에서 종래의 B+Tree 구조와 차이가 있는데, 이러한 차이점을 고려하여 이하 본 발명의 일 실시예에 따른 색인 구조를 가지는 색인은 'B+Tree 확장 색인'이라고 명명하기로 한다.
이하에서는 이러한 본원발명의 일 실시예에 따른 B+Tree 확장 색인 구조와 종래의 B+Tree 구조의 차이점을 위주로 설명하기로 한다.
본 발명의 일 실시예에 따른 각 노드 페이지는 앞서 설명한 바와 같이 도 1과 같은데, 여기서 노드 엔트리는 색인 키 컬럼의 데이터 즉, 색인 키 데이터와 비 색인 컬럼의 데이터 즉, 비 색인 데이터를 저장하기 위한 저장 영역을 적어도 하나씩 갖고 있다는 점에서 종래와 차이가 있다.
즉, 각 노드 엔트리는 데이터베이스 테이블에 있는 어느 하나의 레코드의 서로 다른 컬럼에서 추출한 데이터를 각각 저장한 저장 영역을 복수 개 구비하고 있는데, 각 노드 엔트리에 구비된 복수 개의 저장 영역 중 적어도 어느 하나에는 테이블의 색인 키 컬럼에 대응되는 색인 키 데이터가 저장되고, 복수 개의 저장 영역 중 나머지 저장 영역에는 테이블의 비 색인 컬럼에 대응되는 비 색인 데이터가 저장된다.
여기서 색인 키 컬럼은 테이블에 포함된 컬럼 중 B+Tree 확장 색인을 생성함에 있어서 자동 정렬의 기초가 되는 컬럼을 의미하고, 비 색인 컬럼은 B+Tree 확장 색인을 생성함에 있어서 자동 정렬의 기초가 되지 않는 컬럼을 의미한다.
예를 들어 테이블에 새로운 레코드가 추가될 때마다 B+Tree 확장 색인은 정렬을 유지한채로 갱신되게 되는데, 이때 B+Tree 확장 색인 내에서의 정렬의 기준이 되는 것이 색인 키 컬럼에 해당하는 것이다. 본 실시예에 따른 B+Tree 확장 색인의 자동 정렬은 노드 엔트리가 아니라 노드 아이템을 이용하여 이루어지는데, 이에 대한 보다 상세한 설명은 후술토록 한다.
여기서 색인을 생성한다는 것은 색인 구조를 생성하는 것과 색인 데이터를 추가하는 것을 모두 포함한다.
노드 엔트리 구성의 일 예로써 노드 엔트리가 2 개의 저장 영역으로 구분되어 있는 경우에, 첫 번째 노드 엔트리에는 첫 번째 레코드에서 추출한 색인 키 데이터와 비 색인 데이터가 각각 하나씩 포함될 수도 있고, 다른 예로써, 노드 엔트리가 3 개의 저장 영역으로 구분되어 있는 경우에, 첫 번째 노드 엔트리에는 첫 번째 레코드에서 추출한 색인 키 데이터 하나와 비 색인 데이터 2 개가 각각 포함될 수도 있다.
특히, 각 컬럼에서 추출한 데이터를 저장하는 각 저장 영역은 실 데이터가 저장되는 데이터 저장 영역과 그 데이터 저장 영역의 위치 및 크기가 저장된 데이터 정보 저장 영역을 포함할 수 있다.
도 3을 참조하여 이러한 노드 엔트리의 구체적인 예를 살펴본다.
동 도면에 도시된 바와 같이 하나의 엔트리의 저장 영역은 크게 데이터 정보저장 영역과 데이터 저장 영역으로 구분될 수 있다.
우선, 데이터 저장 영역부터 설명하면, 데이터 저장 영역은 각 컬럼의 실 데이터가 저장되는 영역으로서, 예를 들어 도 4(a)와 같은 구조를 가질 수 있다.
도 4에 도시된 예에서는 첫 번째 저장 영역에는 색인 키 데이터가 저장되어 있고, 두 번째 저장 영역과 세 번째 저장 영역에는 각각 비 색인 데이터가 저장되어 있다.
도 4는 하나의 예를 나타낸 것에 불과하고, 색인 키 데이터와 비 색인 데이터가 각각 다른 저장 영역에 저장될 수도 있다. 특히, 두 번째 저장 영역과 세 번째 저장 영역에도 색인 키 데이터가 저장될 수도 있다. 다만, B+Tree 확장 색인의 정렬 및 검색 기능을 고려하면 첫 번째 저장 영역에는 색인 키 데이터가 저장되는 것이 바람직하다.
다음으로 데이터 정보 저장 영역에 대해서 설명하면, 데이터 정보 저장 영역은 앞서 설명한 데이터 저장 영역에 대한 정보를 저장하는 영역인데, 예를 들어 도 5와 같은 구조를 가질 수 있다.
도 5(a)를 살펴보면 일 예로써, 데이터 정보 저장 영역의 첫 번째 저장 영역에는 색인 키 데이터 정보가 저장되어 있고, 두 번째 저장 영역과 세 번째 저장 영역에는 각각 비 색인 데이터 정보가 저장되어 있다.
이러한 구성은 하나의 예에 불과하고, 각각의 저장 영역에는 색인 키 데이터 정보 또는 비 색인 데이터 정보가 저장될 수 있으나, B+Tree 확장 색인의 정렬 및 검색 기능을 고려하면 첫 번째 저장 영역에는 색인 키 데이터 정보가 저장됨이 바람직하다.
데이터 정보 저장 영역에 저장되는 각 컬럼 데이터 정보(즉, 색인 키 데이터 정보 및 비 색인 데이터 정보)의 순서는 혼합 질의 처리를 위한 B+Tree 확장 색인의 키 구성 정보를 관리하는 메타 정보 즉, 색인 키 메타 정보에 저장이 되어 있는 색인 키 컬럼과 비 색인 컬럼의 순서와 일치해야 하며 특히, 색인 키 데이터 정보는 제일 먼저 저장되어야 함이 바람직하다. 이 경우 색인 키 데이터 정보가 저장된 위치 이후에 비 색인 데이터 정보를 저장할 수 있으며 또한 데이터 정보 저장 영역에 저장되는 색인 키 데이터 정보와 비 색인 데이터 정보의 개수는 데이터 저장영역에 저장되는 색인 키 데이터와 비 색인 데이터의 개수가 일치해야 한다.
색인 키 데이터 정보와 비 색인 데이터 정보가 저장이 되는 각 영역의 크기는 해당 정보 접근의 유효성을 보장하기 위해 동일해야 하며 각 영역에는 데이터 저장 영역의 위치 정보와 데이터의 크기 정보를 저장한다.
즉, 각 데이터 정보 저장 영역은 각 컬럼 데이터의 위치와 크기에 대한 정보가 저장될 수 있는데, 예를 들어 도 5(a)에서 첫 번째 색인 키 데이터 정보에는 도 4의 첫 번째 색인 키 데이터에 대한 위치(offset1)와 그 크기(length1)가 저장되고, 두 번째 비 색인 데이터 정보에는 도 4의 두 번째 비 색인 데이터에 대한 위치(offset2)와 그 크기(leghth2)가 저장되면, 세 번째 비 색인 데이터 정보에는 도 4의 세 번째 비 색인 데이터에 대한 위치(offset3)와 그 크기(leghth3)가 저장되어 있다.
데이터 정보 저장 영역의 각 컬럼에 대한 저장 순서와 데이터 저장 영역의 각 컬럼에 대한 저장 순서는 동일해야함이 바람직하다.
만약 색인 키 메타 정보에 저장된 색인 키 데이터 또는 비 색인 데이터의 최대 크기가 정보 저장을 위한 각 저장 영역의 크기보다 작을 경우 색인 용량 최적화를 위하여 데이터 정보 저장 영역에 데이터를 직접 저장할 수도 있다.
예를 들어 도 5(b)는 데이터 정보 저장 영역의 세 번째 저장 영역에 데이터 저장 영역에 저장되는 비 색인 데이터에 대한 위치 및 크기 정보 대신에 비 색인 데이터가 직접 저장된 일 예를 나타내고 있다.
한편, B+Tree 확장 색인에서 노드 아이템은 노드 엔트리 정보를 담고 있는 자료구조이다.
노드 엔트리의 구조상 각 노드 엔트리의 전체 크기는 가변적이기 때문에 노드 엔트리에 대한 별도의 관리구조 없이 노드 엔트리를 정렬하려면 노드 엔트리의 구조가 더 복잡해지며 연산 속도 저하가 발생할 수 있다.
따라서 노드 아이템 자료구조를 정의하여 노드 페이지에 저장되어 있는 노드 엔트리 정보를 노드 아이템에 저장한 후 노드 아이템을 정렬하여 사용할 수 있도록 한다.
이러한 노드 아이템에는 두 가지를 정보를 저장한다.
한 가지 정보는 하위 노드 정보로, 종래의 B+Tree 색인 구조에서는 하위노드 정보를 부모 노드의 색인 키 데이터 저장영역에 저장하지만 본 발명의 일 실시예에 따른 혼합 질의 처리를 위한 B+Tree 확장 색인에서는 노드 아이템 구조에서 하위 노드 정보를 저장한다.
노드 엔트리에 저장 되는 다른 정보는 노드 엔트리에 대한 정보로서 구체적인 예를 들면 노드 엔트리의 위치 및 크기 정보이다. 이러한 노드 아이템 구조의 일 예는 도 6에 도시된 바와 같다.
한편, 하나의 색인 키 데이터만 존재하고 다른 비 색인 데이터가 존재하지 않는 색인을 생성할 경우 노드 엔트리 구조를 사용하면 불필요한 용량 오버헤드가 발생하기 때문에 색인 키 데이터를 노드 아이템 그 자체에 저장할 수도 있다. 이 경우 노드 아이템 구조는 도 7(a)와 같고, 이러한 노드 아이템을 포함하는 노드 페이지는 도 7(b)와 같다.
단 이 경우 노드 아이템에 색인 키 데이터를 저장하기 위한 조건을 명확하게 명시하여, 예를 들어 색인 키 데이터의 최대 크기가 노드 아이템에 노드 엔트리 정보를 저장하기 위한 영역의 크기(예를 들어 노드 엔트리 위치와 크기를 저장하기 위한 영역의 크기)보다 같거나 작을 경우에만 노드 아이템에 색인 키 데이터를 저장할 수 있도록 한다.
이하에서는 본 발명의 일 실시예에 따른 혼합 질의 처리를 위한 B+Tree 확장 색인을 생성하는 방법에 대해서 설명한다.
생성된 색인에 데이터를 저장하거나 또는 생성된 색인을 이용하여 검색을 수행하기 위해서는 색인에 저장된 데이터들에 대한 구조를 나타내는 메타 정보 즉, 색인 키 메타 정보가 필요하다.
따라서 이하에서는 먼저, 본 발명의 일 실시예에 따른 혼합 질의 처리를 위한 B+Tree 확장 색인에 대한 색인 키 메타 정보의 구조에 대해서 설명한다.
혼합 질의 처리를 위한 B+Tree 확장 색인 생성시 사용자 등에 의해 기준 컬럼 정보와 확장 컬럼 정보가 입력될 수 있는데, 일 예로써 기준 컬럼 정보는 색인 키 컬럼 정보에 해당할 수 있고, 확장 컬럼 정보는 비 색인 컬럼 정보일 수 있다. 이렇게 입력된 정보를 이용한 색인 키 메타 정보를 생성하여 DBMS 시스템 카탈로그 정보에 저장하게 되면 색인 데이터 적재 및 혼합 질의 평가(데이터 검색) 수행시 참조할 수 있다.
DBMS 카탈로그에 저장하는 혼합 질의에 대한 색인 키 메타 정보의 자료구조는 노드 엔트리의 컬럼 정보들을 저장하는 컬럼 메타 자료구조와 컬럼 정보 자료구조를 관리하는 키 메타 자료구조로 구성된다.
컬럼 메타 자료구조는 색인 키 컬럼 또는 비 색인 컬럼의 컬럼 타입, 테이블 레코드에서 해당 컬럼이 저장되는 컬럼 인덱스, 해당 컬럼의 최대 크기, 색인 키 컬럼 데이터 또는 비 색인 컬럼 데이터가 저장되는 노드 엔트리의 데이터 정보 저장 영역의 위치 정보를 포함한다.
키 메타 자료구조는 컬럼 메타 자료구조를 저장 관리하기 위한 자료구조로 관리해야 하는 메타 정보로는 컬럼 메타 정보로 구성이 된 색인 키 컬럼의 개수, 비 색인 컬럼의 개수를 저장하며 각 색인 키 컬럼과 비 색인 컬럼의 컬럼 메타 자료구조를 포함한다. 더 나아가 키 메타 자료 구조에는 노드 페이지의 종류를 지정하는 색인 타입 정보가 포함될 수도 있다.
이러한 색인 키 메타 정보의 자료 구조의 일 예는 도 8에 도시된 바와 같고, 이러한 자료 구조에 따라 생성되는 색인 키 메타 정보의 구체적인 예는 후술토록 한다.
색인 키 메타 정보가 생성된 이후에는 실제 색인 데이터가 저장되기 이전에 색인 키 메타 정보를 이용하여 노드 페이지를 생성한 후 생성한 노드 페이지에 대해 초기화를 수행할 수도 있다.
각 색인 노드에 대응되는 노드 페이지의 초기화 과정에는 노드 페이지의 헤더를 저장하는 과정을 포함할 수 있는데, 이러한 노드 페이지의 생성 및 초기화 과정 그 자체는 기 공지된 기술에 해당하므로 보다 상세한 설명을 생략한다.
이하에서는 생성된 색인에 색인 데이터들이 적재되는 과정에 대해서 설명한다.
소정의 이벤트 발생시에 DBMS 카탈로그에 저장된 색인 키 메타 정보를 참조하여 테이블의 특정 레코드로부터 적어도 하나의 색인 키 컬럼에 대응되는 색인 키 데이터와 적어도 하나의 비 색인 컬럼에 대응되는 비 색인 데이터를 추출한다.
여기서 소정의 이벤트는 테이블에 새로운 레코드가 등록됨을 알리는 이벤트에 해당할 수도 있고, 또는 특정 테이블에 저장된 모든 레코드들에 대하여 색인 데이터를 추출하여 기 생성된 색인에 적재하라는 사용자에 의해 입력된 명령에 해당할 수도 있다.
그리고 앞서 상기 추출한 적어도 하나의 색인 키 데이터 및 적어도 하나의 비 색인 데이터를 모두 포함하는 노드 엔트리를 생성하여 노드 페이지에 저장한다. 노드 엔트리에 저장되는 정보에 대해서는 앞서 살펴본 바와 같다.
이어서 앞선 단계에서 생성한 노드 엔트리의 위치 및 크기를 포함하는 노드 아이템을 생성하여 노드 페이지에 저장하는 단계를 수행한다.
이하에서는 특정 테이블에 대해서 색인 키 메타 정보를 생성하여 노드 페이지를 수행하는 구체적인 예를 도 9 내지 도 12를 참조하여 설명한다.
우선, 본 실시예에 따른 테이블 스키마는 도 9에 도시된 바와 같다고 가정한다. 도 9의 테이블 명칭은 'Student'라고 가정한다.
즉, 컬럼은 총 6개로써, 각각 id, name, address, telephone, sex, age라는 명칭을 갖고 있고, 각각의 컬럼에 대한 컬럼 타입 및 최대 문자열은 도 9에 도시된 바와 같다.
여기서 컬럼 타입이 'int' 인 경우의 최대 문자열은 '-1'로 표시되어 있는데, 이는 정수 타입은 그 크기가 시스템마다 상이함을 의미하는 것으로서, 예를 들어 int 타입의 경우 4바이트가 시스템에 의해 할당될 수 있다.
사용자가 이러한 테이블 스키마를 갖는 테이블에 대해서 'name' 컬럼을 색인 키 컬럼으로 선정하고, 'telephone' 컬럼 및 'age' 컬럼을 비 색인 컬럼으로 선정하여 B+Tree 확장 색인을 생성하고자 하는 경우 일 예로써 다음과 같은 명령어(쿼리)를 입력하면 된다.
create BPLUSTREE index idxStudent on table Student (name) extend telephone, age;
여기서 'BPLUSTREE index'는 B+Tree 확장 색인을 생성하라는 의미이고, 'idxStudent'는 생성하는 색인의 명칭이며, 'Student'는 색인을 생성할 테이블의 이름이고, '(name)'은 'name' 컬럼을 기준 컬럼 즉, 색인 키 컬럼으로 선정하라는 의미이고, 'extend telephone, age'는 'telephone' 컬럼과 'age'컬럼을 비 색인 컬럼으로 선정하라는 의미이다.
이러한 쿼리 명령에 따라 색인 키 메타 정보가 생성되는데, 생성된 색인 키 메타 정보의 일 예는 도 10과 같다.
도 10의 각 라인의 의미를 도 8을 참조하여 설명하면, 다음과 같다.
'type'는 색인 타입, 'KeyCount'는 색인 키 컬럼 개수, 'KeyFieldDesc'는 색인 키 컬럼에 대한 컬럼 메타 리스트, 'colType'은 컬럼 타입, 'colIdx'는 레코드에서 컬럼의 위치, 'colPos'는 노드 엔트리에서 컬럼의 위치, 'cardinality'는 컬럼 데이터의 최대 크기, 'ExtCount'는 비 색인 컬럼 개수, 'ExtFieldDesc'는 첫 번째 비 색인 컬럼에 대한 컬럼 메타 리스트, 'ExtFieldDesc2'는 두 번째 비 색인 컬럼에 대한 컬럼 메타 리스트이다.
여기서 색인 타입은 노드 페이지가 도 1과 같이 노드 아이템 및 노드 엔트리를 모두 포함하는 형태를 가질 것인지 또는 노드 페이지가 도 7(b)와 같이 노드 아이템만 포함하는 형태를 가질 것인지를 나타내는 것이다.
이러한 색인 타입은 사용자에 의해 선택된 색인 키 컬럼과, 비 색인 컬럼의 개수 및 각각의 최대 사이즈(문자 타입의 경우에는 최대 문자열 크기 또는 숫자 타입의 경우에는 해당 숫자 타입이 저장되는 공간 크기)와 노드 아이템에 노드 엔트리 정보가 저장되는 공간 크기(시스템에 의해 기 설정된 값일 수 있음)를 비교함으로써 선정될 수 있다.
도 10과 같은 색인 키 메타 정보를 가지는 색인이 생성된 상태에서 테이블에 도 11과 같이 소정의 데이터들이 삽입된다고 가정한다.
도 11에는 총 6개의 레코드가 테이블에 추가되는 일 예를 나타내고 있는데, 이 경우 도 12와 같은 노드 페이지가 생성된다.
도 12를 살펴보면 노드 엔트리는 도 11의 레코드 입력순서대로 아래쪽에서부터 저장되고, 그 각각의 노드 엔트리에 대응되는 노드 아이템이 노드 엔트리의 위치 및 크기 정보를 저장한 채로 생성되었음을 알 수 있다. 이때 노드 아이템은 색인 키 데이터인 'name'컬럼 데이터를 기초로 정렬된다.
특히 노드 엔트리의 데이터 정보 저장 영역은 도 5(b)와 같은 구조를 갖고 있음을 알 수 있다. 즉, 두 번째 비 색인 데이터인 'age' 컬럼 데이터는 노드 엔트리의 데이터 저장 영역(도 3 및 도 4 참조)에 저장되는 것이 아니라 노드 엔트리의 데이터 정보 저장 영역에 저장된 것이다. 이는 노드 엔트리의 데이터 정보 저장 영역의 크기가 'age'컬럼의 타입인 'int'의 사이즈보다 같거나 큰 경우를 전제로 한 것이다.
도 12에 도시된 바와 같이 노드 페이지의 노드 엔트리에는 색인 키 데이터인 'name' 컬럼 데이터만이 존재하는 것이 아니라, 비 색인 데이터인 'telephone' 컬럼 데이터와 'age' 컬럼 데이터도 함께 존재한다. 따라서 혼합 질의가 입력되는 경우 도 12에 도시된 바와 같은 색인을 참조하여 신속한 결과가 도출될 수 있다.
도 12의 색인을 참조하여 혼합 질의가 처리되는 과정을 살펴보면 다음과 같다.
일 예로 다음과 같은 쿼리 문이 입력된다고 가정한다.
SELECT * FROM Student WHERE name='유재석' AND age=41;
이 경우 where 구문에는 'and' 연산자를 통해 두 개의 조건이 포함되어 있다.
데이터베이스 시스템은 먼저 이러한 두 개의 조건과 가장 밀접한 색인을 선택하게 되는데, 예를 들어 색인 키 메타 정보를 확인하여 'name'과 'age'를 모두 포함하는 색인을 선택할 수 있다. 도 10에 도시된 바와 같이 'idxStudent'라는 색인에는 비록 'name' 컬럼 대해서만 색인 키 컬럼으로 설정되기는 하였지만 비 색인 컬럼으로 'age' 컬럼을 포함하고 있으므로 데이터베이스 시스템은 이 'idxStudent' 색인을 쿼리 조건과 가장 밀접한 색인으로 선택할 수도 있다.
데이터베이스 시스템은 먼저 색인 키 컬럼인 'name' 컬럼 데이터로 정렬된 노드 아이템을 이용하여 신속하게 '유재석'을 찾은 후에 해당 '유재석'을 포함하는 노드 엔트리의 주소 및 크기를 획득한다.
도 12의 노드 아이템을 참조하면 '유재석'을 포함하는 노드 엔트리의 위치는 '16330'이고 그 크기는 '27'임을 알 수 있다.
이어서 데이터베이스 시스템은 획득한 노드 엔트리 위치 및 크기 정보를 이용하여 해당하는 노드 엔트리로 이동하여 저장된 정보를 읽는다.
데이터베이스 시스템은 해당하는 노드 엔트리에 저장된 정보들을 참조하여 비 색인 데이터에 대한 조건을 분석한다. 즉, 데이터베이스 시스템은 'age' 컬럼 데이터를 노드 엔트리에서 읽어 '41'에 해당하는지를 확인한다.
이에 따라 데이터베이스 시스템은 색인 키 데이터와 비 색인 데이터를 모두 조건으로 가지고 있는 혼합 질의가 입력되는 경우 B+Tree 확장 색인 내에서 모든 조건 분석을 수행하여 그 모든 조건을 만족하는 노드 엔트리를 추출할 수 있는 것이다.
즉, 종래에는 노드 엔트리에 비 색인 데이터가 저장되어 있지 않기 때문에 비 색인 데이터에 대한 조건을 분석하기 위해서는 다시 테이블에 접속하여 필요한 데이터를 읽어오는 과정을 수행해야 하였지만, 본 발명의 일 실시예에 따르면 도 12에 도시된 바와 같이 각 노드 엔트리에 비 색인 데이터 역시 색인 키 데이터와 함께 저장되어 있기 때문에서 색인 내에서 비 색인 데이터에 대한 조건 분석이 이루어질 수 있는 것이다.
상술한 예에서는 색인 키 데이터가 중복되지 않은 상황을 가정하여 설명한 것이지만 각 노드 엔트리에 저장되는 색인 키 데이터는 서로 중복될 수 있다.
이 경우 데이터베이스 시스템은 색인에 포함된 노드 엔트리 중 혼합 질의에 포함된 색인 키 데이터와 동일한 색인 키 데이터를 포함하는 첫 번째 노드 엔트리와 마지막 노드 엔트리를 확인하고, 그 첫 번째 노드 엔트리로부터 마지막 노드 엔트리로 이동하면서 혼합 질의에 포함된 비 색인 데이터와 동일한 비 색인 데이터를 포함하는 노드 엔트리를 추출할 수도 있다.
예를 들어 도 13과 같이 '유재석'이라는 비 색인 데이터를 가지고 있는 노드 엔트리가 3개 발견된 경우 데이터베이스 시스템은 각 노드 엔트리를 순차적으로 이동해가면서 비 색인 데이터인 'age'가 41인 노드 엔트리가 존재하는지 판단할 수 있다.
다른 예로써 다음과 같은 쿼리 문이 입력된다고 가정한다.
SELECT age FROM Student WHERE name='유재석';
이 경우 where 구문에는 한 개의 조건만이 포함되어 있기는 하지만, 찾는 데이터가 age 컬럼 데이터이다.
따라서 이 경우에도 데이터베이스 시스템은 'name'과 'age' 컬럼 데이터를 모두 포함하는 색인 즉, 상술한 'idxStudent' 색인을 검색을 위한 색인으로 선택할 수 있다.
이때 name='유재석'인 노드 엔트리를 찾아가는 과정은 앞선 예에서 살펴본 바와 같다.
name='유재석'인 노드 엔트리를 찾은 후에 데이터베이스 시스템은 해당 노드 엔트리에 포함된 'age' 컬럼 데이터를 추출할 수 있다. 즉, 이 경우에도 데이터베이스 시스템은 'age' 컬럼 데이터를 추출하기 위해 테이블에 IO 접속할 필요가 없이 색인 내에서 처리 가능하다.
한편, 상술한 각 실시예를 수행하는 과정은 소정의 기록 매체(예를 들어 컴퓨터로 판독 가능한)에 저장된 프로그램에 의해 이루어질 수 있음은 물론이다.
상술한 실시예에서는 B+Tree와 유사한 구조를 가지는 B+Tree 확장 색인을 생성하여 혼합 질의를 처리하는 것을 일 예로 하였으나 본 발명이 반드시 B+Tree 확장 색인에 한정되는 것은 아니다. 즉, 검색의 기초가 되는 노드 엔트리에 색인 키 데이터와 비 색인 데이터가 모두 포함되는 경우라면 모두 본 발명에 권리범위에 속한다.
또한, 본 발명은 상기한 특정 실시예에 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위 내에서 여러 가지로 변형 및 수정하여 실시할 수 있는 것이다. 이러한 변형 및 수정이 첨부되는 특허청구범위에 속한다면 본 발명에 포함된다는 것은 자명할 것이다.

Claims (14)

  1. 삭제
  2. (a) 데이터베이스의 특정 테이블에 대한 색인 생성 명령을 감지하면 상기 색인 생성 명령에 포함된 인수 중 색인 생성 명령에 대한 기 정의된 문법 해석에 따라 기준 컬럼 정보와 확장 컬럼 정보를 판단하는 단계와;
    (b) 상기 특정 테이블에 대한 테이블 스키마를 이용하여 기준 컬럼 정보에 대응되는 컬럼과 확장 컬럼 정보에 대응되는 컬럼에 대한 각각의 컬럼 타입을 확인하는 단계와;
    (c) 상기 (b) 단계에서 확인된 모든 컬럼 타입이 포함된 색인 키 메타 정보를 생성하여 DBMS(Database Management System) 카탈로그에 저장하는 단계를 포함하고,
    상기 (c) 단계에서는,
    상기 기준 컬럼 정보에 대응되는 적어도 하나의 컬럼에 대해서는 색인 키 컬럼으로 판단하고, 상기 확장 컬럼 정보에 대응되는 적어도 하나의 컬럼에 대해서는 비 색인 컬럼으로 판단하며, 상기 색인 키 메타 정보에 상기 색인 키 컬럼에 대한 정보와 상기 비 색인 컬럼에 대한 정보를 구별하여 포함시키는 것을 특징으로 하는 혼합 질의 처리용 색인 생성 방법.
  3. 제2항에 있어서,
    상기 (c) 단계에서 생성한 색인 키 메타 정보는 색인 키 컬럼 개수, 색인 키 컬럼에 대한 컬럼 메타 리스트, 비 색인 컬럼 개수, 비 색인 컬럼에 대한 컬럼 메타 리스트가 포함되고,
    상기 색인 키 컬럼에 대한 컬럼 메타 리스트에는 상기 판단된 각 색인 키 컬럼에 대한 컬럼 메타 정보가 포함되고,
    상기 비 색인 컬럼에 대한 컬럼 메타 리스트에는 상기 판단된 각 비 색인 컬럼에 대한 컬럼 메타 정보가 포함되며,
    상기 각 컬럼 메타 정보에는 해당 컬럼 타입, 레코드에서 해당 컬럼의 위치, 데이터 검색의 기본이 되는 노드 엔트리에서의 해당 컬럼의 위치, 해당 컬럼 데이터의 최대 크기가 포함되는 것을 특징으로 하는 혼합 질의 처리용 색인 생성 방법.
  4. 제2항에 있어서,
    상기 (c) 단계 이후에,
    상기 색인 키 메타 정보를 이용하여 데이터 검색의 기본이 되는 적어도 하나의 노드 엔트리를 저장하기 위한 노드 페이지를 생성하여 상기 생성한 노드 페이지의 초기화를 수행하는 단계를 더 포함하는 것을 특징으로 하는 혼합 질의 처리용 색인 생성 방법.
  5. 제4항에 있어서,
    (d) 상기 색인 키 메타 정보를 참조하여 테이블의 특정 레코드로부터 적어도 하나의 색인 키 컬럼에 대응되는 색인 키 데이터와 적어도 하나의 비 색인 컬럼에 대응되는 비 색인 데이터를 추출하는 단계와;
    (e) 상기 추출한 적어도 하나의 색인 키 데이터 및 적어도 하나의 비 색인 데이터를 모두 포함하는 노드 엔트리를 생성하여 상기 노드 페이지에 저장하는 단계를 더 포함하는 것을 특징으로 하는 혼합 질의 처리용 색인 생성 방법.
  6. 제5항에 있어서,
    (f) 상기 (e) 단계에서 생성한 노드 엔트리의 위치 및 크기를 포함하는 노드 아이템을 생성하여 상기 노드 페이지에 저장하는 단계를 더 포함하는 것을 특징으로 하는 혼합 질의 처리용 색인 생성 방법.
  7. 제6항에 있어서,
    상기 (f) 단계에서는,
    각 노드 엔트리에 대응되는 각 노드 아이템은 해당하는 노드 엔트리에 포함된 색인 키 컬럼에 대응되는 데이터를 기초로 정렬되어 상기 노드 페이지 상에 저장되는 것을 특징으로 하는 혼합 질의 처리용 색인 생성 방법.
  8. (a) 데이터 검색을 위한 혼합 질의를 입력받는 단계와;
    (b) 상기 혼합 질의에 포함된 컬럼 모두와 가장 밀접하게 관계되는 색인을 기 설정된 알고리즘에 따라 선택하는 단계와;
    (c) 상기 선택된 색인에 대응되고 해당 색인에 저장된 데이터들의 구조를 나타내는 색인 키 메타 정보를 이용하여 상기 선택된 색인에 포함된 노드 엔트리 중 상기 혼합 질의에 포함된 색인 키 데이터와 동일한 색인 키 데이터를 포함하는 첫 번째 노드 엔트리와 마지막 노드 엔트리를 확인하는 단계와;
    (d) 상기 확인된 첫 번째 노드 엔트리로부터 마지막 노드 엔트리로 이동하면서 상기 혼합 질의에 포함된 비 색인 데이터와 동일한 비 색인 데이터를 포함하는 노드 엔트리를 추출하는 단계를 포함하는 것을 특징으로 하는 혼합 질의 처리 방법.
  9. (a) 데이터 검색을 위한 혼합 질의를 입력받는 단계와;
    (b) 상기 혼합 질의에 포함된 컬럼 모두와 가장 밀접하게 관계되는 색인을 기 설정된 알고리즘에 따라 선택하는 단계와;
    (c) 상기 선택된 색인에 대응되고 해당 색인에 저장된 데이터들의 구조를 나타내는 색인 키 메타 정보를 이용하여 상기 선택된 색인에 포함된 노드 엔트리 중 상기 혼합 질의에 포함된 색인 키 데이터와 동일한 색인 키 데이터를 포함하는 첫 번째 노드 엔트리와 마지막 노드 엔트리를 확인하는 단계와;
    (d) 상기 확인된 첫 번째 노드 엔트리로부터 마지막 노드 엔트리로 이동하면서 각 노드 엔트리로부터 상기 혼합 질의에 포함된 비 색인 컬럼에 대응하는 비 색인 데이터를 추출하는 단계를 포함하는 것을 특징으로 하는 혼합 질의 처리 방법.
  10. 데이터 검색을 수행하기 위해 적어도 하나의 색인 노드를 포함하는 색인 자료 구조를 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서,
    상기 각 색인 노드에는 데이터 검색의 대상이 되는 적어도 하나의 노드 엔트리가 포함되어 있고, 각 노드 엔트리는 데이터베이스 테이블에 있는 어느 하나의 레코드의 서로 다른 컬럼에서 추출한 데이터를 각각 저장한 저장 영역을 복수 개 구비하고 있는 것을 특징으로 하는 색인 자료 구조를 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  11. 제10항에 있어서,
    상기 각 노드 엔트리에 구비된 복수 개의 저장 영역 중 적어도 어느 하나에는 상기 테이블의 색인 키 컬럼에 대응되는 색인 키 데이터가 저장되고, 상기 복수 개의 저장 영역 중 나머지 저장 영역에는 상기 테이블의 비 색인 컬럼에 대응되는 비 색인 데이터가 저장되는 것을 특징으로 하는 색인 자료 구조를 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  12. 제10항에 있어서,
    상기 각 컬럼에서 추출한 데이터를 저장하는 각 저장 영역은 실 데이터가 저장되는 데이터 저장 영역과 상기 데이터 저장 영역의 위치 및 크기가 저장된 데이터 정보 저장 영역을 포함하는 것을 특징으로 하는 색인 자료 구조를 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  13. 제10항에 있어서,
    상기 각 색인 노드는 각 노드 엔트리의 위치 및 크기가 저장된 고정된 크기의 노드 아이템을 적어도 하나 포함하는 것을 특징으로 하는 색인 자료 구조를 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  14. 제13항에 있어서,
    각 노드 엔트리의 전체 크기는 저장되는 컬럼 개수 및 실 데이터의 크기에 따라 달라지는 것을 특징으로 하는 색인 자료 구조를 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020120115452A 2012-10-17 2012-10-17 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체 KR101440475B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120115452A KR101440475B1 (ko) 2012-10-17 2012-10-17 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체
PCT/KR2012/008713 WO2014061846A1 (ko) 2012-10-17 2012-10-23 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120115452A KR101440475B1 (ko) 2012-10-17 2012-10-17 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체

Publications (2)

Publication Number Publication Date
KR20140049326A KR20140049326A (ko) 2014-04-25
KR101440475B1 true KR101440475B1 (ko) 2014-09-17

Family

ID=50488395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120115452A KR101440475B1 (ko) 2012-10-17 2012-10-17 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체

Country Status (2)

Country Link
KR (1) KR101440475B1 (ko)
WO (1) WO2014061846A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107798081B (zh) * 2017-10-17 2021-05-07 西北工业大学 基于材料-结构-工艺-过程相关性的分层次数据库模型
WO2020105748A1 (ko) * 2018-11-21 2020-05-28 전자부품연구원 분산형 데이터베이스상의 인덱스 병합을 활용한 질의 최적화 방법
CN111221813B (zh) * 2018-11-27 2023-06-23 阿里巴巴集团控股有限公司 数据库索引以及数据库查询的处理方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001038952A2 (en) * 1999-03-26 2001-05-31 Computer Associates Think, Inc. System and method for extracting index key data fields
JP2005505059A (ja) * 2001-09-28 2005-02-17 オラクル・インターナショナル・コーポレイション リレーショナルデータベースシステム内の階層型データにアクセスするための効率的な索引構造
KR20080046905A (ko) * 2006-11-23 2008-05-28 삼성전자주식회사 최적화된 인덱스 검색 방법 및 장치
US20100146003A1 (en) * 2008-12-10 2010-06-10 Unisys Corporation Method and system for building a B-tree

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758353A (en) * 1995-12-01 1998-05-26 Sand Technology Systems International, Inc. Storage and retrieval of ordered sets of keys in a compact 0-complete tree
KR100367092B1 (ko) * 1999-07-05 2003-01-06 한국전자통신연구원 정보검색이 밀결합된 객체지향 디비엠에스의 질의처리시스템과방법
US8402071B2 (en) * 2009-06-19 2013-03-19 Aptare, Inc. Catalog that stores file system metadata in an optimized manner

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001038952A2 (en) * 1999-03-26 2001-05-31 Computer Associates Think, Inc. System and method for extracting index key data fields
JP2005505059A (ja) * 2001-09-28 2005-02-17 オラクル・インターナショナル・コーポレイション リレーショナルデータベースシステム内の階層型データにアクセスするための効率的な索引構造
KR20080046905A (ko) * 2006-11-23 2008-05-28 삼성전자주식회사 최적화된 인덱스 검색 방법 및 장치
US20100146003A1 (en) * 2008-12-10 2010-06-10 Unisys Corporation Method and system for building a B-tree

Also Published As

Publication number Publication date
KR20140049326A (ko) 2014-04-25
WO2014061846A1 (ko) 2014-04-24

Similar Documents

Publication Publication Date Title
US7689574B2 (en) Index and method for extending and querying index
US10083227B2 (en) On-the-fly determination of search areas and queries for database searches
RU2427896C2 (ru) Аннотирование документов в совместно работающих приложениях данными в разрозненных информационных системах
US9507848B1 (en) Indexing and querying semi-structured data
CN104765731B (zh) 数据库查询优化方法和设备
KR101696338B1 (ko) 컬럼-인덱스 데이터 포맷을 이용하여 빅데이터를 효율적으로 처리 및 분석하는 시스템 및 방법
US20090077078A1 (en) Methods and systems for merging data sets
CN102819601B (zh) 信息检索方法和信息检索设备
CN107491487A (zh) 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质
EP1315103B1 (en) File search method and apparatus, and index file creation method and device
US9406018B2 (en) Systems and methods for semantic data integration
KR101549220B1 (ko) 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조
CN106682003B (zh) 分布式存储命名空间的路径分割映射方法和装置
CN105760418B (zh) 用于对关系数据库表进行交叉列搜索的方法和系统
JP4254763B2 (ja) 文書検索システム、文書検索方法及び文書検索プログラム
KR101440475B1 (ko) 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체
CN111045994B (zh) 一种基于kv数据库的文件分类检索方法及系统
US10339104B2 (en) Information processing apparatus, file management method, and computer-readable recording medium having stored therein file management program
CN109299106B (zh) 数据查询方法和装置
Iser et al. A problem meta-data library for research in SAT
KR101679011B1 (ko) 데이터베이스에서 데이터 이동을 처리하는 방법 및 장치
CN114443625A (zh) 数据库的处理方法、装置
Munir et al. ATUN-HL: Auto tuning of hybrid layouts using workload and data characteristics
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム
KR101545216B1 (ko) 데이터 모델링 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20170905

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180904

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190903

Year of fee payment: 6