KR100833781B1 - 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의능동적 후보항목 관리 방법 - Google Patents
트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의능동적 후보항목 관리 방법 Download PDFInfo
- Publication number
- KR100833781B1 KR100833781B1 KR1020010077008A KR20010077008A KR100833781B1 KR 100833781 B1 KR100833781 B1 KR 100833781B1 KR 1020010077008 A KR1020010077008 A KR 1020010077008A KR 20010077008 A KR20010077008 A KR 20010077008A KR 100833781 B1 KR100833781 B1 KR 100833781B1
- Authority
- KR
- South Korea
- Prior art keywords
- item
- candidate
- trigger
- items
- hash
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2216/00—Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
- G06F2216/03—Data mining
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의 능동적 후보항목 관리 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 연관규칙을 탐사하는 마이닝 기법을 트리거와 점진적 갱신 기법 및 데이터베이스 저장 프로시져를 이용하여 자동으로 실시간에 탐사할 수 있도록 하기 위한 연관규칙 탐사의 능동적 후보항목 관리 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하고자 함.
3. 발명의 해결방법의 요지
본 발명은, 컴퓨팅 시스템에서 연관규칙 탐사의 후보항목 관리 방법에 있어서, 트리거를 이용하여, 신규 트랜잭션 발생시 신규 발생된 트랜잭션을 트랜잭션 데이터베이스에 삽입하고, 사건 발생에 의해 삽입된 트랜잭션 데이터를 추출하는 단계; 트리거 프로세스를 호출하여, 후보항목집합 생성기를 통해 상기 트랜잭션 데이터로부터 조합 가능한 모든 후보항목들을 조합하여 후보항목집합을 생성하는 단계; 및 점진적 후보항목 관리기를 통해 상기 후보항목집합을 이중 해쉬 함수를 이용하여 갱신 대상과 삽입 대상으로 분류한 다음, 실시간으로 후보항목 집합 테이블들에 반영하여, 점진적으로 후보항목을 갱신하는 단계를 포함함.
4. 발명의 중요한 용도
본 발명은 시간적 제약조건을 갖는 특수한 판매 형태를 갖는 품목들에 대한 판매 패턴의 실시간 분석 등에 이용됨.
연관규칭, 마이닝 기법, 트리거, 후보항목, 이중 해쉬
Description
도 1 은 본 발명이 적용되는 하드웨어 시스템의 구성 예시도.
도 2 는 본 발명에 따른 능동적 후보항목 관리 방법에 대한 일실시예 흐름도.
도 3 은 본 발명에 따른 상기 도 2의 능동적 후보항목 관리 방법을 나타낸 일실시예 전체 설명도.
도 4 는 본 발명에 이용되는 트리거 정의 예시도.
도 5 는 본 발명에 따른 상기 도 3의 점진적 후보항목 관리기의 상세 동작 과정에 대한 일실시예 흐름도.
도 6 은 상기 도 5의 점진적 후보항목 관리기의 동작 과정중 항목 소속 결정 절차를 나타낸 일실시예 설명도.
도 7 은 상기 도 6의 항목 소속 결정 절차에 대한 일실시예 상세 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
1 : 중앙처리장치 2 : 주기억장치
3 : 입출력제어기 4 : 보조기억장치
5 : 입출력장치
본 발명은 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의 능동적 후보항목 관리 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로서, 보다 상세하게는 연관규칙을 탐사하는 마이닝 기법을 트리거와 점전직 갱신 기법 및 데이터베이스 저장 프로시져를 이용하여 자동으로 실시간에 탐사할 수 있도록 하는 것이다.
즉, 본 발명은 데이터 마이닝 분야에서 가장 대중적으로 활용되고 있는 연관규칙 탐사시, 실시간 연관규칙 탐사가 가능하도록 하기 위해 연산 부하가 가장 높은 후보항목 생성 과정을 트리거와 점진적 갱신 기법 및 데이터베이스 저장 프로시져를 이용하여 관리함으로써, 실시간에 연관규칙을 탐사할 수 있도록 하는 것이다.
연관규칙라 함은, 트랜잭션 데이터베이스를 바탕으로 지지도(support)와 신뢰도(confidence)라는 두 제한자(threshold)를 이용하여 연관성이 강한 항목들을 찾아내는 것으로 정의할 수 있다. 이와 같은 연관규칙 탐사의 가장 전형적인 응용은 전자상거래 및 대형 할인점 등과 같이 대규모 거래가 집중적으로 이루어지는 유 통 환경에서의 장바구니 분석을 들 수 있다. 이와 같은 유통환경하에서 장바구니 분석을 통해 탐사된 연관규칙은 진열대(show case)의 진열 형태를 최적화함으로써 매출의 신장에 기여하는 수단으로 활용되고 있다.
그러나, 연관규칙 탐사에 대한 기존의 방법들은 모두 비실시간/일괄처리 방식을 채택하고 있다. 이는 연관규칙 탐사의 중요 기준이 되는 지지도와 신뢰도가 전체 데이터베이스를 대상으로 정의되는 제한자로서, 전체 데이터베이스에서 항목이 나타나는 횟수의 비율(지지도), 항목집합 A에 대해 연관된 항목집합 A, B가 모두 나타난 트랜잭션의 비율(신뢰도)로 정의되기 때문에 항상 전체 데이터베이스에 대한 정보를 갖고 있어야 한다는 전제를 기반으로 성립되기 때문이다.
아울러, 탐사된 규칙이 일관성을 갖기 위해서는 탐사 도중에 트랜잭션 데이터베이스의 변화가 없어야 한다. 그러나, 이와 같은 특성은 실시간 탐사에서 요구되는 동적 환경과는 상반된 환경으로서, 끊임없이 변화가 발생하는 동적 환경에 적용할 수 없는 문제가 있다.
따라서, 현재의 기술분야에서는 종래의 연관규칙 탐사기법이 연관규칙을 탐사하기 위해 탐사 시점에 전체 데이터베이스를 반복적으로 스캔해야 하는 특성으로 인해 갖을 수 밖에 없었던 비실시간적 특성을 개선할 수 있는 방안이 절실히 요구된다.
본 발명은, 상기한 바와 같은 요구에 부응하기 위하여 제안된 것으로, 연관 규칙을 탐사하는 마이닝 기법을 트리거와 점진적 갱신 기법 및 데이터베이스 저장 프로시져를 이용하여 자동으로 실시간에 탐사할 수 있도록 하기 위한 연관규칙 탐사의 능동적 후보항목 관리 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명은, 컴퓨팅 시스템에서 연관규칙 탐사의 후보항목 관리 방법에 있어서, 트리거를 이용하여, 신규 트랜잭션 발생시 신규 발생된 트랜잭션을 트랜잭션 데이터베이스에 삽입하고, 사건 발생에 의해 삽입된 트랜잭션 데이터를 추출하는 단계; 트리거 프로세스를 호출하여, 후보항목집합 생성기를 통해 상기 트랜잭션 데이터로부터 조합 가능한 모든 후보항목들을 조합하여 후보항목집합을 생성하는 단계; 및 점진적 후보항목 관리기를 통해 상기 후보항목집합을 이중 해쉬 함수를 이용하여 갱신 대상과 삽입 대상으로 분류한 다음, 실시간으로 후보항목 집합 테이블들에 반영하여, 점진적으로 후보항목을 갱신하는 단계를 포함하여 이루어진 것을 특징으로 한다.
한편, 본 발명은 연관규칙 탐사의 후보항목 관리를 위하여, 프로세서를 구비한 컴퓨팅 시스템에, 트리거를 이용하여, 신규 트랜잭션 발생시 신규 발생된 트랜잭션을 트랜잭션 데이터베이스에 삽입하고, 사건 발생에 의해 삽입된 트랜잭션 데이터를 추출하는 기능; 트리거 프로세스를 호출하여, 후보항목집합 생성기를 통해 상기 트랜잭션 데이터로부터 조합 가능한 모든 후보항목들을 조합하여 후보항목집합을 생성하는 기능; 및 점진적 후보항목 관리기를 통해 상기 후보항목집합을 이중 해쉬 함수를 이용하여 갱신 대상과 삽입 대상으로 분류한 다음, 실시간으로 후보항목 집합 테이블들에 반영하여, 점진적으로 후보항목을 갱신하는 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명은 후보항목을 점진적으로 관리하기 위한 알고리즘을 개발하고, 이를 트리거를 이용하여 호출하도록 함으로써 새로운 트랜잭션이 데이터베이스에 삽입됨과 동시에 사용자의 명시적 요구없이도 트리거의 자동대응 기능에 의해 자동으로 후보항목 집합에 새로 삽입된 트랜잭션의 내용을 반영할 수 있도록 한다. 또한, 본 발명에서 제시하는 메커니즘은 데이터베이스에서 제공하는 기능 이외의 어떠한 부가적 기능이나 도구도 배제한다.
즉, 본 발명은 연관규칙 탐사 과정에서 가장 많은 비용이 드는 후보항목 생성과 생성된 후보항목의 지지도 계산을 수행하는데 있어 기존 방법들이 채택하고 있는 배치 처리 방법을 배제하고 트랜잭션 데이터의 삽입이 발생할 때마다 삽입되는 트랜잭션 단위로 점진적으로 수행하는 방법을 제시하고자 한다. 특히, 본 발명에서 제시하는 방법은 트랜잭션 단위로 후보항목의 생성과 지지도 계산을 수행하는데 있어 데이터베이스 트리거를 이용함으로써 자동으로 수행할 수 있도록 할 뿐만 아니라 실시간에 처리할 수 있도록 하는데 있다.
이를 위해, 본 발명은 데이터베이스 트리거와 저장 프로시져를 이용하여 후보항목 생성 알고리즘 및 지지도 계산 알고리즘을 구현한다. 특히, 후보항목의 지 지도 계산 과정에서 연산의 성능을 향상시키기 위해 두 개의 해쉬를 이용하는 이중 해쉬 기법을 이용함으로써 성능을 향상시킨다.
따라서, 본 발명은 대규모 유통 환경하에서 채소, 육류 등과 같은 신선 식품이나 또는 기념일 주변에서 집중적인 매출이 발생하는 관련 기념품 등과 같이 시간적 제약조건을 갖는 특수한 판매 형태를 갖는 품목들에 대한 판매 패턴을 실시간적으로 분석하는데 적용할 수 있다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명이 적용되는 하드웨어 시스템의 구성 예시도이다.
도 1에 도시된 바와 같이, 본 발명이 적용되는 컴퓨터 하드웨어 환경은 컴퓨터 전체의 동작을 제어하고 관리하는 중앙처리장치(1)와, 중앙처리장치(1)에서 수행할 프로그램을 저장하고 작업 수행중 이용되는 각종 데이터를 저장하는 주기억장치(2)와, 내부 연결 버스에 접속되고 보조기억장치(4)와 입출력장치(5)에 대한 입출력을 제어하는 입출력제어기(3)로 구성된다.
여기서, 보조기억장치(4)는 대량의 데이터를 저장하는 역할을 하며, 입출력장치(5)는 일반적인 키보드, 디스플레이 장치, 프린터 등을 포함한다.
상기와 같이 구성된 컴퓨터에서 주기억장치(2)에는 본 발명이 적용되는 데이터베이스 및 저장 프로시져 엔진이 적재되어 있으며, 중앙처리장치(1)의 제어에 따라 수행된다.
본 발명은 컴퓨터 하드웨어 환경하에서 운영 데이터베이스내 트리거의 자동 대응 기능과 저장 프로시져만을 이용하여 구현하고, 또한 트랜잭션의 삽입에 따라 생성되는 대량의 후보항목들을 효율적으로 후보항목 집합에 반영한다. 이를 위해, 트랜잭션의 삽입이 발생하게 되면, 삽입된 트랜잭션에 의해 반응하는 트리거 수행 과정과 트리거 수행에서 점진적 후보항목 갱신을 위한 저장 프로시져 호출 과정으로 구성한다. 점진적 후보항목 갱신을 위한 저장 프로시져는 다시 후보항목들을 점진적으로 갱신하기 위한 여러 단계로 구성되는데, 이에 대한 보다 상세한 설명은 후술하기로 한다.
도 2 는 본 발명에 따른 능동적 후보항목 관리 방법에 대한 일실시예 흐름도로서, 트리거와 점진적 갱신 기법을 이용한 동적 환경에서의 실시간 후보항목 갱신 절차를 나타낸다.
도 2에서, 단계 1(새로운 트랜잭션의 발생과 발생된 트랜잭션 데이터의 데이터베이스 삽입 연산 수행)은 사용자 또는 응용프로그램에 의한 명시적 요청에 의해 수행된다.
단계 1이 수행되면, 트리거의 사건 발생을 나타내는 단계 2(트랜잭션 데이터의 삽입 연산에 의한 후보항목 관리 트리거의 사건 발생)가 자동으로 수행되며, 단계 2의 후속 조치로서 트리거의 조치를 수행하는 단계 3(사건 발생에 따라 기동되는 후보항목 관리 트리거의 조치절에 의한 점진적 연산 프로시져 호출)이 수행된다.
여기서, 단계 3은 다시 여러 서브 단계로 구성되는데, 즉 단계 3.1(삽입된 트랜잭션 데이터를 이용하여 조합 가능한 후보 항목 생성), 단계 3.2(생성된 후보항목들을 삽입차분과 갱신 차분으로 분류), 단계 3.3(삽입 차분의 삽입 연산 수행), 그리고 단계 3.4(갱신 차분의 갱신 연산 수행)이다.
그리고, 단계 3의 수행완료로 트리거 수행이 완료되고 나면, 최종적으로 단계 4(트랜잭션 커밋)가 수행되면서 트랜잭션 데이터의 삽입이 완료된다.
그럼, 상기 도 2에서 제시하고 있는 트리거와 점진적 갱신 기법을 이용한 동적 환경에서 실시간 후보항목 관리 방법을 도 3을 통해 보다 상세하게 설명한다.
도 3 은 본 발명에 따른 상기 도 2의 능동적 후보항목 관리 방법을 나타낸 일실시예 전체 설명도로서, 도면에서 "6"은 트랜잭션 데이터베이스, "7"은 후보항목집합 데이터베이스, "8"은 새로 삽입될 트랜잭션, "9"는 새로운 트랜잭션의 삽입 발생, "10"은 새로 삽입된 트랜잭션, "11"은 새로운 트랜잭션의 삽입에 의해 사건 발생, "12"는 새로 삽입된 트랜잭션으로부터 추출된 단일 항목들의 집합, "13"은 점진적 후보항목 갱신을 수행하는 트리거 프로세스, "14"는 단일항목들(12)을 조합해서 후보항목을 생성하는 후보항목 생성기, "15"는 후보항목 생성기에 의해 생성된 후보항목 집합, "16"은 생성된 후보항목들을 삽입항목과 갱신항목으로 분류/반영하는 점진적 후보항목 관리기, "17"은 후보항목 관리기(16)에 의해 갱신항목으로 분류된 항목들, "18"은 후보항목 관리기에 의해 삽입항목으로 분류된 항목들, 그리고 "19"는 갱신항목들(17) 및 삽입항목들(18)에 대한 후보항목 데이터베이스 반영 연산의 수행 과정을 각각 나타낸다.
상기 도 2와 같은 연산을 수행하기 위해 데이터베이스내에 구성되어야 할 요 소중 데이터 관련 요소로는, 트랜잭션 데이터를 저장하기 위한 트랜잭션 데이터베이스(6)와 후보항목 집합들을 지속적으로 유지하기 위한 후보항목집합 데이터베이스(7)가 존재해야 한다. 그리고, 프로세스 요소로는 트랜잭션이 새로 삽입되어(10) 새로운 트랜잭션의 삽입에 의한 사건 발생(11)을 감지하는 트리거 사건 검출기와 점진적 후보항목 갱신을 수행하는 트리거 프로세스(13)가 필요하다.
이와 같은 구성 요소들을 이용하여 본 발명에서 제시하고 있는 처리 과정은 다음과 같다.
우선, 새로운 트랜잭션이 발생하면(8), 이 새로 발생된 트랜잭션(8)은 트랜잭션 데이터베이스(6)에 삽입된다(9,10). 트랜잭션 데이터의 삽입에 의해 점진적 후보항목 갱신 트리거의 사건 발생(11)에 의해 삽입된 트랜잭션 데이터(10)가 추출되어 트리거 프로세스(13)로 전달된다(12).
이후, 트랜잭션 데이터를 전달받은 트리거 프로세스(13)는, 먼저 트랜잭션 데이터로부터 조합 가능한 모든 후보항목들을 조합하여 후보항목 집합을 생성한다(14). 후보항목집합 생성기(14)에 의해 생성된 후보항목 집합(15)은 다시 점진적 후보항목 관리기(16)로 전달된다.
다음으로, 후보항목집합(15)을 전달받은 점진적 후보항목 관리기(16)는, 후보항목들을 갱신 대상(17)과 삽입 대상(18)으로 분류한 다음, 이를 데이터베이스 반영기(19)를 통해 일괄적으로 후보항목 집합 테이블들에 반영한다. 이때, 갱신 대상 후보항목의 갱신 속성은 후보항목 데이터베이스내 테이블들의 빈발계수 값을 1 증가한 값으로 갱신한다.
상기 도 3의 과정에서 사건 발생과 이로 인해 수행되는 트리거 프로세스(13)를 호출하는 역할을 담당하는 트리거에 대한 정의를 도 4에 나타내었다.
도 4 는 본 발명에 이용되는 트리거 정의 예시도로서, 도면에서 "20"은 삽입된 트랜잭션으로부터 단일 항목을 수집하는 트리거, 그리고 "21"은 수집된 단일 항목들을 이용하여 점진적 후보항목 연산을 호출하는 트리거를 각각 나타낸다.
상기 도 3의 과정을 효과적으로 지원하기 위해서는, 두 개의 트리거 정의가 필요한데, 하나는 트랜잭션 데이터가 삽입될 때 트랜잭션 데이터에 포함된 단일 항목들을 수집하는 역할을 담당하는 트리거(20)와, 트랜잭션 데이터의 삽입이 완료된 후 이 트랜잭션 데이터를 이용하여 점진적 후보항목 갱신 연산을 직접 수행시키는 후보항목 갱신 트리거(21)이다.
여기서, 삽입되는 트랜잭션의 단일 항목들을 수집하는 트리거(20)가 필요한 이유는, 만일 삽입 과정에서 단일 항목들을 수집하지 않을 경우, 이를 삽입된 데이터베이스로부터 다시 검색해 와야 하기 때문에 수행 성능에 영향을 미칠 수 있는 문제가 발생할 수 있다. 따라서, 삽입 과정에서 이를 순차적으로 정렬하면서 수집해 놓고 나중에 점진적 후보항목 갱신 트리거에 의해 후보항목에 대한 점진적 연산을 수행할 때 미리 수집해 놓은 단일 항목들의 집합을 이용하게 되면 그만큼 성능상의 이익을 얻을 수 있기 때문이다.
도 5 는 본 발명에 따른 상기 도 3의 점진적 후보항목 관리기의 상세 동작 과정에 대한 일실시예 흐름도로서, 도면에서 "22"는 n_size 항목집합내에 있는 n_size 항목의 개수 결정 과정, "23"은 Get_From_Hash 함수의 호출에 의해 항목의 상태 결정 과정, "24"는 항목이 새로운 항목으로 결정되었을 경우의 처리 과정, "25"는 항목이 후보항목 데이터베이스에 이미 존재하고 있는 항목으로 결정되었을 경우의 처리 과정, 그리고 "26"은 항목이 해쉬 테이블에 존재하는 충돌항목일 경우의 처리 과정을 각각 나타낸다.
먼저, 생성된 후보항목들을 삽입항목과 갱신항목으로 분류/반영하는 점진적 후보항목 관리기(16)는, 평가하고자 하는 후보항목의 갯수를 설정하고(22), 첫 번째 후보항목부터 차례대로 Get_From_Hash 함수를 호출하여(23), 이미 존재하고 있는 항목인지, 새로 삽입될 항목인지 아니면 기존 해쉬 테이블과 충돌이 발생한 항목인지를 조사한다. 이에 대한 보다 상세한 설명은 하기의 도 6의 Get_From_Hash 함수에서 후술하기로 한다.
조사 결과, 새로 삽입될 항목이라면, 새로운 항목 식별자를 부여받은 후 항목 식별자와 항목을 묶어서 삽입 항목 집합에 설정한다(24).
조사 결과, 항목이 이미 후보항목 데이터베이스에 존재하는 항목일 경우, 항목의 식별자를 갱신 항목 집합에 설정한다(25). 그렇지 않고 충돌항목으로 조사되었을 경우, 새로운 항목 식별자를 할당하여 삽입항목에 설정한다(26).
이렇게 설정된 항목들은 뒤에 점진적 관리자 프로세스에 의해 일괄적으로 후보항목 데이터베이스에 반영된다. 이와 같은 처리 흐름은 모든 후보항목들을 전체 데이터베이스를 대상으로 하지 않고 현재 삽입된 트랜잭션 데이터에 대한 연산만 수행하고 이를 이미 생성 유지하고 있는 후보항목 데이터베이스에 반영하는 것이므로, 점진적 연산에 의한 후보항목 관리를 수행하게 된다.
도 6 은 상기 도 5의 점진적 후보항목 관리기의 동작 과정중 항목 소속 결정 절차를 나타낸 일실시예 설명도로서, 두 개의 해쉬 테이블을 이용하여 현재 테스트중인 항목이 삽입항목인지 아니면 갱신항목인지를 판단하는 항목의 소속 결정 과정을 보여준다.
도 6에서, "27"은 이전에 삽입 완료된 트랜잭션, "28"은 "27"에 의해 생성 유지되는 후보항목 집합 테이블(2항목 테이블), "29"는 새로 삽입된 트랜잭션 데이터, "30"은 기준 해쉬 키(primary hash key) 생성 함수, "31"은 보조 해쉬 키(ordinary hash key) 생성 함수, "32"는 기준 해쉬 테이블, "33"은 보조 해쉬 테이블, "34"는 충돌집합(conflict set), "35"는 충돌항목 리스트(conflict item list), 그리고 "36"은 두 개의 해쉬를 위한 해쉬 키 생성 알고리즘을 각각 나타낸다.
항목의 소속 결정 과정에서는 두 개의 해쉬 테이블을 이용하는데, 기본적으로 해쉬 테이블에는 테스트중인 항목을 이용하여 생성된 해쉬 키의 위치에 해당 항목의 항목 식별자를 관리하도록 구성하고 있다. 만일, 테스트중인 항목에 의해 생성된 해쉬 키의 위치에 이미 다른 항목 식별자 값이 존재한다면, 이미 존재하고 있는 항목과 테스트중인 항목이 동일한 항목인지 아니면 새로운 항목인지를 판단해야 한다. 이를 위해, 해쉬 테이블에 존재하는 항목 식별자를 이용해 데이터베이스로부터 항목을 읽어 온 후, 읽어 온 항목과 테스트중인 항목을 비교하여, 충돌 여부를 판단해야 한다. 판단 결과, 읽어온 항목과 테스트중인 항목이 일치한다면, 갱신항목으로 판정하고, 일치하지 않는다면 충돌로 판정한 후 충돌에 관한 처리를 해야 한다. 이중 해쉬를 이용하여 충돌 문제를 최소화하기 위한 과정은 다음과 같다.
첫째, 기준 해쉬 테이블(p-table : primary hash table)은 기준 해쉬 키(primary_hash)를 통해 관리한다.
둘째, 보조 해쉬 테이블(o_table : ordinary hash table)은 보조 해쉬 키(ordinary_hash)를 통해 관리한다.
셋째, 기준 해쉬 키(primary_hash)와 보조 해쉬 키(ordinary_hash)의 생성 방법을 두 해쉬 키 값이 최대한 중복되지 않도록 구성한다.
이러한 구성을 통하여 다음과 같은 효과를 얻을 수 있다.
첫째, 서로 다른 두 항목에 의해 생성된 네 개의 해쉬 키 값에 대해, 설령 기준 해쉬 테이블의 해쉬 키인 primary_hash에 대해 일치한다 해도 보조 해쉬 테이블의 해쉬 키 값인 ordinary_hash의 값과 일치하는 것을 최대한 억제할 수 있다.
둘째, 첫 번째 효과의 역관계도 성립한다.
셋째, 첫 번째와 두 번째 효과의 결과로서, 두 항목에 의해 생성된 네 개의 키 값이 완전히 일치하지 않을 경우, 이는 나중에 테스트되는 항목을 데이터베이스 스캔없이 후보항목 데이터베이스에 새로 삽입되어야 할 항목으로 판정할 수 있다.
넷째, 세 번째와 동일한 이유에 의해 데이터베이스 스캔을 최소화함으로써 시스템의 성능을 극대화할 수 있다.
이상의 특성을 갖는 두 개의 해쉬 테이블을 이용한 트랜잭션 항목의 테스트 과정을 도 6을 참조하여 설명하면 다음과 같다. 먼저, 본 실시예에서는 다음과 같은 상황을 가정한다.
첫째, 이미 이전에 삽입되었던 트랜잭션이 "27"에 나타나 있다. "27"의 트랜잭션은 이전 시점에 이미 삽입되어 커밋 완료된 트랜잭션이며, 따라서 "27"의 항목들은 후보항목 데이터베이스에 모두 반영된 상태이다. "27"의 반영에 따라 나타난 후보항목 테이블이 "28"에 나타나 있다.
둘째, 새로운 트랜잭션의 삽입에 따라 이 새로 삽입된 트랜잭션에 소속된 항목이 현재 테스트되기 위해 준비된 상태이다. 이 테스트 준비 상태의 후보항목은 "29"가 된다.
이와 같은 전제하에, 도 6에서는 현재 테스트 준비 상태인 "29"를 갱신 대상 항목인지 아니면 삽입 대상인지를 결정한다.
새로 삽입된 트랜잭션 데이터(29)는 기준 해쉬 키 생성 함수(30)와 보조 해쉬 키 생성 함수(31)에 의해 기준 해쉬 키와 후보 해쉬 키를 생성한다. 그런 다음, 생성된 해쉬 키들을 기준 해쉬 테이블(32)과 보조 해쉬 테이블(33)에 적용하여 해당 해쉬 키 위치의 상태를 평가한다. 평가 결과, 만일 해쉬 테이블의 해쉬 키 위치가 널(0) 값이라면, 이는 이전에 한번도 반영되지 않은 상태이므로 새로 삽입될 항목으로 결정할 수 있다. 한편, 널(0)보다 크다면, 그 값은 후보항목 테이블내의 항목에 대한 식별자를 의미한다. 다른 한편, 널(0)보다 작은 값을 갖는다면, 이 0보다 작은 값의 역수를 구해 충돌집합(34)의 색인 값으로 이용한다.
여기서, 1차원 배열 형태로 운영되는 충돌집합(34)은 충돌집합을 이루는 항목 리스트의 시작 포인터와 종료 포인터 그리고 충돌된 항목들의 수를 유지하는 리스트이다. 이 리스트의 시작 위치 포인터를 이용하여 충돌항목 리스트(35)에서 처 음으로 나타나는 충돌항목을 검색한 후, 이 충돌항목 리스트(35)의 다음 항목 포인터를 이용하여 다음 번 충돌항목을 찾아가는 탐색 연산을 수행한다. 현재, 테스트중인 항목이 갱신 대상인지 또는 삽입 대상인지를 결정하기 위해서는, 기준 해쉬 테이블(32)과 보조 해쉬 테이블(33)에서 나타나는 항목 식별자들중 동일한 항목 식별자가 존재하지 않을 경우, 이는 새로 삽입되어야 할 항목으로 결정한다. 만일, 두 해쉬 테이블(32,33)에 동일한 항목 식별자가 존재한다면, 별도의 평가 과정을 거쳐 최종적으로 갱신대상인지 아니면 삽입대상인지를 결정한다. 이 별도의 평가 과정은 "36"에 간단하게 기술되어 있다. 이를 살펴보면, 먼저 데이터베이스상에 유지되는 후보항목 테이블(28)로부터 기준 해쉬 테이블(32)과 보조 해쉬 테이블(33)에 동시에 존재하는 후보항목 식별자에 해당하는 항목을 읽어온다. 그런 다음, 이 읽혀져 온 항목과 현재 테스트중인 항목(29)이 일치하는지를 조사한다. 조사 결과, 일치한다면 갱신 대상으로 판정하고, 그렇지 않다면 새로 삽입할 항목으로 판정하고 새로운 항목 식별자를 할당한다.
도 7 은 상기 도 6의 항목 소속 결정 절차에 대한 일실시예 상세 흐름도로서, 두 개의 해쉬 테이블을 이용하여 현재 테스트중인 항목이 삽입항목인지 갱신항목인지를 결정하는 함수에 대한 동작 과정을 나타낸다.
먼저, 테스트하고자 하는 항목 값을 이용하여 기준 해쉬 키(primary_hash)와 보조 해쉬 키(ordinary_hash)를 생성한다(37).
이후, 생성된 해쉬 키를 이용하여 해쉬 테이블을 조사한다(38). 이는 해쉬 테이블에는 후보항목 데이터베이스에 저장된 항목의 항목 식별자 값이 저장되기 때 문에 해당 해쉬 키 위치가 비워져 있는지 또는 채워져 있는지 여부에 따라 해당 항목이 이전에 취급되었는지 아니면 전혀 취급되지 않았는지를 판단할 수 있기 때문이다. 따라서, 해당 해쉬 키 위치가 비워져 있다면 이는 전에 전혀 취급되지 않은 것으로 판단하고 해당 항목을 새로 후보항목 데이터베이스에 삽입하며(44), 그렇지 않고 해당 해쉬 키 위치가 채워져 있다면 이미 존재하고 있는 항목과 현재 테스트중인 항목의 충돌 여부를 결정한다(39).
앞에서 만일 해당 해쉬 키 위치에 값이 존재한다면, 제일 먼저 조사해 봐야 할 사항이 두 해쉬 테이블(기준 해쉬 테이블과 보조 해쉬 테이블)의 해쉬 키 위치에 있는 값의 일치 여부이다(39).
만일, 두 해쉬 테이블의 항목 식별자 값이 일치한다면, 이는 테스트 중인 항목의 값을 이용해서 생성한 두 개의 해쉬 키 값이 이전의 어떤 항목에 의해 생성된 해쉬 키 값과 정확하게 일치한다는 것을 의미하며, 이렇게 될 경우 이전의 항목과 현재 테스트중인 항목이 일치할 가능성이 매우 높음을 의미한다. 그러나, 정확하게 일치하는지의 여부를 해쉬 테이블만을 이용해서 판정할 수 없으므로 데이터베이스 스캔 연산이 필요하다. 따라서, 해당 해쉬 키 위치에 있는 항목 식별자를 이용해서 후보항목 데이터베이스로부터 항목을 읽어 온다(40). 그런 다음, 이를 테스트중인 항목과 비교해 본다(41).
비교 결과, 일치하는 것으로 판정될 경우, 이 테스트중인 항목은 이전에 이미 데이터베이스에 반영된 항목이므로 갱신 대상 항목으로 설정한 후(42) 설정된 변수들을 반환하면서 함수는 종료된다(45).
비교 결과, 일치하지 않는다면, 이는 결국 테스트중인 항목이 이전에 데이터베이스에 반영되지 않았던 항목임을 의미한다. 그러나, 테스트중인 항목은 기준 해쉬 키와 후보 해쉬 키 모두에 대해 일치하는 해쉬 키를 생성해 냈다. 따라서, 일치되고 있던 이전의 항목과 현재의 테스트 항목이 해쉬 키에 대해 충돌하고 있는 것으로 판정할 수 있다. 따라서, 이 두 항목은 충돌 처리를 수행한다(43). 충돌 처리 과정(43)에서, 설정 변수들은 충돌과 0으로 설정된 후, 이 설정 변수들이 반환되면서 함수는 종료된다(45).
이처럼, 두 개의 해쉬를 이용하면, 전술한 바와 같이 데이터베이스 스캔은 테스트중인 항목의 항목 값을 이용해서 생성한 두 개의 해쉬 키 값이 이전의 어떤 항목에 의해 생성되었던 두 개의 해쉬 키 값과 일치할 때에만 수행된다. 이는 결국 불필요한 데이터베이스 스캔 연산을 최대한 억제함으로써, 성능을 극대화할 수 있게 한다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기한 바와 같은 본 발명은, 트리거와 점진적 후보항목 갱신 기법을 이용하여 실시간 연관규칙 탐사가 가능하도록 후보항목을 실시간으로 관리할 수 있으며, 특히 후보항목의 존재 여부를 검사하는데 있어 두 개의 해쉬를 이용함으로써 데이터베이스 스캔을 최소화하면서 후보항목의 빈발계수를 점진적으로 관리할 수 있으므로 실시간 처리를 하면서도 성능의 저하없이 처리할 수 있는 효과가 있다.
또한, 본 발명은 기존의 연관규칙 탐사 기법과는 달리 트리거를 이용하여 새로운 트랜잭션이 삽입될 때 자동으로 모든 과정을 수행하도록 함으로써 사용자의 개입을 최소화하면서도 실시간 연관규칙 탐사가 가능한 효과가 있다.
Claims (6)
- 컴퓨팅 시스템에서 연관규칙 탐사의 후보항목 관리 방법에 있어서,트리거를 이용하여, 신규 트랜잭션 발생시 신규 발생된 트랜잭션을 트랜잭션 데이터베이스에 삽입하고, 사건 발생에 의해 삽입된 트랜잭션 데이터를 추출하는 단계;트리거 프로세스를 호출하여, 후보항목집합 생성기를 통해 상기 트랜잭션 데이터로부터 조합 가능한 모든 후보항목들을 조합하여 후보항목집합을 생성하는 단계; 및점진적 후보항목 관리기를 통해 상기 후보항목집합을 이중 해쉬 함수를 이용하여 갱신 대상과 삽입 대상으로 분류한 다음, 실시간으로 후보항목 집합 테이블들에 반영하여, 점진적으로 후보항목을 갱신하는 단계를 포함하는 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의 능동적 후보항목 관리 방법.
- 제 1 항에 있어서,상기 트리거는,트랜잭션 데이터가 삽입될 때 트랜잭션 데이터에 포함된 단일 항목들을 순차적으로 정렬하면서 수집하는 역할을 담당하는 트리거와, 트랜잭션 데이터의 삽입이 완료된 후 이 트랜잭션 데이터를 이용하여 점진적 후보항목 갱신 연산을 직접 수행시키는 후보항목 갱신 트리거를 포함하는 것을 특징으로 하는 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의 능동적 후보항목 관리 방법.
- 제 1 항 또는 제 2 항에 있어서,상기 점진적 후보항목 관리기는,모든 후보항목들에 대해 전체 데이터베이스를 대상으로 하지 않고 현재 삽입된 트랜잭션 데이터에 대한 연산만 수행하고, 이를 이미 생성 유지하고 있는 후보항목 데이터베이스에 반영하여 점진적 연산에 의한 후보항목 관리를 수행하는 것을 특징으로 하는 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의 능동적 후보항목 관리 방법.
- 제 3 항에 있어서,상기 점진적 연산에 의한 후보항목 관리를 수행하는 과정은,평가하고자 하는 후보항목의 갯수를 설정하는 단계;첫 번째 후보항목부터 차례대로 해쉬 함수를 호출하여, 이미 존재하고 있는 항목인지, 새로 삽입될 항목인지, 아니면 기존 해쉬 테이블과 충돌이 발생한 항목인지를 조사하는 항목 소속 결정 단계;상기 항목 소속 결정 단계에서의 조사 결과, 항목이 새로 삽입될 항목이면, 새로운 항목 식별자를 부여받은 후 항목 식별자와 항목을 묶어서 삽입 항목 집합에 설정하는 단계;상기 항목 소속 결정 단계에서의 조사 결과, 항목이 상기 후보항목 데이터베이스에 이미 존재하고 있는 항목이면, 항목의 식별자를 갱신 항목 집합에 설정하는 단계;상기 항목 소속 결정 단계에서의 조사 결과, 항목이 기존 해쉬 테이블과 충돌이 발생한 항목이면, 새로운 항목 식별자를 할당하여 삽입항목에 설정하는 단계; 및설정된 항목들을 점진적 관리자 프로세스에 의해 일괄적으로 상기 후보항목 데이터베이스에 반영하는 단계를 포함하는 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의 능동적 후보항목 관리 방법.
- 제 4 항에 있어서,상기 항목 소속 결정 단계는,테스트하고자 하는 항목 값을 이용하여 기준 해쉬 키(primary_hash)와 보조 해쉬 키(ordinary_hash)를 생성하는 단계;생성된 해쉬 키를 이용하여 해쉬 테이블을 조사하는 단계;상기 조사 결과, 해당 해쉬 키 위치가 비워져 있으면, 이전에 전혀 취급되지 않은 것으로 판단하고 해당 항목을 새로 상기 후보항목 데이터베이스에 삽입하는 단계;상기 조사 결과, 해당 해쉬 키 위치가 채워져 있으며, 이미 존재하고 있는 항목과 현재 테스트중인 항목의 충돌 여부를 결정하기 위하여, 두 해쉬 테이블(기준 해쉬 테이블과 보조 해쉬 테이블)의 해쉬 키 위치에 있는 값의 일치 여부를 검사하는 단계;상기 검사 결과, 두 해쉬 테이블의 항목 식별자 값이 일치하면, 해당 해쉬 키 위치에 있는 항목 식별자를 이용해서 상기 후보항목 데이터베이스로부터 항목을 읽어와, 이를 테스트중인 항목과 비교하는 단계;상기 비교 결과, 일치하는 것으로 판정될 경우, 이 테스트중인 항목은 이전에 이미 데이터베이스에 반영된 항목이므로, 갱신 대상 항목으로 설정한 후 설정된 변수들을 반환하는 단계; 및상기 비교 결과, 일치하지 않는 것으로 판정될 경우, 이 두 항목을 충돌 처리한 후, 설정 변수들을 반환하는 단계를 포함하는 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의 능동적 후보항목 관리 방법.
- 연관규칙 탐사의 후보항목 관리를 위하여, 프로세서를 구비한 컴퓨팅 시스템에,트리거를 이용하여, 신규 트랜잭션 발생시 신규 발생된 트랜잭션을 트랜잭션 데이터베이스에 삽입하고, 사건 발생에 의해 삽입된 트랜잭션 데이터를 추출하는 기능;트리거 프로세스를 호출하여, 후보항목집합 생성기를 통해 상기 트랜잭션 데이터로부터 조합 가능한 모든 후보항목들을 조합하여 후보항목집합을 생성하는 기능; 및점진적 후보항목 관리기를 통해 상기 후보항목집합을 이중 해쉬 함수를 이용하여 갱신 대상과 삽입 대상으로 분류한 다음, 실시간으로 후보항목 집합 테이블들에 반영하여, 점진적으로 후보항목을 갱신하는 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010077008A KR100833781B1 (ko) | 2001-12-06 | 2001-12-06 | 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의능동적 후보항목 관리 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010077008A KR100833781B1 (ko) | 2001-12-06 | 2001-12-06 | 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의능동적 후보항목 관리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030046758A KR20030046758A (ko) | 2003-06-18 |
KR100833781B1 true KR100833781B1 (ko) | 2008-05-29 |
Family
ID=29573438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010077008A KR100833781B1 (ko) | 2001-12-06 | 2001-12-06 | 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의능동적 후보항목 관리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100833781B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100789771B1 (ko) * | 2005-12-08 | 2007-12-28 | 한국전자통신연구원 | 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010004460A (ko) * | 1999-06-29 | 2001-01-15 | 정선종 | 지식 탐사 방법을 이용한 대 고객 마케팅 방법 |
JP2009000451A (ja) * | 2007-06-25 | 2009-01-08 | Sankyo Co Ltd | スロットマシン |
-
2001
- 2001-12-06 KR KR1020010077008A patent/KR100833781B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010004460A (ko) * | 1999-06-29 | 2001-01-15 | 정선종 | 지식 탐사 방법을 이용한 대 고객 마케팅 방법 |
JP2009000451A (ja) * | 2007-06-25 | 2009-01-08 | Sankyo Co Ltd | スロットマシン |
Non-Patent Citations (3)
Title |
---|
논문 MMDB를 이용한 전자상거래 상품추천 시스템 [2001년도 한국정보과학회 가을 학술 발표 논문집 Vol. 28. No.2] |
논문 데이터 마이닝에서 기존의 연관규칙을 갱신하는 효율적인 앨고리듬 [공업경영학회지 제 21권 제45집 1998년 2월] |
논문 시간 연관규칙의 유지를 위한 점진적인 마이닝 기법 [2001년도 한국정보과학회 봄 학술발표논문집 Vol. 28. N0.1] |
Also Published As
Publication number | Publication date |
---|---|
KR20030046758A (ko) | 2003-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8185508B2 (en) | Adaptive filter index for determining queries affected by a DML operation | |
US8145621B2 (en) | Graphical representation of query optimizer search space in a database management system | |
US7840592B2 (en) | Estimating a number of rows returned by a recursive query | |
JP3225912B2 (ja) | 情報検索装置、方法及び記録媒体 | |
US6278998B1 (en) | Data mining using cyclic association rules | |
US8688682B2 (en) | Query expression evaluation using sample based projected selectivity | |
US8626779B2 (en) | Method and system for managing database | |
US20060048155A1 (en) | Organizing transmission of repository data | |
US20090216809A1 (en) | Method for updating databases | |
US7840552B2 (en) | Cost-based subquery correlation and decorrelation | |
CA2427228A1 (en) | Information retrieval systems for optimization of queries having maximum or minimum function aggregation predicates | |
US20080133461A1 (en) | Optimization of left and right outer join operations in database management systems | |
US20100191730A1 (en) | Efficiency in processing queries directed to static data sets | |
CN111382427B (zh) | 基于变量关联规则的缓冲区溢出检测方法 | |
US20230153286A1 (en) | Method and system for hybrid query based on cloud analysis scene, and storage medium | |
CN116383412B (zh) | 基于知识图谱的功能点扩增方法和系统 | |
KR100833781B1 (ko) | 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의능동적 후보항목 관리 방법 | |
CN109828984B (zh) | 一种分析处理的方法、装置、计算机存储介质及终端 | |
US7542606B2 (en) | Use of Hausdorff distances in the earth mover linear program | |
US20230141190A1 (en) | Late Materialization of Queried Data in Database Cache | |
CN113360357A (zh) | 数据监控方法、系统、设备及计算机程序产品 | |
US6219663B1 (en) | Method and computer program product for implementing pushdown query in a distributed object management system | |
JP4047557B2 (ja) | データベース管理システム,データベース管理処理方法,データベース管理システム用のプログラムおよびその記録媒体 | |
Qi et al. | Top-k spatial distance joins | |
US20220188314A1 (en) | Access path for database optimizer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110509 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |