KR100558765B1 - 적응형 경로 인덱스를 이용한 xml 질의 수행 방법 - Google Patents

적응형 경로 인덱스를 이용한 xml 질의 수행 방법 Download PDF

Info

Publication number
KR100558765B1
KR100558765B1 KR1020020070634A KR20020070634A KR100558765B1 KR 100558765 B1 KR100558765 B1 KR 100558765B1 KR 1020020070634 A KR1020020070634 A KR 1020020070634A KR 20020070634 A KR20020070634 A KR 20020070634A KR 100558765 B1 KR100558765 B1 KR 100558765B1
Authority
KR
South Korea
Prior art keywords
xml
path
index
path index
query
Prior art date
Application number
KR1020020070634A
Other languages
English (en)
Other versions
KR20040042358A (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 KR1020020070634A priority Critical patent/KR100558765B1/ko
Priority to US10/453,682 priority patent/US7260572B2/en
Publication of KR20040042358A publication Critical patent/KR20040042358A/ko
Application granted granted Critical
Publication of KR100558765B1 publication Critical patent/KR100558765B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (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

본 발명은 XML 데이터에 대하여 자주 사용되는 검색 패턴을 이용하여 XML 데이터의 검색 속도를 획기적으로 향상시키며 기존의 인덱스에 비하여 저장 공간을 감소시킬 수 있는 적응형 경로 인덱스를 이용한 XML 질의 처리 방법에 관한 것으로, XML 데이터를 그래프 형태의 XML 그래프로 표현하는 제 1 단계; 전에 수행된 XML 질의들에서 추출한 자주 사용되는 경로(frequently used paths)와 상기 그래프로부터 적응형 경로 인덱스를 생성하고 갱신하는 제 2 단계; 상기 적응형 경로 인덱스를 이용하여 XML 질의를 처리하는 제 3 단계;를 포함하는 것을 특징으로 하는 적응형 경로 인덱스를 이용한 XML 질의 수행 방법을 제공함으로써, XML 데이터의 검색시에 적응형 경로 인덱스를 이용하여 자주 사용되는 경로들을 활용하여 보다 효율적으로 XML 질의 결과를 찾아낼 수 있으며 XML 질의의 패턴이 바뀌는 경우에 이를 반영하여 인덱스를 갱신하는 부담을 감소시키는 효과가 있다.
XML, 적응형 경로 인덱스, 해쉬 트리, 익스텐트, IDREF

Description

적응형 경로 인덱스를 이용한 XML 질의 수행 방법 {METHOD FOR EXECUTING XML QUERY USING ADAPTIVE PATH INDEX}
도 1은 본 발명에 따른 적응형 경로 인덱스의 관리 구조를 도시한 도면,
도 2는 XML 데이터를 예시한 도면,
도 3은 XML 데이터의 구조를 표현한 도면,
도 4는 적응형 경로 인덱스를 예시한 도면,
도 5는 적응형 경로 인덱스를 위한 해쉬 트리 내의 해쉬 테이블 구조를 도시한 도면,
도 6은 초기 적응형 경로 인덱스 생성 알고리즘을 도시한 도면,
도 7은 초기 적응형 경로 인덱스를 예시한 도면,
도 8은 자주 사용되는 경로 추출 알고리즘을 도시한 도면,
도 9는 적응형 경로 인덱스의 갱신 알고리즘을 도시한 도면,
도 10은 Play 데이터에 대한 단일 경로 표현식의 성능을 도시한 그래프,
도 11은 FlixML 데이터에 대한 단일 경로 표현식의 성능을 도시한 그래프,
도 12는 GedML 데이터에 대한 단일 경로 표현식의 성능을 도시한 그래프,
도 13은 복합 경로 질의의 성능을 비교 도시한 그래프,
도 14는 값-경로 혼합 질의의 성능을 비교 도시한 그래프.
본 발명은 인터넷 상의 데이터 표현 및 교환의 표준인 XML(Extensible Markup Language, 참고 문헌: T. Bray, J. Paoli, C. M. Sperberg-McQueen, and E. Maler. Extensible markup language (xml) 1.0 (second edition). W3C)로 나타내어진 데이터를 효율적으로 검색할 수 있는 인덱스 구조와 인덱스 관리 방안에 대한 것으로서, 특히 XML 데이터에 대하여 자주 사용되는 검색 패턴을 이용하여 XML 데이터의 검색 속도를 획기적으로 향상시키며 기존의 인덱스에 비하여 저장 공간을 감소시킬 수 있는 적응형 경로 인덱스를 이용한 XML 질의 처리 방법에 관한 것이다.
인터넷의 등장은 전자 형태의 다양한 정보의 극적인 증가를 유발하였다. XML은 인터넷에서 기존에 사용하던 HTML의 한계를 극복하고 SGML의 복잡함을 해결하는 방안으로 1998년 W3C에서 발표한 것이다. XML은 정형적(regular) 구조로부터 비정형적(irregular) 구조, 평탄한(flat) 구조로부터 깊게 내포된(deeply nested) 구조에 이르기까지 다양한 형태의 자료를 표현할 수 있다. 이러한 XML의 유연성 때문에 XML은 차세대 웹의 데이터 표현 및 교환의 표준 언어로서 각광 받고 있다.
XML로 표현되어 있는 정보를 검색하기 위한 다양한 질의 언어들이 제안된 바 있다. XPath[참고 문헌: J. Clark and S. DeRose. XML path language(XPath) version 1.0. W3C]와 XQuery[참고 문헌: S. Boag, D. Chamberlin, M. Fernandez, D. Florescu, J. Robie, J. Simeon, and M. Stefanescu. XQuery 1.0: An XML query language. W3C] 같은 XML 질의 언어들은 XML 엘리먼트(element)로 이루어진 비정형적 구조를 탐색하기 위하여 경로 표현식(path expression)을 사용한다. 따라서, 주어진 경로 표현식에 따라서 비정형적 구조의 XML 데이터를 탐색해 나가는 것이 XML 질의의 처리를 위한 중요한 요소이다. 그러나, XML 데이터를 구성하는 엘리먼트들은 디스크의 다른 위치에 분산되어 있을 수 있으므로, XML 질의 처리의 성능은 매우 저하된다. 더욱이, 부분 매칭(partial matching) 경로 표현식으로 이루어진 XML 질의를 처리하기 위하여서는 XML 데이터에 속한 모든 엘리먼트들을 검색하여야 하므로 매우 비효율적이다.
한편, 구조 요약(structural summary)나 경로 인덱스(path index)는 주어진 경로 표현식에 대하여 XML 데이터의 관련있는 부분만을 검색할 수 있도록 하여 XML 데이터의 검색 속도를 향상시킨다. 따라서, XML 데이터의 검색 속도 향상을 위한 구조 요약 추출 및 경로 인덱스 생성 방안이 최근 많은 관심을 받고 있으며, 비정형 특성을 지니는 데이터의 검색 성능 향상을 위한 여러 가지 인덱스가 제안되었다.
Goldman과 Widom은 strong DataGuide라고 하는 경로 인덱스를 개발하였다[참고문헌: R. Goldman and J. Widom. DataGuides: Enable query formulation and optimization in semistructured databases. VLDB 1997.]. 이 방법은 XML 과 같은 준구조적 데이터의 구조 정보를 추출하기 위한 방안으로 제안되었으며, XML 데이터의 루트 엘리먼트(root element)로부터 시작되는 단순 경로(simple path)들이 중복되어 나타나지 않도록 표현한다. DataGuide의 생성 방식은 비결정적 유한 오토마타(non-deterministic finite automata)를 결정적 유한 오토마타(deterministic finite automata)로 변환하는 알고리즘[참고문헌: J. E. Hopcraft and J. D. Ullman. Introduction to Automata Theory, Language, and Computation. 1979]과 비슷하게 동작한다. 따라서, 주어진 XML 데이터가 매우 복잡한 형태의 그래프 구조일 경우에 strong DataGuide의 크기가 원본 XML 데이터보다 더 커질 수 있다는 문제가 있다.
Milo와 Suciu는 DataGuide와는 다른 1-index를 제안하였다[참고 문헌: T. Milo and D. Suciu. Index structures for path expression. ICDT. 1999]. 1-Index도 루트 엘리먼트로부터 시작되는 모든 경로들의 정보를 유지한다는 점에서는 strong DataGuide와 동일하다. 1-Index는 그래프 이론(graph theory)에 기반한 역방향 시뮬레이선(backward simulation)과 역방향 바이 시뮬레이션(backward bisimulation)을 이용하여 인덱스를 생성한다. 이 방식은 그래프 상의 두 노드가 존재할 때 각 노드로부터 시작되는 경로들 집합이 서로 같은 경우 이 두 노드를 하나의 노드로 합병시키는 방식이다. 이와 같은 방식을 이용하면 strong DataGuide와는 달리 비결정적 유한 오토마타와 같은 그래프을 얻을 수 있다. 그러나 주어진 입력 그래프가 트리 형태일 경우에는 1-Index와 strong DataGuide는 서로 동일하 다. 따라서, 1-Index는 strong DataGuide의 비결정적 변형이라고 볼 수 있다.
객체 지향 데이터베이스 분야에서는 임의의 두 객체 간의 자주 사용되는 참조(reference)들을 지원하기 위하여 접근 지원 관계(ASR : access support relation)가 사용되어 왔다[참고문헌: A. Kemper and G. Moerkotte. Access support relations: An indexing method for object bases. Information Systems, 17(2):117-145, 1992]. 그러나 이 접근 지원 관계는 임의의 질의의 참조 고리 (reference chain)들을 구체화(materialize)한 것으로 미리 정의해 놓은 부분 경로들에 대하여서만 지원이 가능하다는 문제가 있다.
Cooper 등은 루트 엘리먼트로 시작되는 모든 경로를 유지한다는 점에서 strong DataGuide와 개념적으로 유사한 Index Fabric을 제안하였다[참고 문헌: B. Cooper, N. Sample, M. J. Franklin, G. R. Hjaltason, and M. Shadmon. A fast index for semistructured data. VLDB. 2001]. Index Fabric은 데이타 값을 가지는 엘리먼트들의 경로들을 데이터 값과 같이 암호화(encoding)하여 문자열(string)로 변환하고 이를 Patricia Trie와 같은 문자열 인덱스를 이용하여 유지한다. 그러나, Index Fabric은 XML 엘리먼트들간의 부모-자식 관계(parent-child relationship)를 유지할 수 없다는 단점이 존재한다. 따라서, Index Fabric은 부모-자식 관계를 이용하여야 하는 부분 매칭 경로 표현식에는 효과적이지 못하다.
XML 데이터의 사용자는 데이터의 구조를 고려하지 않으며 원하는 결과를 얻기 위하여 의도적으로 부분 매칭 경로 표현식을 이용한다. 그러나, strong DataGuide, 1-Index, Index Fabric 등 위에서 언급한 XML 경로 인덱스들은 루트 엘 리먼트로부터 시작되는 모든 경로들을 표현함으로서 부분 매칭 경로 표현식을 처리하기 위하여서는 인덱스를 소모적으로 탐색함으로써 성능 저하를 유발한다. 더욱이, 이러한 경로 인덱스들은 데이터만을 이용하여 생성되므로, 자주 사용되는 경로 표현식을 효과적으로 처리하기 위한 과거의 질의 정보들의 집합인 질의 부하(query workload)을 활용하지 못하고 있다.
상기와 같은 문제점을 해결하기 위하여 본 발명에서는 APEX(Adaptive Path indEx for XML Data)라 칭하는 적응형 경로 인덱스를 개발하였다. 본 발명의 목적은 경로 인덱스를 사용하여 비정형적 구조를 지니는 XML 데이터의 질의를 처리하는 방법으로서, 과거에 XML 데이터의 질의로 사용된 경로 표현식들로부터 자주 사용되는 경로들을 추출하고 이를 이용하여 경로 인덱스를 갱신함으로써 질의의 수행 성능을 개선하는 적응형 경로 인덱스 방법을 이용한 XML 질의 처리 방법을 제공함에 있다.
상기와 같은 목적을 달성하기 위해 본 발명은, XML 데이터에 대한 질의를 수행하기 위하여 경로 인덱스를 사용하는 XML 질의 수행 방법에 있어서, 상기 XML 데이터를 그래프 형태의 XML 그래프로 표현하는 제 1 단계; 전에 수행된 XML 질의들에서 추출한 자주 사용되는 경로(frequently used paths)와 상기 그래프로부터 적 응형 경로 인덱스를 생성하고 갱신하는 제 2 단계; 상기 적응형 경로 인덱스를 이용하여 XML 질의를 처리하는 제 3 단계;를 포함하는 것을 특징으로 하는 적응형 경로 인덱스를 이용한 XML 질의 수행 방법을 제공한다.
본 발명에서 제안하는 적응형 경로 인덱스는 DataGuide, 1-Index 등 기존의 경로 인덱스와는 다르게 루트 엘리먼트로부터 시작되는 모든 경로를 유지하지 않으며 질의 성능의 개선을 위하여 자주 사용된 경로들을 활용한다. 더욱이, 기존의 경로 인덱스들은 XML 데이터만을 이용하여 생성되는 것에 반하여 본 발명에서는 과거에 사용된 질의들에 의하여 자주 사용되는 경로들을 데이타 마이닝 개념을 이용하여 파악하고 이를 활용한다.
구체적으로, 본 발명에 따른 적응형 경로 인덱스와 질의 처리 방법은 다음과 같은 해결책을 갖는 방법을 제시하는 것을 특징으로 한다.
(1) 적응형 경로 인덱스는 해쉬 트리(hash tree)와 그래프 구조(graph structure)로 구성되어 있으며, 해쉬 트리는 그래프 구조에 있는 노드들의 도착 경로(incoming path)들의 정보를 유지하므로 부분 매칭 경로 표현식을 해쉬 트리의 검색을 통하여 효율적으로 처리할 수 있다.
(2) 자주 사용되는 경로 정보를 추출하기 위하여 순차 패턴 마이닝(sequential pattern mining) 기법에 사용되었던 개념을 활용하였다.
(3) 자주 사용되는 경로들을 활용하여 인덱스 구조를 유지함으로써 기존의 경로 인덱스들에 비하여 적은 크기를 달성하였다.
(4) 적응형 경로 인덱스는 자주 사용되는 경로들이 변경되었을 때 변경된 경로들만을 파악하여 인덱스를 변경함으로써 인덱스의 생성 및 관리 부담을 감소시켰다.
본 발명의 상술한 목적과 여러 가지 장점은 이 기술 분야에서 숙련된 사람들에 의해 첨부된 도면을 첨부하여 후술되는 발명의 바람직한 실시 예로부터 더욱 명확하게 될 것이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대하여 상세하게 설명한다.
도 1은 본 발명에 따른 적응형 경로 인덱스의 관리 구조를 도시한 것이다. 도 1에 도시된 바와 같이, 적응형 경로 인덱스 관리 모듈은 크게 초기화 모듈(initialization module : 11), 자주 사용되는 경로 추출 모듈(frequently used path extraction module : 13), 갱신 모듈(update module : 15) 이렇게 3개의 주요 모듈들로 구성되어 있다. 초기화 모듈(11)은 과거에 사용된 질의 정보 없이 처음으로 적응형 경로 인덱스를 생성할 때 사용되는 모듈이다. 이 모듈은 적응형 경로 인덱스의 초기 인덱스인 초기 적응형 경로 인덱스 APEX0(12)를 생성한다. APEX0는 적응형 경로 인덱스의 가장 단순화된 형태로 복잡한 적응형 인덱스 생성의 씨앗 역할을 한다. 경로 추출 모듈(13)과 갱신 모듈(15)은 현 시점의 경로 인덱스를 이용한 질의들의 집합인 질의 부하(workload : 14)를 이용하는 모듈로서 자주 사용되는 경로들을 활용하여 더욱 효율적인 경로 인덱스(16)를 생성하는 데 사용된다. 이때 질의 부하(14)는 li.li+1.…lj-1.lj 형태의 단일 경로 표현식(single path expression)의 집합으로 되어 있다. 경로 추출 모듈(13)과 갱신 모듈(15)은 질의 부하가 바뀔 때마다 반복된다.
우선 본 발명에서 사용되는 XML 데이터의 구조에 대하여 간략히 기술하고, 이를 기반으로 본 발명에서 제안하는 적응형 경로 인덱스의 구조에 대하여 설명하도록 한다. 그 다름으로 위에서 언급한 적응형 경로 인덱스 관리 방법에 대하여 설명하도록 한다.
도 2는 XML 데이터의 예를 도시한 것이며, 그 구조는 도 3와 같이 라벨-간선(Label-Edge) 그래프로 표현될 수 있다. 이를 XML 그래프라고 한다. 이때, 도 3에 나타나는 ID-IDREF 관계는 IDREF 타입의 노드로부터 대응되는 ID 타입의 애트리뷰트(attribute)를 가지는 엘리먼트를 표현하는 노드까지의 간선(edge)으로 표현된다. 이 간선의 라벨은 해당 엘리먼트의 라벨을 가진다. 또한 IDREF 타입의 엘리먼트를 위한 노드를 가리키는 간선의 라벨은 "@"으로 시작된다.
XML 그래프에는 라벨의 연속으로 이루어지는 경로들이 존재하며 이는 XML 질의의 경로 표현식으로 사용된다. 각 경로들 간에는 다음과 같은 관계가 존재할 수 있다. 우선, 임의의 두 경로 A와 B에 대하여 다음 정의 1과 같은 관계가 있다면 " 경로 B가 경로 A를 포함한다"라고 한다.
정의 1
경로 A= a1.a2.….an과 B= b1.b2.….bm 에 대하여, 만약 a1 = bi, a2 = bi+1, …, an = bi+n-1이고 1 ≤ i , i+n-1 ≤ m이라고 할 때 "경로 A가 경로 B에 포함된다" 라고 하거나 A가 B의 하위 경로(subpath)라고 한다. 더욱이, A가 B의 하위 경로이고 m = i+n-1이면, A를 B의 서픽스(suffix)라고 한다.
또한, XML 그래프 상의 임의의 경로 p 가 주어진 XML 경로 표현식들 중에서 얼마나 자주 사용되었는지를 p의 지지도(support), sup(p)라 하고 수학식 1과 같이 표현된다.
sup(p) = |Q|/|W|
여기서, |W| = 주어진 XML 경로 표현식들의 수, |Q| = p를 포함하는 XML 경로 표현식들의 수이다.
본 발명에 따른 적응형 경로 인덱스 관리 방법에서는 다음 정의 2에 정의된 필요한 경로(required path)들을 파악하고 이를 활용하여 경로 인덱스를 관리한다.
정의 2
XML 그래프에 존재하는 경로 p의 지지도 sup(p)가 주어진 사용자 정의 최소 지지도(user specified minimum support), minSup 보다 크거나 p의 길이가 1일 때, p를 필요한 경로(required path)라 한다. 특별히 사용자 정의 최소 지지도 minSup보다 큰 지지도를 가지는 경로를 자주 사용되는 경로(frequently used path)라 한다.
임의 경로 p에 대한 간선 집합 T(p)는 다음과 같이 정의 된다.
정의 3
p = li.….lj-1.lj일 때, T(p) = {<oj-1,oj>|o i-1.li.oi….lj-1.oj-1.lj.o j}
여기서, p에 나타나는 라벨 lk에 대하여 ok-1,ok는 XML 그래프에 존재하는 노드들이고 ok-1에서 ok로 라벨이 lk인 간선이 XML 그래프에 존재한다.
정의 3으로부터 임의 경로 p와 q에 대하여 p가 q의 서픽스 이라면 T(p) ⊇ T(q)임을 알 수 있다. 예를 들어 도 3의 그래프에서 경로 name은 actor.name의 서픽스이다. 이때 T(name) = {<2,3>, <4,5>, <7,11>, <12,13>}이며, T(actor.name) ={<2,3>, <4,5>}임을 알 수 있다. 따라서, T(name) ⊇ T(actor.name)을 보인다. 필요한 경로들의 집합에 속한 모든 경로들에 대하여 간선 집합 T(p)들을 관리하는 것은 많은 저장 부담이 요구 된다. 따라서, 본 발명에서는 다음과 같이 경로 p의 익스텐트(extent), E(p)를 정의하고 이를 관리한다.
정의 4
XML 그래프의 경로들 중 루트로부터 시작되는 경로들의 집합을 QXML 이라고 하고 필요한 경로들의 집합을 R이라 하자. 집합 R에 속한 경로 p에 대하여, QG(p) = {l|l ∈ QXML and p is a suffix of l}, QA(p) = {l|l ∈ QXML and every path q (≠ p) ∈ R having p as a suffix is suffix of l}이라고 하자. Q(p) = QG(p)-QA(p)라면 익스텐트 E(p)= ∪r∈Q(p)T(r)로 정의 된다.
상기 정의 4에서 임의의 경로 p에 대한 q는 R에 속한 경로들 중에서 p를 서픽스로 가지는 경로라고 할 때, T(p) = ∪∀q E(q) 임을 알 수 있다.
예를 들어, 도 3의 XML 그래프에 대하여, actor.name이 자주 사용되는 경로라 할 때, E(name) = {<7,11>,<12,13>}, E(actor.name)= {<2,3>,<4,5>}이고 T(name) = E(name) ∪ E(actor.name) 임을 알 수 있다.
도 4는 도 3에 대하여 필요한 경로가 길이가 1인 모든 경로와 direct.movie, @movie.movie, actor.name일 때의 적응형 경로 인덱스를 도시한 것이다. 이는 그래프 구조의 인덱스를 도시한 것이며, 더욱 효율적인 검색을 위해 해쉬 트리를 더 구비할 수 있다.
해쉬 트리는 필요한 경로들에 대한 정보를 유지하며, 그래프 구조의 각 노드와 필요되는 경로를 대응시킨다. 해쉬 트리의 각 노드는 해쉬 테이블을 지니고 있으며, 해쉬 테이블의 각 엔트리(entry)의 구조는 도 5에 상세히 도시된 바와 같이 5개의 필드로 구성되어 있다 : label, count, new, xnode, next는 각 엔트리의 키 값이 된다. count는 해당 엔트리가 표현하는 경로의 사용 빈도 즉 지지도를 표현한다. new 필드는 해당 엔트리가 새로 생성된 것인지 아닌지를 표현한다. xnode는 적응형 경로 인덱스의 그래프 구조에 있는 하나의 노드를 가리킨다. 마지막으로 next 필드는 해쉬 트리의 다른(다음) 노드를 가리킨다.
그래프 구조는 주어진 XML 그래프의 구조 요약 정보를 제공하며, 그래프 구조의 각 노드는 해쉬 트리의 엔트리와 1 대 1 대응하며, 그래프 구조의 노드들은 해쉬트리 엔트리가 표현하는 필요한 경로의 익스텐트를 가지고 있다. 또한, 그래프 구조의 임의의 두 노드 x, y와 x의 익스텐트에 속한 간선 <sx, tx>와 y의 익스텐트에 속한 간선 <sy, ty>에 대하여, 만약 tx = sy라면 그래프 구조의 노드 x에서 y로 가는 간선이 존재하도록 한다. 또한 그 간선의 라벨은 y에 속한 간선들을 분류한 라벨을 사용한다. 또한, 특별히 XML 그래프의 루트 노드를 위하여, 초기 적응형 경로 인덱스에 하나의 노드를 만들고 <null, 루트 노드>로 이루어진 가상의 간선을 해당 노드의 익스텐트로서 저장한다. 그리고 그 노드를 편리하게 xroot로 표현한다. 또한, 임의의 경로 p에 대하여 p를 서픽스로 하는 경로 q가 자주 사용되는 경로이고 E(p)가 공집합이 아닐 때에는, 이를 위하여 remainder 엔트리를 생성하고 이에 대응되는 노드를 만들어 E(p)를 관리 한다. 예를 들어, 도 4에서 E(name)은 &12 노드에 저장되며 이는 해쉬 트리의 루트 노드의 name 엔트리의 하위 노드 내에 있는 remainder 엔트리에 등록되어 있다.
도 4에서 필요한 경로 direct.movie에 대한 정보는 해쉬 트리에서 역방향으로 검색(lookup)함으로서 파악할 수 있다. 예를 들어, 해쉬 트리의 루트 노드에서 movie 엔트리가 가리키는 하위 노드에 대하여 direct를 검색하여 direct.movie에 대한 정보를 검색할 수 있다.
도 6에는 초기 적응형 경로 인덱스인 APEX0를 생성하는 알고리즘이 도시되어 있다. 도 7은 도 3에 대한 APEX0를 나타낸다. 상술한 바와 같이, 적응형 경로 인덱스는 해쉬 트리와 그래프 구조로 이루어져 있다. 따라서 APEX0이 이러한 구조로 구성되어 있는 것이다.
도 6의 APEX0 생성 알고리즘은 기본적으로 XML 그래프의 노드들을 깊이 우선 탐색(depth first traversal) 방식으로 탐색하면서 각 라벨에 따라서 간선(edges)을 분류(grouping)하여 익스텐트를 생성하고 이를 위한 노드를 그래프 구조에 생성하고 이를 해쉬 트리에 등록하는 기능을 수행한다. 우선 각 간선들의 집합을 위한 노드를 초기 적응형 경로 인덱스에 만들고 이 노드와 라벨을 해쉬 트리에 등록한다. APEX0를 생성한 후에는 질의 부하로부터 자주 사용되는 경로 정보를 추출하여 적응형 경로 인덱스를 지속적으로 갱신(update)한다. 이렇게 함으로서 현재 사용되고 있는 XML 질의를 보다 효율적으로 지원할 수 있도록 한다.
다음은 자주 사용되는 경로 추출 모듈에 대해 설명한다.
비단조(anti-monotonicity) 특성을 전지(pruning) 단계에서 사용하는 순차적 패턴 마이닝 기법들[참고문헌: M. N. Garofalakis, R. Rastogi, and K. Shim. SPIRIT: Sequential patternmining with regular expression constraints. VLDB 1999]을 자주 사용되는 경로 인덱스 추출에 활용할 수 있을 것이다. 그러나, 기존의 순차적 패턴 마이닝 기법들의 대상인 시퀀스(sequence)의 특성이 경로와는 다르기 때문에 수정이 필요하다. 예를 들어, 시퀀스 (A, B, C)가 자주 나타난다고 할 경우, (A, B, C)의 하위 시퀀스 (A, B), (B, C), (A, C)도 자주 나타난다고 할 수 있다. 그러나, 경로 A.B.C가 자주 사용된다고 해서 A.C가 자주 사용된다고 할 수는 없다. 왜냐하면 A.C는 A.B.C의 하위 경로가 아니기 때문이다.
따라서, 본 발명에서는 도 8과 같이 "자주 사용되는 경로 추출 알고리즘"을 새로이 개발하였다. 도 8에 도시된 바와 같이 자주 사용되는 경로 추출 알고리즘은 지지도를 산출하는 부분과 전지 부분으로 이루어져 있다. 해쉬 트리는 XML 질의들의 사용 패턴의 변화를 유지하는데 사용되며, 자주 사용되는 경로의 추출 단계가 종료된 후에 해쉬 트리는 주어진 XML 경로 표현식들 중에서 필요되는 경로들에 대한 정보만을 유지하게 된다.
우선, 사용빈도(지지도)를 산출하는 부분에서는 경로 표현식의 집합에서 나타난 모든 경로의 사용빈도를, 즉 자주 사용되는 경로를 추출하기 위해서 적응형 경로 인덱스를 구성하는 중요한 자료 구조인 해쉬 트리를 이용한다. 이때, 현재 사용되어진 XML 경로 표현식들의 사용 빈도를 계산하기 위하여 해쉬 트리 내에 존재한 모든 엔트리의 count와 new 필드를 0과 false로 설정한다. 그리고 주어진 XML 경로 표현식 집합인 Qworkload에 나타나는 모든 경로들의 사용빈도를 계산한다. 이 단계에서, 새로운 엔트리가 해쉬 테이블에 생성되면 해당 엔트리의 new 필드를 true로 설정한다.
전지 단계에서는 주어진 사용자 정의 최소 지지도, minSup 보다 작은 지지도를 지닌 엔트리들을 모두 제거한다. 이때 순차적 패턴 마이닝과 같이, 임의 경로 p의 sup(p)가 minSup 보다 작다면 p를 포함하는 모든 경로들의 sup(p)는 minSup보다 작다는 비단조 특성을 활용하여, 보다 효율적으로 자주 사용되지 않는 경로 정 보를 해쉬 트리에서 제거한다.
주어진 경로 표현식으로부터 자주 사용되는 경로들에 대한 정보를 추출하였으면 이를 이용하여 현재의 적응형 경로 인덱스를 갱신하여야 한다. 이를 위하여 XML 그래프를 처음부터 다시 소모적으로 검색하여 새로운 적응형 경로 인덱스를 만들 수 있을 것이다. 그러나, 이러한 방법은 많은 시간과 비용을 요하는 작업이므로 본 발명에서는 도 9의 갱신 알고리즘을 이용하여 인덱스 갱신 비용을 감소시켰다. 이 갱신 알고리즘의 기본 방식은 적응형 경로 인덱스의 그래프 구조를 탐색하면서 그래프 구조의 각 노드들이 해쉬 트리와 관련되어 유효한가를 검사하고, 유효하지 않은 노드들을 제거하고 새로 생긴 엔트리에 대하여 노드들을 생성한다. 그리고 각 새로 생긴 노드들의 익스텐트를 생성한다.
본 발명에 따른 적응형 경로 인덱스를 이용한 XML 질의 처리 방식은 다음과 같다. 임의의 경로 pi n = li.….ln-1.ln가 질의로 주어졌을 때, pi n 를 이용하여 해쉬 트리를 검색한다. 만약 pk n= lk…ln (i < k ≤ n)인 경로까지만 해쉬 트리에 존재한다면 이를 이용하여 pk n의 간선 집합 T(pk n)을 구하고, 이와 같은 단계를 p 하위 경로 pi j=li.….lj (i ≤ j < n)의 정보가 해쉬 트리 상에 존재할 때, 즉 T(pi j)를 구할 때까지 반복한다. 그리고 얻어진 간선 집합 T(pi j),…,T(pk n )에 대하여 조인 연산을 하여 T(pi n)을 구할 수 있다.
또한, 복합 경로 질의 li.*.lj와 같은 것은 질의 전지 및 변환 기법[참조 문헌: M. F. Fernandez and D. Suciu. Optimizing regular path expressions using graph schemas. ICDE. 1998]을 적용하여 li. li+1.… .lj 형태의 경로 집합으로 변환 한 다음 질의 결과를 구할 수 있다. "임의 경로 표현식을 만족하는 노드들 중 임의 조건을 만족하는 노드들을 추출하라"와 같은 값-경로 혼합 질의에 대하여서는, 임의 경로를 만족하는 노드들을 본 발명에 따른 적응형 경로 인덱스를 이용하여 추출하고 그 다음 임의 조건을 만족하는지는 검사하는 것과 같은 방식, 또는 XML 데이터에 존재하는 노드들 중 임의 조건을 만족하는 노드들과 임의 경로 표현식을 만족하는 노드들을 구한 후 두 노드 집합의 교집합을 구하는 방식 등 다양한 방법을 이용하여 구할 수 있다.
만약 pi n가 필요한 경로라면 해쉬 트리에 pi n을 서픽스로 하는 경로 q가 해쉬 트리에 존재하며, 각 q에 대응되는 엔트리의 노드 포인터가 가리키는 그래프 구조의 노드들의 익스텐트 E(q)들에 대하여 T(pi n) = ∪∀qE(q) 결과를 얻을 수 있다.
XML 질의에 대한 본 발명의 효율성을 측정하기 위하여 여러가지 형태의 XML 질의와 여러가지 XML 데이터에 대하여 실험하였다. 실험 데이터로는 실제 XML 데이터 및 XML 데이터의 구조를 정의하는 실제 DTD 를 이용하여 생성한 3가지 XML 데이터를 이용하였으며, 이는 다음과 같다.
(1) Play : 셰익스피어 희곡들을 XML 형태로 변환하여 만든 XML 문서[출처: http://www.oasis-open.org/cover/xml.html].
(2) FlixML : B급 영화 안내를 위한 해설용 문서에 사용되는 XML 문서로서 약간 복잡한 구조를 지님[출처: http://www.xml.com].
(3) GedML : 계보학에서 사용되는 데이터를 표현하기 XML 문서로서 매우 복잡한 구조를 지님[출처: http://www.oasis-open.org/cover/xml.html, 2001].
또한 다양한 크기의 XML 데이터에 대한 질의 성능을 측정하기 위하여 표 1과 같이 다양한 엘리먼트의 개수를 지니는 데이터를 생성하였다.
데이터 종류 Play FlixML GedML
이름 four_tragedy.xml shakes_11.xml shakes_all.xml Flix01.xml Flix02.xml Flix03.xml Ged01.xml Ged02.xml Ged03.xml
엘리먼트의 수 22791 48818 179691 14734 41691 335401 8259 36228 381046
질의로는 li.li+1.….ln과 같은 라벨의 연속인 5000개의 단일 경로 표현식(single label path expression)과 500개의 li.*.lj 형태의 복합 경로 표현식, 그리고 1000 개의 경로 표현식과 값의 검색이 같이 표현되는 값-경로 표현식을 사용하였다. 단일 경로 표현식의 XML 질의 표준인 XQuery의 //li./li+1/…/l n으로 표현되면, 복합 경로 표현식은 //li//lj로 표현되며, 값-경로 표현식은 //li/li+1/…/lj[text()=value]형태로 표현된다. 또한 본 발명의 효율성을 기존의 경로 인덱스들 중에서 DataGuide(SDG)와 IndexFabic 그리고 초기 적응형 경로 인덱스(APEX0)와 비교하였다. 또한, 사용자 정의 지지도 minSup에 의하여 적응형 경로 인덱스의 형태가 달라질 수 있으므로, 실험에서도 minSup의 값을 0.002부터 0.05까지 변화시켜가면서 실험을 수행하였으며, 자주 사용되는 경로를 추출하기 위한 XML 데이터 질의 집합으로는 단일 경로 표현식 중 20%를 사용하였다.
도 10, 도 11, 도 12는 5000개의 단일 경로 표현식에 대한 처리 시간을 보여주며, 도 13과 도 14는 각각 shake_11,xml, Flix02,xml, Ged02.xml에 대한 복합 경로 표현식과 값-경로 표현식에 대한 처리 시간을 보여 준다. 도 12에서 Ged03.xml의 SDG 성능은 125000초이고 도면 13에서 Ged02.xml의 APEX0의 성능은 약 210000초이다.
XML 데이터 구조가 복잡할수록 적응형 경로 인덱스의 성능이 좋아짐을 알 수 있다. DataGuide와 Index Fabric의 경우에는 XML 데이터의 루트부터 시작되는 모든 경로들을 유지하는데, XML 데이터의 구조가 복잡해짐에 따라서 이러한 경로들의 개수가 증가되고 따라서 질의 처리시에 검색해야 할 정보의 양도 증가되기 때문이다. 이에 반하여 적응형 경로 인덱스는 자주 사용되는 경로들에 대한 정보만을 유지함으로써 보다 효율적으로 질의를 처리할 수 있도록 한다.
또한, 사용자 정의 최소 지지도 minSup도 질의 처리 성능에 영향을 미친다. minSup이 작아질 수록 자주 사용되는 경로들의 개수가 증가하게 된다. 그러나, 도 10 내지 12에 도시된 바와 같이, 자주 사용되는 경로들의 개수가 증가한다고 해서 항상 질의 처리 성능이 향상되는 것은 아니다. 이는 위에서 언급한 바와 같이 경로 인덱스의 구조가 복잡해짐에 따라서 검색하여야 할 영역이 증가하여 성능이 저하될 수 있기 때문이다. 본 실험에서는 평균적으로 minSup이 0.005일 때의 적응형 경로 인덱스가 가장 좋은 성능을 나타냈다.
이상 설명을 통해 당업자라면 본 발명의 기술 사상을 이탈하지 않는 범위에서 다양한 변경 및 수정 실시가 가능함을 알 수 있을 것이다.
이상 설명한 바와 같이 본 발명에 따르면, XML 데이터의 검색시에 적응형 경로 인덱스를 이용하여 자주 사용되는 경로들을 활용하여 보다 효율적으로 XML 질의 결과를 찾아낼 수 있다. 또한 본 발명은 XML 질의의 패턴이 바뀌는 경우에 이를 반영하여 인덱스를 갱신하는 부담을 감소하여 주는 방안을 제시하고 있다. 따라서, 본 발명은 전자상거래, 인터넷 문서 검색 등 XML 데이터 응용분야에 크게 기여할 것이다.

Claims (7)

  1. 과거에 사용된 질의(query) 정보 없이 처음으로 적응형 경로 인덱스를 생성할 때 사용되는 모듈로써 적응형 경로 인덱스의 초기 인덱스인 초기 적응형 경로 인덱스(APEX0)(12)를 생성하는 초기화 모듈(initialization module:11)과, 현 시점의 경로 인덱스를 이용한 질의들의 집합인 질의 부하(workload:14)를 이용하는 모듈로서 자주 사용되는 경로들을 활용하여 더욱 효율적인 경로 인덱스(16)를 생성하는 데 사용되고 전에 수행된 XML 질의들의 경로 표현식 집합인 질의 부하로부터 사용자 정의 최소 지지도 이상으로 자주 사용되는 경로들을 추출하는 자주 사용되는 경로 추출 모듈(frequently used path extraction module:13)과, 상기 자주 사용되는 경로들(frequently used paths)만 포함하도록 적응형 경로 인덱스 갱신 알고리즘에 의해 상기 초기 적응형 경로 인덱스를 갱신하는 갱신 모듈(update module:15)을 포함하며 XML 데이터를 저장 관리하는 웹어플리케이션 서버에 저장되는 적응형 경로 인덱스 관리 모듈에서, XML 데이터에 대한 질의(Query)를 수행하기 위하여 경로 인덱스를 사용하는 XML 질의 수행 방법에 있어서,
    상기 XML 데이터를 그래프(graph) 형태의 자료구조인 라벨-간선(label-edge) 그래프로 표현되어 라벨의 연속으로 이루어지는 경로들이 존재하며 XML질의의 경로 표현식으로 사용되는 XML 그래프로 컴퓨터의 표시부에 표현하는 제 1 단계;
    브라우저에서 인터넷망을 통해 상기 XML 데이터를 저장 관리하는 웹어플리케이션 서버로 전에 수행된 XML 질의들에서 추출한 자주 사용되는 경로(frequently used paths)와 상기 XML 그래프로부터 적응형 경로 인덱스(APEX0)(12)를 생성하고 갱신하는 제 2 단계; 및
    상기 적응형 경로 인덱스(APEX0)(12)를 이용하여 XML 질의를 처리하여 그 결과를 상기 컴퓨터의 표시부에 표시하는 제 3 단계;를 포함하는 것을 특징으로 하는 적응형 경로 인덱스를 이용한 XML 질의 수행 방법.
  2. 제 1 항에 있어서,
    상기 제 1 단계는, XML 데이터의 ID와 IDREF 타입의 에트리뷰트(attribute)의 관계를 IDREF 타입의 노드(node)로부터 대응되는 ID 타입의 애트리뷰트를 가지는 엘리먼트를 표현하는 노드까지의 간선(edge)으로 표현하고, 이 간선의 라벨은 상기 엘리먼트(element)의 라벨(label)을 가지도록 하며, IDREF 타입의 노드를 가리키는 간선의 라벨은 다른 간선의 라벨과는 구별되게 표시하여 상기 XML 그래프를 생성하는 것을 특징으로 하는 적응형 경로 인덱스를 이용한 XML 질의 수행 방법.
  3. 제 1 항에 있어서,
    상기 제 2 단계는, 상기 XML 그래프의 구조 요약 정보를 나타내는 초기 적응형 경로 인덱스(APEX0)(12)를 상기 적응형 경로 인덱스 관리 모듈의 초기화 모듈(11)에 의해 생성하고, 상기 브라우저에서 인터넷망을 통해 상기 XML 데이터를 저장 관리하는 웹어플리케이션 서버로 전에 수행된 XML 질의들의 경로 표현식 집합인 질의 부하로부터 사용자 정의 최소 지지도 이상으로 상기 자주 사용되는 경로 추출 모듈(11)에 의해 자주 사용되는 경로들을 추출하고, 상기 갱신 모듈(15)에 의해 상기 자주 사용되는 경로들(frequently used paths)만 포함하도록 상기 초기 적응형 경로 인덱스를 갱신함으로써 적응형 경로 인덱스를 생성하고, 상기 질의 부하의 변경을 반영하도록 상기 적응형 경로 인덱스를 지속적으로 갱신하는 것을 특징으로 하는 적응형 경로 인덱스를 이용한 XML 질의 수행 방법.
  4. 제 2 항에 있어서,
    상기 제 2 단계는, 상기 XML 그래프의 구조 요약 정보를 나타내는 초기 적응형 경로 인덱스를 상기 적응형 경로 인덱스 관리 모듈의 초기화 모듈(11)에 의해 생성하고, 브라우저에서 인터넷망을 통해 상기 XML 데이터를 저장 관리하는 웹어플리케이션 서버로 전에 수행된 XML 질의들의 경로 표현식 집합인 질의 부하(14)로부터 사용자 정의 최소 지지도 이상으로 상기 자주 사용되는 경로 추출 모듈(11)에 의해 자주 사용되는 경로들을 추출하고, 상기 갱신 모듈(15)에 의해 상기 자주 사용되는 경로들(frequently used paths)만 포함하도록 상기 초기 적응형 경로 인덱스를 갱신함으로써 적응형 경로 인덱스를 생성하고, 상기 질의 부하의 변경을 반영하도록 상기 적응형 경로 인덱스를 지속적으로 갱신하는 것을 특징으로 하는 적응형 경로 인덱스를 이용한 XML 질의 수행 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 적응형 경로 인덱스(APEX0)(12)는 그래프(graph) 구조이고, 상기 그래프 구조의 노드(node)가 필요한 경로들의 간선집합(set of edges)을 모두 가지는 대신 익스텐트를 가지도록 하며,
    여기서, 상기 XML 그래프의 경로들 중 루트로부터 시작되는 경로들의 집합을 QXML이라 하고, 사용자 정의 최소 지지도 이상의 지지도를 가지거나 길이가 1인 경로로 정의되는 필요한 경로(required path)들의 집합을 R이라 할 때, 경로 p에 대한 상기 익스텐트는 E(p)=∪r∈Q(p)T(r)로 정의되고 T(r)은 경로 r의 간선집합, Q(p) = QG(p)-QA(p), 집합 R에 속한 경로 p에 대하여, QG(p) = {l|l ∈ QXML and p is a suffix of l}, QA(p) = {l|l ∈ QXML and every path q (≠ p) ∈ R having p as a suffix is suffix of l}인 것을 특징으로 하는 적응형 경로 인덱스를 이용한 XML 질의 수행 방법.
  6. 제 5 항에 있어서,
    상기 적응형 경로 인덱스는 해쉬 트리(hash tree)를 더 포함하며, 상기 해쉬 트리는 필요한 경로들에 대한 정보를 유지하며 상기 해쉬 트리의 각 노드(node)는 해쉬 테이블(hash table)을 지니고 있으며, 각 해쉬 테이블의 엔트리(entry) 구조는 label 필드, 상기 필요한 경로들에 대해 적어도 사용 빈도를 나타내는 count 필드, 새로 생긴 노드인지를 나타내는 new 필드, 상기 그래프 구조의 노드를 가리키는 xnode 필드, 다음 노드를 가리키는 next 필드를 저장하고, 상기 질의 부하의 변경을 반영하도록 지속적으로 상기 필드들을 갱신하는 것을 특징으로 하는 적응형 경로 인덱스를 이용한 XML 질의 수행 방법.
  7. 제 6 항에 있어서,
    상기 적응형 경로 인덱스의 갱신은 상기 적응형 경로 인덱스의 그래프(graph) 구조를 탐색하면서 각 노드(node)들에 대한 해쉬 트리(hash tree)의 엔트리(entry)를 검사하여 자주 사용되지 않은 노드는 제거하고 새로 생긴 노드는 상기 그래프 구조에 추가함으로써 수행하는 것을 특징으로 하는 적응형 경로 인덱스를 이용한 XML 질의 수행 방법.
KR1020020070634A 2002-11-14 2002-11-14 적응형 경로 인덱스를 이용한 xml 질의 수행 방법 KR100558765B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020020070634A KR100558765B1 (ko) 2002-11-14 2002-11-14 적응형 경로 인덱스를 이용한 xml 질의 수행 방법
US10/453,682 US7260572B2 (en) 2002-11-14 2003-06-02 Method of processing query about XML data using APEX

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020070634A KR100558765B1 (ko) 2002-11-14 2002-11-14 적응형 경로 인덱스를 이용한 xml 질의 수행 방법

Publications (2)

Publication Number Publication Date
KR20040042358A KR20040042358A (ko) 2004-05-20
KR100558765B1 true KR100558765B1 (ko) 2006-03-10

Family

ID=32291726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020070634A KR100558765B1 (ko) 2002-11-14 2002-11-14 적응형 경로 인덱스를 이용한 xml 질의 수행 방법

Country Status (2)

Country Link
US (1) US7260572B2 (ko)
KR (1) KR100558765B1 (ko)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174328B2 (en) * 2003-09-02 2007-02-06 International Business Machines Corp. Selective path signatures for query processing over a hierarchical tagged data structure
JP4460251B2 (ja) * 2003-09-19 2010-05-12 株式会社エヌ・ティ・ティ・ドコモ 構造化文書署名装置、構造化文書適応化装置及び構造化文書検証装置。
DE602004024553D1 (de) * 2003-09-19 2010-01-21 Ntt Docomo Inc Verfahren und vorrichtung zur effizienten zertifikatwiderrufung
WO2006026737A2 (en) * 2004-08-31 2006-03-09 Ntt Docomo Inc. Revocation of cryptographic digital certificates
US8301788B2 (en) * 2004-09-10 2012-10-30 Cavium, Inc. Deterministic finite automata (DFA) instruction
US8392590B2 (en) * 2004-09-10 2013-03-05 Cavium, Inc. Deterministic finite automata (DFA) processing
US8560475B2 (en) 2004-09-10 2013-10-15 Cavium, Inc. Content search mechanism that uses a deterministic finite automata (DFA) graph, a DFA state machine, and a walker process
US9171100B2 (en) * 2004-09-22 2015-10-27 Primo M. Pettovello MTree an XPath multi-axis structure threaded index
US8412714B2 (en) 2004-11-22 2013-04-02 At&T Intellectual Property Ii, L.P. Adaptive processing of top-k queries in nested-structure arbitrary markup language such as XML
EP1890243A3 (en) 2004-11-22 2008-03-19 AT&T Corp. Adaptive processing of top-k queries in nested structure arbitrary markup language such as XML
US7865608B1 (en) * 2005-01-21 2011-01-04 Oracle America, Inc. Method and apparatus for fast and scalable matching of structured data streams
JP4978894B2 (ja) * 2005-01-25 2012-07-18 日本電気株式会社 構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラム
US7702686B2 (en) * 2005-07-29 2010-04-20 Microsoft Corporation Retrieving and persisting objects from/to relational databases
US7685567B2 (en) * 2005-07-29 2010-03-23 Microsoft Corporation Architecture that extends types using extension methods
US20070027905A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Intelligent SQL generation for persistent object retrieval
US7818719B2 (en) * 2005-07-29 2010-10-19 Microsoft Corporation Extending expression-based syntax for creating object instances
US20070027849A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Integrating query-related operators in a programming language
US7409636B2 (en) * 2005-07-29 2008-08-05 Microsoft Corporation Lightweight application program interface (API) for extensible markup language (XML)
US7743066B2 (en) * 2005-07-29 2010-06-22 Microsoft Corporation Anonymous types for statically typed queries
US7631011B2 (en) * 2005-07-29 2009-12-08 Microsoft Corporation Code generation patterns
US20070044083A1 (en) * 2005-07-29 2007-02-22 Microsoft Corporation Lambda expressions
US7779396B2 (en) * 2005-08-10 2010-08-17 Microsoft Corporation Syntactic program language translation
US8650506B2 (en) * 2005-11-10 2014-02-11 International Business Machines Corporation Use of extensible object data to represent a fully qualified solution order
US7664742B2 (en) * 2005-11-14 2010-02-16 Pettovello Primo M Index data structure for a peer-to-peer network
US20070174309A1 (en) * 2006-01-18 2007-07-26 Pettovello Primo M Mtreeini: intermediate nodes and indexes
US8131728B2 (en) 2006-06-23 2012-03-06 International Business Machines Corporation Processing large sized relationship-specifying markup language documents
US7747610B2 (en) * 2006-11-10 2010-06-29 Sybase, Inc. Database system and methodology for processing path based queries
KR100834760B1 (ko) * 2006-11-23 2008-06-05 삼성전자주식회사 최적화된 인덱스 검색 방법 및 장치
NO327323B1 (no) * 2007-02-07 2009-06-08 Fast Search & Transfer As Fremgangsmate til a danne grensesnitt mellom applikasjoner i et system for soking og gjenfinning av informasjon
US9053207B2 (en) * 2007-02-08 2015-06-09 International Business Machines Corporation Adaptive query expression builder for an on-demand data service
US8060868B2 (en) * 2007-06-21 2011-11-15 Microsoft Corporation Fully capturing outer variables as data objects
US20090006179A1 (en) * 2007-06-26 2009-01-01 Ebay Inc. Economic optimization for product search relevancy
US8229920B2 (en) 2007-08-31 2012-07-24 International Business Machines Corporation Index selection for XML database systems
US8819217B2 (en) * 2007-11-01 2014-08-26 Cavium, Inc. Intelligent graph walking
US7949683B2 (en) * 2007-11-27 2011-05-24 Cavium Networks, Inc. Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
US8180803B2 (en) * 2007-11-27 2012-05-15 Cavium, Inc. Deterministic finite automata (DFA) graph compression
US20090271765A1 (en) * 2008-04-29 2009-10-29 Microsoft Corporation Consumer and producer specific semantics of shared object protocols
US8473523B2 (en) 2008-10-31 2013-06-25 Cavium, Inc. Deterministic finite automata graph traversal with nodal bit mapping
US8631028B1 (en) * 2009-10-29 2014-01-14 Primo M. Pettovello XPath query processing improvements
US8739118B2 (en) 2010-04-08 2014-05-27 Microsoft Corporation Pragmatic mapping specification, compilation and validation
KR101296683B1 (ko) * 2011-03-23 2013-08-14 연세대학교 산학협력단 데이터 스트림에서의 다중 조인 질의 처리를 위한 2 페이즈 수행 방법
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
US9804886B1 (en) * 2016-05-27 2017-10-31 Intuit Inc. Extending object-schema-based application programming interfaces (APIS)
US11443067B2 (en) 2018-01-31 2022-09-13 Salesforce.Com, Inc. Restricting access and edit permissions of metadata
US10620935B2 (en) * 2018-01-31 2020-04-14 Salesforce.Com, Inc. Version management automation and consistent application builds for different target systems
US11693848B2 (en) * 2018-08-07 2023-07-04 Accenture Global Solutions Limited Approaches for knowledge graph pruning based on sampling and information gain theory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010109665A (ko) * 2000-06-01 2001-12-12 송하주 엑스엠엘 데이터의 효과적인 검색을 위한 다중 경로인덱스 방법
KR20020061886A (ko) * 2001-01-18 2002-07-25 박상원 엑스엠엘 문서의 저장방법 및 엑스엠엘 문서 또는 인덱스노드 탐색방법
KR20030087370A (ko) * 2002-05-08 2003-11-14 삼성전자주식회사 관계형 데이터베이스에서 정규 경로식 질의를 처리하는xml 인덱싱 방법과 자료구조

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141655A (en) * 1997-09-23 2000-10-31 At&T Corp Method and apparatus for optimizing and structuring data by designing a cube forest data structure for hierarchically split cube forest template
US6480860B1 (en) * 1999-02-11 2002-11-12 International Business Machines Corporation Tagged markup language interface with document type definition to access data in object oriented database
US6418446B1 (en) * 1999-03-01 2002-07-09 International Business Machines Corporation Method for grouping of dynamic schema data using XML
US6192371B1 (en) * 1999-04-28 2001-02-20 Lucent Technologies, Inc Object morphing in an object oriented computing environment using relational database query procedure
US6356906B1 (en) * 1999-07-26 2002-03-12 Microsoft Corporation Standard database queries within standard request-response protocols
US6571292B1 (en) * 1999-12-17 2003-05-27 International Business Machines Corporation Integration of structured document content with legacy 3270 applications
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
US6910040B2 (en) * 2002-04-12 2005-06-21 Microsoft Corporation System and method for XML based content management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010109665A (ko) * 2000-06-01 2001-12-12 송하주 엑스엠엘 데이터의 효과적인 검색을 위한 다중 경로인덱스 방법
KR20020061886A (ko) * 2001-01-18 2002-07-25 박상원 엑스엠엘 문서의 저장방법 및 엑스엠엘 문서 또는 인덱스노드 탐색방법
KR20030087370A (ko) * 2002-05-08 2003-11-14 삼성전자주식회사 관계형 데이터베이스에서 정규 경로식 질의를 처리하는xml 인덱싱 방법과 자료구조

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
2002년도 한국정보과학회 가을 학술발표논문집 Vol. 29. No.2, 2002.10.) *
2002년도 한국정보과학회 가을 학술발표논문집 Vol.29. No.2, 2002.10. *
한국과학기술원 박사 학위논문, 2002.05.22., 동일인 출원 *

Also Published As

Publication number Publication date
US7260572B2 (en) 2007-08-21
KR20040042358A (ko) 2004-05-20
US20040098384A1 (en) 2004-05-20

Similar Documents

Publication Publication Date Title
KR100558765B1 (ko) 적응형 경로 인덱스를 이용한 xml 질의 수행 방법
Kaushik et al. Exploiting local similarity for indexing paths in graph-structured data
Wang et al. Discovering structural association of semistructured data
Haw et al. Data storage practices and query processing in XML databases: A survey
Meimaris et al. Extended characteristic sets: graph indexing for SPARQL query optimization
Bramandia et al. On incremental maintenance of 2-hop labeling of graphs
Alghamdi et al. Semantic-based Structural and Content indexing for the efficient retrieval of queries over large XML data repositories
Baolin et al. HPRD: a high performance RDF database
Wellenzohn et al. Dynamic interleaving of content and structure for robust indexing of semi-structured hierarchical data (extended version)
Nguyen et al. Estimating searching cost of regular path queries on large graphs by exploiting unit-subqueries
Hsu et al. UCIS-X: an updatable compact indexing scheme for efficient extensible markup language document updating and query evaluation
Du et al. A novel knn join algorithms based on hilbert r-tree in mapreduce
Zheng et al. Cost-driven storage schema selection for XML
Truong et al. Sinbad: towards structure-independent querying of common neighbors in xml databases
KR100612376B1 (ko) 통합패스의 노드범위를 이용한 엑스엠엘 인덱스 시스템 및방법
Katsaros et al. Fast mining of frequent tree structures by hashing and indexing
Ying et al. Applying dewey encoding to construct XML index for path and keyword query
Phillips et al. InterJoin: Exploiting indexes and materialized views in XPath evaluation
Nguyen et al. B+ Hash Tree: Optimizing query execution times for on-Disk Semantic Web data structures
Raut et al. A survey of indexing techniques for XML database
Kim et al. A partition index for XML and semi-structured data
Qtaish et al. Query mapping techniques for XML documents: A comparative study
Jayanthi Vector based labeling method for dynamic XML documents
Haw et al. Structural query optimization in native XML databases: a hybrid approach
Sumalatha et al. Xml query processing–semantic cache system

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: 20100225

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee