KR100789771B1 - 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법 - Google Patents
트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR100789771B1 KR100789771B1 KR1020060024423A KR20060024423A KR100789771B1 KR 100789771 B1 KR100789771 B1 KR 100789771B1 KR 1020060024423 A KR1020060024423 A KR 1020060024423A KR 20060024423 A KR20060024423 A KR 20060024423A KR 100789771 B1 KR100789771 B1 KR 100789771B1
- Authority
- KR
- South Korea
- Prior art keywords
- trigger
- query
- integrated
- data stream
- stored data
- Prior art date
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 연속적으로 입력되는 데이터 스트림과 데이터베이스의 저장 데이터를 통합하여 연속 질의 처리하되, 트리거(trigger)를 이용하여 상기 저장 데이터를 실시간으로 사전 처리해 둠으로써, 통합 질의 처리시 저장 데이터 처리에 소요되는 시간을 줄여 전체 성능이 향상되도록 하기 위한, 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템 및 그 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 통합 질의 처리 시스템에 있어서, 외부로부터 연속적으로 입력되는 데이터 스트림을 관리하기 위한 데이터 스트림 관리 수단; 연동 데이터베이스에 트리거를 등록하고, 상기 등록된 트리거의 수행 결과로 결과 집합을 구성하여 실시간 제공하기 위한 트리거 결과 관리 수단; 및 상기 데이터 스트림 관리 수단으로부터 전달받는 데이터 스트림과 상기 연동 데이터베이스의 저장 데이터에 대한 통합 질의를 처리하되, 상기 연동 데이터베이스의 저장 데이터에 대해서는 상기 트리거 결과 관리 수단으로부터 전달받는 결과 집합을 참조하여 통합 질의를 처리하기 위한 실행 수단을 포함한다.
4. 발명의 중요한 용도
본 발명은 데이터 스트림 처리 시스템 등에 이용됨.
통합 연속 질의, XML 데이터 스트림 처리 시스템, 트리거
Description
도 1 은 본 발명에 따른 통합 질의 처리 시스템의 일실시예 구성도,
도 2 는 본 발명에 따른 통합 질의 처리 시스템에서 입력 데이터 스트림과 저장 데이터의 통합 연속 질의 등록 과정에 대한 일실시예 흐름도,
도 3 은 본 발명에 따른 통합 질의 처리 시스템에서 검색 엑스쿼리 트리거의 생성 및 삭제 과정에 대한 일실시예 흐름도,
도 4 는 본 발명에 따른 통합 질의 처리 시스템에서 검색 엑스쿼리 트리거의 결과 집합 관리를 위한 일실시예 데이터 구성도,
도 5 는 본 발명에 따른 통합 질의문에 대한 일실시예 설명도,
도 6 은 상기 도 5의 통합 질의문으로부터 뽑아낸 검색 엑스쿼리 트리거를 위한 질의문의 일실시예 설명도,
도 7 은 상기 도 6의 질의문을 이용해 생성한 검색 엑스쿼리 트리거를 상기 도 5의 통합 질의문에 포함시킨 상태에 대한 일실시예 설명도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
100 : XML 데이터 스트림 관리 시스템
101 : XML 데이터 스트림 소스 102 : 데이터 스트림 관리기
103 : XML 데이터베이스
104 : 검색 엑스쿼리 트리거 결과 집합 관리기
105 : 통합 연속 질의 실행기 106 : 애플리케이션
107 : 통합 연속 질의 관리기
본 발명은 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 연속적으로 입력되는 데이터 스트림과 데이터베이스의 저장 데이터를 통합하여 연속 질의 처리하되, 트리거(trigger)를 이용하여 상기 저장 데이터를 실시간으로 사전 처리해 둠으로써, 통합 질의 처리시 저장 데이터 처리에 소요되는 시간을 줄여 전체 성능이 향상되도록 위한, 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템 및 그 방법에 관한 것이다.
유비쿼터스 컴퓨팅 환경에서는 무선인식(Radio Frequency IDentification), 지피에스(Global Positioning System), 다양한 센서(예 : 온도 센서, 습도 센서)와 각종 응용 프로그램으로부터 끊임없이 생성되는 데이터를 실시간으로 처리하기 위한 연속 질의 처리 기술이 필수적으로 요구되고 있다.
센서 네트워크를 예로 들어 살펴보면, 경량의 센서 노드들이 무선통신으로 연결되는 센서 네트워크는 사람이 감시할 수 없는 지역의 환경 감시, 집과 사무실 등의 자동화 및 방범, 건강 모니터링, 이동 물체에 대한 추적, 네트워크 모니터링, 물류/유통, 웹 로그 등과 같은 각종 유비쿼터스 환경을 위한 다양한 응용 서비스들을 제공할 수 있다.
여기서, 상기와 같은 각종 응용 서비스를 위해 처리되는 데이터는 연속적으로 끊임없이 생성되고, 생성되는 데이터의 양이 시시각각 변하므로 실시간으로 처리해야하는 특성이 있다.
즉, 유비쿼터스 컴퓨팅 환경에서는 사용자 또는 애플리케이션에 의해 등록된 질의에 대하여 새로운 결과를 지속적으로 전달해 실시간으로 현 상황을 인지할 수 있도록 하기 위하여, 연속 질의(continuous query)를 처리하는 데이터 스트림 관리 시스템(data stream management system)에 대한 개발 요구가 높아지고 있다.
그러나, 유비쿼터스 컴퓨팅 환경 하에서 실시간으로 입력되는 데이터 스트림에 대한 분석만으로는 현 상황에 대한 이해 및 판단이 부정확할 수도 있다. 즉, 과거 이력 또는 관련된 정보를 기반으로 하는 통합 분석이 이뤄져야 보다 정확하고 부가가치가 높은 정보를 획득할 수 있다. 그에 따라, 데이터 스트림 관리 시스템은 연속 질의를 통해 사용자, 애플리케이션으로 고부가가치의 정보를 제공하기 위하여 실시간으로 입력되는 데이터 스트림 뿐만 아니라, 일정한 저장소의 히스토리컬 데 이터 혹은 관련된 데이터를 포함한 통합 질의(통합 연속 질의)를 지원하고 있다.
그런데, 지금까지의 대부분의 연구 및 개발은 지속적으로 입력되는 데이터 스트림에 대해서는 푸쉬 기반(push-based) 접근 방식을 채택하고, 데이터베이스의 저장 데이터에 대해서는 풀 기반(pull-based) 접근 방식을 채택하여 이를 결합하여 통합 질의에 대한 처리를 수행하였다. 그에 따라, 실시간으로 통합 질의의 처리 결과를 전달해야하는 데이터 스트림 관리 시스템에서는 데이터베이스의 저장 데이터에 대한 질의 처리 소요 시간이 데이터 스트림에 대한 질의 처리 소요 시간보다 길어 전체 통합 질의 처리시 그 질의 성능이 떨어지는 문제점이 있었다.
즉, 종래 기술에 따른 데이터 스트림 관리 시스템의 경우 데이터베이스의 저장 데이터가 변동되었는지의 여부를 알지 못해 매번 데이터베이스와 연결된 후에 질의를 수행하는 풀 기반(pull-based) 접근 방식을 취함으로써, 데이터베이스의 저장 데이터에 대한 질의 처리시 소요 시간이 길어 전체 질의 성능을 떨어뜨리는 문제점이 있었다.
한편, 데이터 스트림 관리 시스템에서의 질의 성능 향상과 관련된 선행 기술을 살펴보기로 한다.
제 1 선행 기술로서 미합중국 등록 특허 "DATA QUERY SYSTEM LOAD OPTIMIZATION(등록번호 20050044063, 등록일 2005년 2월 24일)"에 대하여 살펴보면, 관계형 데이터베이스에서 반복적으로 수행되는 질의 처리의 최적화를 위하여 트리거가 데이터베이스의 변경을 인지하면 데이터 처리 엔진이 관계형 데이터베이스를 대상으로 질의를 재수행하고 해당 질의 결과는 동일한 질의 수행에 한하여 재 사용되도록 함으로써, 관계형 데이터베이스에서 반복적으로 수행되는 질의를 최적화할 수 있는 효과가 있다. 이때, 트리거는 데이터베이스의 변경 감지의 역할만을 수행한다.
그런데, 상기 제 1 선행 기술의 경우 끊임없이 입력되는 데이터 스트림이 아니라, 관계형 데이터베이스를 대상으로 하고 동일한 질의에 대해서만 질의 결과를 재사용할 수 있는 한계가 있었다.
또한, 제 2 선행 기술로서 논문명 "Aurora : A New Model and Architecture for Data Stream Management(게재지명 VLDB Journal Vol.12 No.2, p120-139, 2003.08)"에 대하여 살펴보면, 실시간 입력되는 튜플 기반의 데이터 스트림 및 데이터베이스에 대한 연속 질의 처리를 위한 기술로서 일반 튜플 개념의 데이터를 기반으로 하여 연결점을 통한 풀 기반(pull-based) 접근 방식을 이용해 통합 질의 처리를 수행함으로써, 연결점을 통해서 실시간으로 입력되는 데이터 스트림과 데이터베이스의 저장 데이터에 대한 통합 질의 처리가 가능하도록 하는 효과가 있다.
그런데, 상기 제 2 선행 기술의 경우 튜플 개념의 데이터와 관계형 데이터베이스 기반의 데이터로 그 기술 적용이 한정되고, 데이터베이스의 저장 데이터에 대하여 풀 기반(pull-based) 접근 방식을 사용함으로써 성능상의 효율성이 떨어지는 문제점이 있었다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 연속적으로 입력 되는 데이터 스트림과 데이터베이스의 저장 데이터를 통합하여 연속 질의를 추가 처리하되, 트리거(trigger)를 이용하여 상기 저장 데이터를 실시간으로 사전 처리해 둠으로써, 통합 질의 처리시 저장 데이터 처리에 소요되는 시간을 줄여 전체 성능이 향상되도록 하기 위한, 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 장치는, 통합 질의 처리 시스템에 있어서, 외부로부터 연속적으로 입력되는 데이터 스트림을 관리하기 위한 데이터 스트림 관리 수단; 연동 데이터베이스에 트리거를 등록하고, 상기 등록된 트리거의 수행 결과로 결과 집합을 구성하여 실시간 제공하기 위한 트리거 결과 관리 수단; 및 상기 데이터 스트림 관리 수단으로부터 전달받는 데이터 스트림과 상기 연동 데이터베이스의 저장 데이터에 대한 통합 질의를 처리하되, 상기 연동 데이터베이스의 저장 데이터에 대해서는 상기 트리거 결과 관리 수단으로부터 전달받는 결과 집합을 참조하여 통합 질의를 처리하기 위한 실행 수단을 포함한다.
한편, 상기 목적을 달성하기 위한 본 발명의 방법은, 통합 질의 처리 방법에 있어서, 통합 질의 처리 시스템이 통합 질의를 등록하는 통합 질의 등록 단계; 상기 통합 질의 처리 시스템이 연동 데이터베이스의 저장 데이터에 대하여 트리거를 등록하는 트리거 등록 단계; 상기 통합 질의 처리 시스템이 상기 연동 데이터베이스가 변경됨에 따라 자동으로 수행되는 상기 트리거의 결과 집합을 실시간으로 구성하는 결과 집합 구성 단계; 상기 통합 질의 처리 시스템이 외부로부터 연속적으로 데이터 스트림을 입력받는 데이터 스트림 입력 단계; 및 상기 통합 질의 처리 시스템이 상기 데이터 스트림과 상기 연동 데이터베이스의 저장 데이터에 대한 통합 질의를 처리하되, 상기 연동 데이터베이스에 대해서는 상기 구성한 결과 집합을 참조하여 통합 질의를 처리하는 통합 질의 처리 단계를 포함한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
본 발명은, 연속적으로 입력되는 데이터 스트림과 데이터베이스의 저장 데이터에 대한 통합 질의(통합 연속 질의)를 처리하되, 데이터베이스의 저장 데이터에 대하여 트리거(trigger)를 이용하여 그 결과 집합을 미리 산출해 놓음으로써, 풀 기반(pull-based) 접근 방식에 따른 성능 감소를 해소하고 전체 질의 성능을 향상 시킬 수 있도록 한다.
이하의 상세한 설명에서는, 인터넷 및 애플리케이션 사이에 전달되는 데이터가 엑스엠엘(eXtensible Markup Language, 이하 XML이라고 함) 형식을 따르는 점에 착안하여, XML 데이터 스트림과 XML 데이터베이스를 예로 들어 설명하기로 한다.
도 1 은 본 발명에 따른 통합 질의 처리 시스템의 일실시예 구성도이다.
도 1에 도시된 바와 같이, 본 발명에 따른 통합 질의 처리 시스템은, 외부의 다양한 XML 데이터 스트림 소스(101)로부터 연속적으로 입력받는 XML 데이터 스트림을 관리하기 위한 데이터 스트림 관리기(102), 하나 이상의 XML 데이터베이스(103)에 검색 엑스쿼리 트리거를 등록하고 각각의 저장 데이터에 대한 질의 결과를 전달받아 결과 집합을 관리하기 위한 검색 엑스쿼리 트리거 결과 관리기(104), 데이터 스트림 관리기(102)로부터 XML 데이터 스트림을 전달받고 검색 엑스쿼리 트리거 결과 집합 관리기(104)로부터 저장 데이터에 대한 질의 처리의 결과 집합을 전달받아 이를 참조하여 상기 XML 데이터 스트림 및 저장 데이터에 대한 통합 연속 질의를 처리한 후, 그 결과를 외부의 애플리케이션(106)으로 전달하기 위한 통합 연속 질의 실행기(105), 및 연속 질의를 등록/삭제하기 위한 통합 연속 질의 관리기(107)를 포함한다.
이때, 검색 엑스쿼리 트리거 결과 관리기(104)는 XML 데이터 스트림 관리 시스템(100)과 연동 되어 있는 하나 이상의 XML 데이터베이스(103)로부터 실시간으로 각 저장 데이터에 대한 질의 결과를 전달받는다. 이를 위해, 검색 엑스쿼리 트리거 결과 관리기(104)는 검색 엑스쿼리 트리거를 각 XML 데이터베이스(103)에 등록하 고, 내부 데이터에 변경이 발생할 때마다 상기 등록된 검색 엑스쿼리 트리거를 자동으로 수행하도록 한다.
즉, 상기 XML 데이터베이스(103)는 데이터베이스의 변경이 발생함에 따라 기 등록된 검색 엑스쿼리 트리거를 수행하고, 그 결과를 XML 데이터 스트림 관리 시스템(100)의 검색 엑스쿼리 트리거 결과 집합 관리기(104)로 실시간 전달함으로써, 통합 연속 질의 처리시에 이미 질의 처리가 완료된 트리거 결과를 참조할 수 있도록 한다. 그에 따라, 데이터베이스의 저장 데이터에 대한 풀 기반(pull-based) 접근에 따른 성능 저하를 탈피하여 전체 질의 성능이 향상될 수 있도록 한다.
여기서, XML 데이터베이스(103)는 별도 요청에 따라 엑스쿼리(XQuery) 구문 구조를 따르는 엑스쿼리 트리거 질의를 내부에 등록하고, XML 데이터의 추가, 변경, 및 삭제에 따라 자동으로 기 등록된 검색 엑스쿼리 트리거의 질의문을 수행하여 그 결과를 제공한다.
그리고, 통합 연속 질의 관리기(107)는 연속 질의 등록 및 삭제 기능을 제공하는 구성요소로서, 연속 질의 등록시에 상기 연속 질의의 파싱 및 정당성 검사를 수행하고 통합 질의시에는 트리거의 생성에 따른 작업을 수행하여 통합 연속 질의 실행기(105)를 위한 환경을 구축한다. 또한, 연속 질의 삭제시에는 트리거의 삭제 여부를 검사하고 이에 따른 작업을 수행한다. 상기 통합 연속 질의 관리기(107)의 연속 질의 등록과 관련된 상세한 동작은 후술되는 도 2를 참조하여 살펴보기로 한다.
그리고, XML 데이터 스트림 관리 시스템(100)은 외부의 무선인식 센서(RFID sensor)를 포함하는 다양한 센서, 애플리케이션 등의 XML 데이터 스트림 소스(101)로부터 끊임없이 XML 데이터 스트림을 입력받고, 검색 엑스쿼리 트리거를 지원하는 하나 이상의 XML 데이터베이스(103)와 연동하여 저장 데이터에 대한 접근이 가능하다. 상기 XML 데이터 스트림 관리 시스템(100)은 상기 입력받는 XML 데이터 스트림과 XML 데이터베이스(103)의 저장 데이터에 대하여 등록 질의(즉, 통합 연속 질의)를 수행하고, 그로부터 발생하는 결과를 다른 애플리케이션(106)으로 실시간 전달한다.
도 2 는 본 발명에 따른 통합 질의 처리 시스템에서 입력 데이터 스트림과 저장 데이터의 통합 연속 질의 등록 과정에 대한 일실시예 흐름도이다.
먼저, XML 데이터 스트림 관리 시스템(100)은 등록 대상이 되는 연속 질의를 엑스쿼리 파서를 이용하여 파싱한다(201).
그리고, 상기 파싱한 연속 질의에 대하여 정당성 검사를 수행하여(202) 정당성 여부를 판단한다(203). 이때, 정당성 검사는 구문 검사를 통해 질의하고자 하는 소스가 존재하는지의 여부, 데이터에 대한 지정이 유효한지의 여부 등을 검사한다.
상기 정당성 여부 판단 결과(203), 정당한 연속 질의가 아닐 경우에는 종료한다.
한편, 상기 정당성 여부 판단 결과(203), 정당한 연속 질의일 경우에는 통합 질의인지를 판단한다(204).
상기 통합 질의 여부 판단 결과(204), 통합 질의(즉, 통합 연속 질의)가 아닐 경우 연속 질의 정보를 저장한다(210).
한편, 상기 통합 질의 여부 판단 결과(204), 통합 질의(즉, 통합 연속 질의)일 경우 상기 연속 질의문으로부터 XML 데이터베이스(103)의 저장 데이터에 대한 질의 부분을 분할하여 별도의 질의문으로 구성한다(205). 이때, 상기 구성된 별도의 질의문은 엑스쿼리 구문을 따른다. 그리고, 상기 구성된 별도의 질의문이 검색 엑스쿼리 트리거를 통해 수행될 수 있는지의 여부를 판단한다(206).
상기 트리거 가능 여부 판단 결과(206), 검색 엑스쿼리 트리거를 통해 질의 가능한 경우에는 검색 엑스쿼리 트리거를 생성하여 XML 데이터베이스(103)에 등록하고(207), XML 데이터베이스(103)로부터 반환된 검색 엑스쿼리 트리거의 결과 집합을 구성하여 통합 연속 질의 처리시에 접근할 수 있도록 한다(208). 그리고, 상기의 트리거 및 트리거 결과 집합과 연속 질의와의 연관 정보 등을 저장한다(209).
반면에, 상기 트리거 가능 여부 판단 결과(206), 불가능한 경우에는 추후 질의 처리를 위해 해당 XML 데이터베이스(103)를 대상으로 구성한 상기 질의문을 연속 질의 관련 정보에 저장한다(211).
이때, 검색 엑스쿼리 트리거를 통해 질의 가능한지의 여부는 상기 구성된 별도의 질의문이 실시간으로 변경되는 값을 포함하는지의 여부에 따라 결정되는 것으로, 검색 엑스쿼리 트리거를 위한 질의는 연속 질의 처리시에 입력되는 데이터 스트림의 값과 같이 실시간으로 변경되는 값을 포함하지 않아야 한다. 즉, 검색 엑스쿼리 트리거는 XML 데이터베이스(103)에 등록되어 상기 XML 데이터베이스(103)가 변경될 때마다 자동으로 실행되어야 하므로, 질의가 정적으로 고정되어 있어야 한다.
상기와 같은 과정을 통해 등록된 통합 연속 질의는 XML 데이터 스트림 관리 시스템(100)으로 입력되는 데이터 스트림에 대하여 반복적으로 수행된다. 반면에, XML 데이터베이스(103)에 등록된 검색 엑스쿼리 트리거는 XML 데이터 스트림 관리 시스템(100)의 동작과는 별도로 상기 XML 데이터베이스(103)에 변경이 발생할 때마다 자동으로 검색 엑스쿼리 트리거를 수행하여 그 질의 결과 집합을 XML 데이터 스트림 관리 시스템(100)으로 전달한다. 그에 따라, XML 데이터 스트림과 XML 데이터베이스(103)의 저장 데이터에 대한 통합 연속 질의 처리시, XML 데이터 스트림 관리 시스템(100)은 XML 데이터베이스(103)를 대상으로 하는 질의 수행을 검색 엑스쿼리 트리거의 결과 집합을 참조하는 것으로 완료하게 된다.
도 3 은 본 발명에 따른 통합 질의 처리 시스템에서 검색 엑스쿼리 트리거의 생성 및 삭제 과정에 대한 일실시예 흐름도이다.
먼저, 검색 엑스쿼리 트리거에 대한 요청 기능의 종류(생성/삭제)를 판단한다(301).
상기 요청 기능 종류 판단 결과(301), 검색 엑스쿼리 트리거의 생성을 요청받았을 경우 생성하고자 하는 검색 엑스쿼리 트리거를 검색하여(302) 그 존재 여부를 판단한다(303).
상기 트리거 존재 여부 판단 결과(303), 해당되는 검색 엑스쿼리 트리거가 존재하지 않는 경우에는 해당 XML 데이터베이스(103)에 검색 엑스쿼리 트리거를 생성 및 등록하고(305), 트리거의 생성과 함께 발생하는 트리거 결과 집합을 통합 질의 처리시에 접근할 수 있도록 구성(306)한 후 상기 검색 엑스쿼리 트리거의 이름 을 반환한다(307). 이때, 트리거 결과 집합을 구성한 후에 사용자 수를 1로 설정한다. 여기서, "사용자가 있다"란 "트리거가 생성되었다"는 것을 의미한다.
반면에, 상기 트리거 존재 여부 판단 결과(303), 해당되는 검색 엑스쿼리 트리거가 이미 존재하는 경우에는 트리거 결과 집합의 총 사용자 수(정확하게는, 통합 질의 수)를 1 증가시키고(304), 해당되는 검색 엑스쿼리 트리거의 이름을 반환하는 과정(307)으로 진행한다.
한편, 상기 요청 기능 종류 판단 결과(301), 검색 엑스쿼리 트리거의 삭제를 요청받았을 경우 해당되는 검색 엑스쿼리 트리거를 찾아내(308) 트리거 결과 집합의 총 사용자 수를 확인한다(309). 상기 확인 결과(309), 총 사용자 수가 1보다 크지 않을 경우 해당 XML 데이터베이스(103)에 등록된 검색 엑스쿼리 트리거를 삭제하고(310), 총 사용자 수가 1보다 큰 경우에는 트리거 결과 집합의 총 사용자 수를 1만큼 감소시킨다(311). 그리고, 종료한다.
상기와 같이, 검색 엑스쿼리 트리거의 결과 집합은 여러 통합 질의가 공유할 수 있도록 한다. 즉, 검색 엑스쿼리 트리거의 생성 요청시 이미 존재하는 트리거의 경우에는 생성되어 있는 결과 집합을 이용할 수 있도록 기존 트리거의 이름을 반환한다. 동일하게, 검색 엑스쿼리 트리거의 삭제 요청시 결과 집합의 사용자가 삭제 요청한 객체 외 존재하지 않을 경우 트리거 및 트리거 결과 집합을 삭제한다. 이러한 트리거 및 트리거의 결과 집합의 공유는 시스템 리소스의 사용면에서 최적화의 효과를 제공한다.
도 4 는 본 발명에 따른 통합 질의 처리 시스템에서 검색 엑스쿼리 트리거의 결과 집합 관리를 위한 일실시예 데이터 구성도이다.
도 4에 도시된 바와 같이, 검색 엑스쿼리 트리거의 결과 집합 리스트(402)는 XML 데이터 스트림 관리 시스템(100)과 연동 되어 있는 각 XML 데이터베이스(103)에 일대일로 대응되도록 존재한다. 여기서는, "XMLDB1"이라는 XML 데이터베이스(103)의 경우를 예로 나타내고 있다.
상기 "XMLDB1"의 검색 엑스쿼리 트리거의 결과 집합 리스트(402)는 "XMLDB1"을 기반으로 하는 검색 엑스쿼리 트리거의 결과 집합을 모두 포함한다. 특정 트리거의 결과 집합은 해당 트리거의 이름을 통해 접근 가능한데, 트리거 생성시 XML 데이터 스트림 관리 시스템(100) 내에서 유일성을 가지도록 트리거의 이름이 부여된다.
또한, 특정 트리거의 결과 집합(405)은 트리거와 관련된 질의문을 수행한 결과 집합, 총 사용자 수(403), 결과 집합의 참조/변경시 필요한 잠금(404)에 관련된 정보를 포함한다. 여기서, 사용자 수는 실제 트리거의 결과 집합에 대하여 접근 가능한(사용하고 있는) 총 통합 질의의 수를 말한다. 트리거가 처음으로 생성되어 결과 집합을 구성할 시점에는 사용자 수가 1이며, 추후 동일한 트리거의 생성을 요청받음에 따라 1만큼 사용자 수를 증가시킨다. 반대로, 상기 동일한 트리거의 삭제를 요청받는 경우에는 1만큼 사용자 수를 감소시키고, 최종적으로 사용자 수가 0이 되는 시점에 트리거 및 트리거의 결과 집합을 함께 삭제한다.
이때, 검색 엑스쿼리 트리거의 결과 집합은 XML 데이터 스트림 관리 시스템(100)의 통합 질의(통합 연속 질의) 및 XML 데이터베이스(103)가 함께 사용한다. 여기서, 상기 통합 질의는 트리거의 결과 집합을 참조, 즉 읽기를 수행할 수 있고, XML 데이터베이스(103)는 상기 트리거의 결과 집합에 대한 변경을 수행할 수 있다. 그러므로, 결과 집합의 변경시에 읽기가 수행되거나, 읽기 수행시에 변경이 수행되지 않도록 하기 위해, 트리거의 결과 집합에 대한 연산 수행시 잠금(404) 관리 기법을 사용한다. 즉, 읽거나 변경하기 위해서는 잠금을 획득해야 하고, 읽기/변경 작업을 완료한 후에는 잠금 해제하도록 하여 읽기와 변경 작업이 함께 수행되지 않도록 한다. XML 데이터베이스(103) 및 XML 데이터 스트림 관리 시스템(100)의 질의 수행 등의 동작은 별도로 이루어지므로, 오버헤드가 적어 위의 잠금 관리 기법이 가능하다.
도 5 는 본 발명에 따른 통합 질의문에 대한 일실시예 설명도이다.
도 5에 도시된 바와 같이, XML 데이터 스트림 관리 시스템(100)으로 입력되는 XML 데이터 스트림과 XML 데이터베이스(103)의 저장 데이터에 대한 통합 질의문은 다음과 같다. 엑스쿼리를 바탕으로 "FLWOR"을 구성할 수 있고, "USING"절은 엑스쿼리가 문서를 바탕으로 이루어지는 반면에 데이터 스트림 관리 시스템(100)은 데이터 소스를 기반으로 이루어지므로 이를 위하여 확장한 것이다. 각 데이터 소스는 이름을 이용하여 구분 가능하며, 이름을 통해 데이터 스트림 소스인지 혹은 XML 데이터베이스의 소스인지 알 수 있다.
상기 통합 질의문의 내용을 살펴보면, "DataStreamSource"로부터 입력되는 데이터 스트림으로부터 "/Building/Room/Temperature"의 값이 "HistoricalDataSource"에 저장되어 있는 모든 데이터로부터 "Building/Temperature"의 최대 값보다 큰 경우에 방 번호와 현재 온도를 "<REPORT>"란 엘리먼트를 생성하여 전달해 달라는 내용이다.
도 6 은 상기 도 5의 통합 질의문으로부터 뽑아낸 검색 엑스쿼리 트리거를 위한 질의문의 일실시예 설명도이다.
"HistoricalDataSource"라는 이름의 소스는 XML 데이터베이스(103)로 엑스쿼리 문의 수행이 가능하고 이에 대한 연동 정보는 XML 데이터 스트림 관리 시스템(100)이 획득하고 있으므로, 도 6의 질의문을 이용하여 검색 엑스쿼리 트리거를 생성한다. 검색 엑스쿼리 트리거 생성시 사용되는 질의문의 내용은 "Building이란 문서들로부터 Temperature를 검색하여 최대 값을 반환하라"이고, XML 데이터베이스(103)는 검색 엑스쿼리 트리거의 생성과 동시에 질의문을 수행하고 그 결과 값을 반환한다. 검색 엑스쿼리 트리거가 생성된 이후에는, XML 데이터베이스(103)에 "Building"이란 문서가 추가, 삭제, 변경될 때마다 상기 검색 엑스쿼리 트리거의 질의문이 수행되고, 그 결과는 XML 데이터 스트림 관리 시스템(100)으로 반환된다.
도 7 은 상기 도 6의 질의문을 이용해 생성한 검색 엑스쿼리 트리거를 상기 도 5의 통합 질의문에 포함시킨 상태에 대한 일실시예 설명도이다.
도 7에 도시된 바와 같이, XML 데이터베이스(103)에 대한 질의 부분을 트리거 함수로 변환하여, 실제 통합 질의 처리시에 검색 엑스쿼리 트리거의 이름을 이용하여 상기 검색 엑스쿼리 트리거의 결과 집합에 접근하도록 할 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디 스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 데이터 스트림 관리 시스템에서 데이터 스트림 및 데이터베이스의 저장 데이터에 대한 통합 질의 처리시 검색 엑스쿼리 트리거를 이용하여 상기 데이터베이스의 저장 데이터에 대한 질의 결과를 사전에 산출해 둠으로써, 전체 질의 성능을 향상시킬 수 있는 효과가 있다.
즉, 본 발명은 풀 기반(pull-based) 접근 방식으로 데이터베이스의 저장 데이터를 처리하는 것이 아니라, 데이터베이스에 변경이 발생할 때마다 검색 엑스쿼리 트리거의 질의문을 실시간으로 수행하여 그 결과 집합을 산출해 둠으로써, 데이터베이스의 저장 데이터에 대한 처리 소요 시간을 줄여 전체 질의 성능을 향상시킬 수 있는 효과가 있다.
Claims (18)
- 통합 질의 처리 시스템에 있어서,외부로부터 연속적으로 입력되는 데이터 스트림을 관리하기 위한 데이터 스트림 관리 수단;연동 데이터베이스에 트리거를 등록하고, 상기 등록된 트리거의 수행 결과로 결과 집합을 구성하여 실시간 제공하기 위한 트리거 결과 관리 수단; 및상기 데이터 스트림 관리 수단으로부터 전달받는 데이터 스트림과 상기 연동 데이터베이스의 저장 데이터에 대한 통합 질의를 처리하되, 상기 연동 데이터베이스의 저장 데이터에 대해서는 상기 트리거 결과 관리 수단으로부터 전달받는 결과 집합을 참조하여 통합 질의를 처리하기 위한 실행 수단을 포함하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템.
- 제 1 항에 있어서,상기 데이터 스트림 관리 수단은,외부로부터 연속적으로 입력되는 엑스엠엘 데이터 스트림을 관리하고,상기 트리거 결과 관리 수단은,하나 이상의 엑스엠엘 데이터베이스에 검색 엑스쿼리 트리거를 등록하고, 상기 등록된 검색 엑스쿼리 트리거의 수행 결과로 결과 집합을 구성하여 실시간 제공하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템.
- 제 1 항 또는 제 2 항에 있어서,상기 트리거 결과 관리 수단은,상기 연동 데이터베이스에 변경이 발생함에 따라 자동으로 수행되는 트리거의 결과 집합을 구성하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템.
- 제 3 항에 있어서,상기 트리거 결과 관리 수단은,트리거의 질의문을 수행한 결과, 총 사용자 수, 잠금에 관련된 정보를 결과 집합으로서 관리하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템.
- 제 4 항에 있어서,상기 트리거 결과 관리 수단은,트리거 생성 요청시, 생성하고자 하는 트리거가 이미 존재하는 경우 해당 트리거의 총 사용자 수를 1 증가시키고 상기 트리거의 이름을 반환하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템.
- 제 4 항에 있어서,상기 트리거 결과 관리 수단은,트리거 삭제 요청시, 삭제하고자 하는 트리거의 총 사용자 수가 1보다 큰 경우 사용자 수를 1 감소시키는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템.
- 제 4 항에 있어서,상기 트리거 결과 관리 수단은,트리거의 결과 집합에 대한 연산 수행시 잠금 기법을 사용하되, 잠금을 획득한 후에 연산을 수행하고 연산이 완료된 후에는 잠금 해제하도록 하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시 스템.
- 제 3 항에 있어서,상기 트리거 결과 관리 수단은,각 연동 데이터베이스에 일대일로 대응되도록 결과 집합 리스트를 관리하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템.
- 제 3 항에 있어서,상기 실행 수단은,상기 데이터 스트림 관리 수단으로부터 전달받는 데이터 스트림과 상기 연동 데이터베이스의 저장 데이터에 대한 통합 연속 질의를 처리하여 그 결과를 외부로 출력하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 시스템.
- 통합 질의 처리 방법에 있어서,통합 질의 처리 시스템이 통합 질의를 등록하는 통합 질의 등록 단계;상기 통합 질의 처리 시스템이 연동 데이터베이스의 저장 데이터에 대하여 트리거를 등록하는 트리거 등록 단계;상기 통합 질의 처리 시스템이 상기 연동 데이터베이스가 변경됨에 따라 자동으로 수행되는 상기 트리거의 결과 집합을 실시간으로 구성하는 결과 집합 구성 단계;상기 통합 질의 처리 시스템이 외부로부터 연속적으로 데이터 스트림을 입력받는 데이터 스트림 입력 단계; 및상기 통합 질의 처리 시스템이 상기 데이터 스트림과 상기 연동 데이터베이스의 저장 데이터에 대한 통합 질의를 처리하되, 상기 연동 데이터베이스에 대해서는 상기 구성한 결과 집합을 참조하여 통합 질의를 처리하는 통합 질의 처리 단계를 포함하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 방법.
- 제 10 항에 있어서,상기 통합 질의 처리 단계는,외부로부터 연속적으로 입력되는 엑스엠엘 데이터 스트림과, 엑스엠엘 데이터베이스의 저장 데이터에 대한 통합 질의를 처리하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 방법.
- 제 10 항 또는 제 11 항에 있어서,상기 통합 질의 등록 단계는,통합 연속 질의를 등록하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 방법.
- 제 12 항에 있어서,상기 통합 질의 등록 단계는,연속 질의를 파싱하는 파싱 단계;상기 파싱한 연속 질의에 대한 정당성을 확인하는 정당성 검사 단계;상기 연속 질의가 통합 연속 질의임을 확인하는 확인 단계;상기 통합 연속 질의를 분할하여 상기 연동 데이터베이스의 저장 데이터에 대한 별도의 질의문을 구성하는 질의문 분할 단계;상기 구성한 별도의 질의문이 트리거를 통해 수행 가능한 경우 트리거를 생성하여 상기 연동 데이터베이스에 등록하는 등록 단계;상기 트리거를 수행하여 결과 집합을 구성하는 결과 집합 구성 단계; 및상기 트리거 및 트리거의 결과 집합과 연속 질의와의 연관 정보를 저장하는 저장 단계를 포함하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 방법.
- 제 13 항에 있어서,상기 질의문 분할 단계는,엑스쿼리 구문에 따른 별도의 질의문을 구성하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 방법.
- 제 13 항에 있어서,상기 등록 단계는,상기 구성한 별도의 질의문이 실시간으로 변경되는 값을 포함하고 있지 않으면 트리거를 통해 수행 가능한 질의문으로 판단하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 방법.
- 제 12 항에 있어서,상기 결과 집합 구성 단계는,트리거의 질의문을 수행한 결과, 총 사용자 수, 잠금에 관련된 정보를 결과 집합으로서 구성하는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 방법.
- 제 16 항에 있어서,상기 트리거 등록 단계는,트리거 생성 요청시, 생성하고자 하는 트리거가 이미 존재하는 경우 해당 트리거의 총 사용자 수를 1 증가시키는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 방법.
- 제 16 항에 있어서,상기 트리거 등록 단계는,트리거 삭제 요청시, 삭제하고자 하는 트리거의 총 사용자 수가 1보다 큰 경우 사용자 수를 1 감소시키는 것을 특징으로 하는 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합 질의 처리 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/594,641 US20070136254A1 (en) | 2005-12-08 | 2006-11-08 | System and method for processing integrated queries against input data stream and data stored in database using trigger |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050119397 | 2005-12-08 | ||
KR20050119397 | 2005-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070060992A KR20070060992A (ko) | 2007-06-13 |
KR100789771B1 true KR100789771B1 (ko) | 2007-12-28 |
Family
ID=38356931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060024423A KR100789771B1 (ko) | 2005-12-08 | 2006-03-16 | 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100789771B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100778314B1 (ko) | 2006-08-21 | 2007-11-22 | 한국전자통신연구원 | 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법 |
KR20120122136A (ko) | 2011-04-28 | 2012-11-07 | 삼성전자주식회사 | 데이터 스트림 관리 시스템에서의 부하 경감을 조절하는 방법 및 장치 |
KR101955376B1 (ko) | 2016-12-29 | 2019-03-08 | 서울대학교산학협력단 | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030046758A (ko) * | 2001-12-06 | 2003-06-18 | 주식회사 케이티 | 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의능동적 후보항목 관리 방법 |
JP2004030372A (ja) | 2002-06-27 | 2004-01-29 | Komatsu Ltd | データ参照システム、データ参照方法、およびこの方法をコンピュータに実行させるためのプログラム |
KR20040088397A (ko) * | 2003-04-01 | 2004-10-16 | 마이크로소프트 코포레이션 | 트랜잭션적으로 일관성있는 트리거 기반 데이터베이스변경 추적 방법 및 시스템 |
KR20050001422A (ko) * | 2003-06-25 | 2005-01-06 | 마이크로소프트 코포레이션 | 캐시 엔트리를 무효화시키는 데 사용될 수 있는데이터베이스 테이블 변경 정보의 등록 및 검색 |
-
2006
- 2006-03-16 KR KR1020060024423A patent/KR100789771B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030046758A (ko) * | 2001-12-06 | 2003-06-18 | 주식회사 케이티 | 트리거와 점진적 갱신 기법을 이용한 연관규칙 탐사의능동적 후보항목 관리 방법 |
JP2004030372A (ja) | 2002-06-27 | 2004-01-29 | Komatsu Ltd | データ参照システム、データ参照方法、およびこの方法をコンピュータに実行させるためのプログラム |
KR20040088397A (ko) * | 2003-04-01 | 2004-10-16 | 마이크로소프트 코포레이션 | 트랜잭션적으로 일관성있는 트리거 기반 데이터베이스변경 추적 방법 및 시스템 |
KR20050001422A (ko) * | 2003-06-25 | 2005-01-06 | 마이크로소프트 코포레이션 | 캐시 엔트리를 무효화시키는 데 사용될 수 있는데이터베이스 테이블 변경 정보의 등록 및 검색 |
Also Published As
Publication number | Publication date |
---|---|
KR20070060992A (ko) | 2007-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100778314B1 (ko) | 사용자 정의 공유 트리거를 이용한 데이터 스트림과 저장데이터에 대한 통합 연속 질의 처리 시스템 및 그 방법 | |
US20070136254A1 (en) | System and method for processing integrated queries against input data stream and data stored in database using trigger | |
CN104967620B (zh) | 一种基于属性访问控制策略的访问控制方法 | |
JP5527027B2 (ja) | スキーマ定義生成装置、スキーマ定義生成方法およびスキーマ定義生成プログラム | |
Su et al. | Smartsupply: smart contract based validation for supply chain blockchain | |
Honle et al. | Benefits of integrating meta data into a context model | |
Pauwels et al. | Linked data | |
CN102402522A (zh) | 数据查询系统及方法 | |
Wang et al. | Efficient computation of g-skyline groups | |
US20060161525A1 (en) | Method and system for supporting structured aggregation operations on semi-structured data | |
Ge et al. | Adaptive analytic service for real-time internet of things applications | |
KR100789771B1 (ko) | 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법 | |
EP2041679A1 (en) | Semantic aware processing of xml documents | |
CN102216930A (zh) | Web请求调度方法及系统 | |
Huo et al. | Efficient query processing for streamed XML fragments | |
Leida et al. | Semantics-aware data integration for heterogeneous data sources | |
KR100931310B1 (ko) | 사용자 정의 공유 확장 트리거를 이용한 통합 연속 질의처리장치 및 그 방법 | |
Alrammal et al. | Path tree: document synopsis for xpath query selectivity estimation | |
Yu et al. | Towards linked data conventions for delivery of environmental data using netCDF | |
Frank et al. | Lsane: Collaborative validation and enrichment of heterogeneous observation streams | |
Idoudi et al. | How to model a real-time database? | |
Davies et al. | Data platforms: interoperability and insight | |
Tang et al. | Searching the Internet of Things using coding enabled index technology | |
Al-Ghezi | Universal Workload-based Graph Partitioning and Storage Adaption for Distributed RDF Stores | |
Kim et al. | Entity resolution approach of data stream management systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20121129 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20131128 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |