KR20040036201A - Xml 데이터 검색을 위한 질의 처리 방법 - Google Patents

Xml 데이터 검색을 위한 질의 처리 방법 Download PDF

Info

Publication number
KR20040036201A
KR20040036201A KR1020020065026A KR20020065026A KR20040036201A KR 20040036201 A KR20040036201 A KR 20040036201A KR 1020020065026 A KR1020020065026 A KR 1020020065026A KR 20020065026 A KR20020065026 A KR 20020065026A KR 20040036201 A KR20040036201 A KR 20040036201A
Authority
KR
South Korea
Prior art keywords
node
xml
query
path expression
nodes
Prior art date
Application number
KR1020020065026A
Other languages
English (en)
Other versions
KR100493882B1 (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 KR10-2002-0065026A priority Critical patent/KR100493882B1/ko
Priority to US10/641,084 priority patent/US7263525B2/en
Publication of KR20040036201A publication Critical patent/KR20040036201A/ko
Application granted granted Critical
Publication of KR100493882B1 publication Critical patent/KR100493882B1/ko

Links

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/83Querying
    • G06F16/835Query processing
    • 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 동등 클래스 개념과 경로식 축약 알고리즘을 이용한 질의처리를 통하여 XML 질의 처리 성능을 향상시킬 수 있는 XML 데이터 검색을 위한 질의 처리 방법에 관한 것으로서, 입력된 XML 문서의 파싱을 통한 XML 문서의 재조직 동안, 발견되는 노드들의 중복성을 검색하는 단계; 상기 검색단계에서 검색된 중복 노드들을 제외한 노드들을 별도의 트리 구조로 저장하는 단계; 및 사용자가 XML 데이터 검색을 위한 질의를 입력하면, 상기 트리 구조를 순회하면서 상기 질의내의 경로식을 최단 경로식으로 변환하는 단계를 포함하는 것을 특징으로 한다.

Description

XML 데이터 검색을 위한 질의 처리 방법{QUERY PROCESS METHOD FOR SEARCHING XML DATA}
본 발명은 XML 데이터 검색에 관한 방법으로서, 더욱 상세하게는 동등 클래스 개념과 경로식 축약 알고리즘을 이용한 질의처리를 통하여 XML 질의 처리 성능을 향상시킬 수 있는 XML 데이터 검색을 위한 질의 처리 방법에 관한 것이다.
XML(eXtensible Markup Language)은 HTML(HyperText Markup Language)의 단점을 보완하기 위해 W3C(World Wide Web Consortium)에서 1998년 권고안으로 채택된 마크업 언어이다(XML 1.0 W3C 권고안, 1998-2-10 참조). XML은 도 4와 같이 문서구조와 내용, 출력형식이 각각 분리되어 전체 문서를 정의하므로 문서구조의 재활용 및 출력형식의 유연성, 문서구조에 대한 검색기능 등의 문서구조화에 따른 다양한 특성을 제공한다는 점에서 향후 XML 문서의 확산이 더욱 가속화 될 것이다. 이에 따라, XML 문서의 구조정보를 이용하여 문서의 정보를 효율적으로 저장하고 검색하기 위한 많은 연구가 진행되고 있다.
도 5a는 XML 문서의 예로서, 도 5b에서와 같이 트리 형태로 구성되며, 따라서 문서구조에 대한 검색이 가능하다. XML 문서에 대한 검색을 지원하기 위해서는 데이터베이스(예를 들면, 관계형 DBMS, 객체지향 DBMS나 XML 전용 DBMS 등)가 필요하게 되며, 이때 XML 데이터 검색을 위해 XML 질의 언어가 사용된다.
XML 질의 언어는 최근에 W3C에서 표준으로 제안된 XQL(XML Query Language), Query(A Query Language for XML) 등을 예로 들 수 있는데, 이들은 질의 표현에 있어서 XML 문서의 엘리먼트나 텍스트들의 경로를 나타내는 Xpath(XML Path Language)라는 별도의 스펙을 사용하고 있다. Xpath에서는 연산자 '/' 또는 '//'를 사용하여 엘리먼트 또는 노드간의 관계를 나타내는데, '/'는 특정 엘리먼트의 자식노드를 표현하고 '//'는 특정 엘리먼트의 자신 또는 후손노드를 표현한다.
도 5a의 XML 문서의 예에서, "A//B"라고 질의하면, 도 5b와 같은 트리의 각 노드를 순회하면서 A 엘리먼트의 후손노드들 중에서 B 엘리먼트를 가지는 노드를 검색하게 된다. 마찬가지로, "A/C"라고 질의하면, 도 2b와 같은 트리의 각 노드를 순회하면서 A 엘리먼트의 자식노드 중에서 C 엘리먼트를 가지는 노드를 검색하게 된다. 여기서, "A//B" 또는 "A/C"는 질의에 나타나는 경로식으로 정의된다.
특히, 도 6에 도시된 바와 같이 XML 문서가 엘리먼트 노드 단위로 분할저장되는 방식에서는 경로식상의 노드 개수 즉, 경로식 길이에 비례하여 처리 비용이 증가한다. 다시 말해서, 특정 엘리먼트를 검색하기 위해서는 엘리먼트들이 저장된 2개 이상의 각각의 테이블로부터의 데이터들을 결합하기 위해 복잡한 조인연산이 요구되며, 조인연산은 데이터베이스 성능을 좌우하는 매우 심각한 연산이기 때문에 가능하면 그 횟수의 감소가 시스템 성능 향상에 도움이 된다.
예를 들면, 경로식 /A/B/A/C는 연산자 '/' 또는 '//'를 사용하여 동일한 노드를 지정하는 경로식들 //B/A/C, /A//B//C, //B//C로 표현할 수 있는데, 각각의 경로식을 처리함에 있어서, 경로식 /A/B/A/C는 ((AB)A)C)와 같이 3번의 조인이 필요하고, 경로식 //B/A/C는 ((BA)C)와 같이 2번의 조인이 필요한 반면, 경로식 //B//C는 (BC)와 같이 단지 1번의 조인이 필요하므로 3번 또는 2번의 조인을 수행하는 경우에 비하여 경로식 처리 비용이 절감된다고 할 수 있다. 여기서,는 조인을 나타내는 기호이다.
이상 설명한 바와 같이, 질의 수행에 있어서 XML 데이터에 대한 경로식의 처리가 매우 중요함을 알 수 있으며, 경로식을 처리하는 종래기술로는 다음과 같은기술 문헌들을 들 수 있다.
[1] C. Zhang, J. Naughton, D. Dewitt, Q. Luo, and G. Lohman, "관계형 데이터베이스 관리 시스템에서의 포함관계 질의의 지원에 대하여", In Proceedings of 2001 ACM-SIGMOD conference, Santa Barbara, California, 2001.
[2] Quanzhong Li, Bongki Moon, "정규 경로식에 대한 XML 데이터 인덱싱 및 질의", In Proceedings of 2001 VLDB conference, pp. 361-370, Roma, Italy, 2001.
[3] Divesh Srivastava, Shurug Al-Khalifa, H. V. Jagadish, Nick Koudas, Jignesh M. Patel, Yuqing Wu, "구조적 조인: 효율적인 XML 질의 패턴 매칭을 위한 방법", In Proceedings of 2002 IEEE Conference on Data Engineering(ICDE), San Jose, California, 2002.
종래 기술 문헌 [1]과 [2]는 대용량의 XML 문서에 대한 검색 기능을 지원하기 위하여, XML 문서를 분석하여 XML 문서내의 엘리먼트를 독립단위인 튜플(tuple)로 데이터베이스에 저장하고 경로식을 처리하기 위하여 엘리먼트들간의 포함관계(containment relationship)를 이용하고 있다. 또한, 종래 기술 문헌 [3]은 포함 관계에 의한 경로 조인 연산을 효율적으로 수행하기 위한 개선된 조인 알고리즘을 제시하고 있는데, 기존의 포함 관계에 의한 조인 연산을 트리-머지(tree-merge) 조인 및 스택-트리(stack-tree) 알고리즘에 의해 수행하고 있다.
종래 기술 문헌들은 조인연산을 통하여 경로식을 처리하는 기술의 토대를 마련하기는 하였지만, 경로식이 복잡해지거나 길어졌을 때 매번 조인을 수행해야만하기 때문에 심각한 검색 성능 저하를 야기할 수 있다는 문제점을 가진다.
본 발명은 종래의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 사용자가 입력한 질의에 대한 경로식을 길이가 가장 짧은 경로식으로 변환시켜 질의 처리 성능을 최대화할 수 있도록 하는 것이다.
도 1은 본 발명에 따른 개략적인 XML 질의 시스템의 블록도이다.
도 2는 본 발명에 따른 XIS-트리를 보여주는 도면이다.
도 3은 본 발명에 따른 경로식 축약 알고리즘의 일예이다.
도 4는 XML 문서 구성을 보여주는 도면이다.
도 5a와 도 5b는 각각 XML 문서의 일예 및 상기 XML 문서를 트리 구조로 표현한 것이다.
도 6은 XML 문서가 엘리먼트 노드 단위로 분할저장되는 방식을 설명하는 도면이다.
※ 도면의 주요부분에 대한 부호의 설명 ※
100 : XML 질의 분석기 200 : XML 경로식 축약기
300 : XML 질의 처리기 400 : XIS-트리
이러한 목적을 달성하기 위한 본 발명은, 입력된 XML 문서의 파싱을 통한 XML 문서의 재조직동안, 발견되는 노드들의 중복성을 검색하는 단계; 상기 검색단계에서 검색된 중복 노드들을 제외한 노드들을 별도의 트리 구조로 저장하는 단계; 및 사용자가 XML 데이터 검색을 위한 질의를 입력하면, 상기 트리 구조를 순회하면서 상기 질의내의 경로식을 최단 경로식으로 변환하는 단계를 포함하는 것을 특징으로 한다.
상기 트리 구조는 공유 노드 혹은 재귀적 노드가 존재하지 않으며, 하나의 부모 노드 아래에 동일한 이름의 여러 개의 자식노드가 존재할 때에는 하나의 자식노드만이 등록된다.
또한, 상기 최단 경로식은 상기 트리 구조내의 동일한 동등 클래스에 속하는 노드 집합인 것을 특징으로 한다.
상기 질의내의 경로식(P)은, 경로식 길이가 k일때 P = A1N1A2N2 ...AkNk으로 표현되고, Head, AiNi및 Tail로 구분되는 것을 특징으로 한다. 여기서, AiNi는 상기경로식에 대한 i번째까지의 <축-노드> 쌍을 나타내고, Head는 AiNi이전에 위치한 <축-노드>쌍 리스트로서 축약이 결정된 부분이며, Tail은 AiNi이후에 위치한 <축-노드>쌍 리스트로서 축약이 결정되지 않은 부분이다.
또한, 상기 경로식에 대한 i번째까지의 <축-노드> 쌍, AiNi을 순서대로 탐색하면서 삭제가능여부를 판단함으로써 최단 경로식을 생성하는 단계를 더 포함하는 것을 특징으로 한다.
그리고, 상기 삭제가능여부의 판단에 있어서, 상기 트리 구조에서 Head가 가리키는 노드를 루트로 하는 서브트리중에서 Tail 패턴의 노드를 검색하여 상기 Tail 패턴의 노드가 AiNi를 접두부로 하는 경우에 해당 AiNi를 삭제하며, 이때 상기 Tail의 축은 '/'에서 '//'로 변경되는 것을 특징으로 한다.
또한, 상기 트리 구조는 주메모리에 상주하거나 또는 디스크에 저장되는 것을 특징으로 한다.
이하 본 발명을 도면을 참조하여 상세히 설명한다.
1. 시스템 개요
본 발명에서 제안하는 방법은 XML 문서를 저장하고 검색하는 서비스를 제공하는 XML 데이터베이스 서버에서 활용될 수 있다. 예를 들면, 방송환경에서 XML로 표현된 EPG 데이터를 처리하는 메타데이터 엔진, XML로 구성된 전자 문서 검색 시스템, XML 웹 검색 엔진 등의 XML 시스템에서 사용된다.
도 1은 본 발명에 따른 개략적인 XML 질의 시스템의 블록도로서, XML 질의분석기(100), XML 경로식 축약기(200), 및 XML 질의 처리기(300)를 포함한다.
사용자가 질의를 입력하면, XML 질의 분석기(100)가 질의에 대한 경로식을 분석하고, 분석된 경로식을 XML 경로식 축약기(200)로 보낸다. 다음에, XML 경로식 축약기(200)는 이후에 설명되는 바와 같이 입력되는 XML 문서를 파싱하는 동안 중복되는 노드를 제외한 나머지 노드들로 이루어지는 트리 형태의 데이터 구조인, XIS-트리(XML Instance Structure Tree)(400)를 순회하면서 해당 경로식에 대한 동등 클래스내의 가장 짧은 경로식을 XML 질의 분석기(100)로 반환한다. 최종적으로, XML 질의 처리기(300)가 반환된 경로식으로 질의를 수행하는데, XML DB(500)로부터 해당 질의 결과를 추출하여 사용자에게 제공한다.
2. XIS-트리(XML Instance Structure Tree)
2-1. XIS-트리의 정의
상기 용어 “XIS-트리”는 본 발명에서 사용되는 자료구조로, XML 질의 시스템에 입력되는 XML 문서를 파싱하는 동안 중복되는 노드를 제외한 나머지 노드들로 이루어지는 트리 형태의 데이터 구조를 의미한다. 즉, XIS-트리는 실제 입력된 XML 문서 구조를 기초로 구성되며, 공유 노드(shared node) 혹은 재귀적 노드(recursive node)가 존재하지 않을 뿐만 아니라 중복되는 노드가 제거된다는 특징을 가진다. 또한, XIS-트리는 하나의 부모 노드 아래에 동일한 이름의 여러 개의 자식노드가 존재할 때에는 하나의 자식노드만이 등록된다는 점에서 입력 XML 문서와 차이를 가진다.
2-2. XIS-트리의 생성
XIS-트리는 XML 문서의 로딩시에 XML 문서의 재조직과 함께 점진적으로 생성되는데, 입력된 XML 문서의 파싱 단계에서 문서내의 엘리먼트 혹은 애트리뷰트를 선순위(pre-order), 중간순위(in-order), 후순위(post-order) 등의 트리 순회 기법으로 순회하면서 발견되는 노드들을 XIS-트리에 추가한다. 이미 언급한 바와 같이, XIS-트리가 입력된 XML 문서와 구조적으로 다른 점은 중복되는 노드가 입력되지 않는다는 점이다.
도 5b와 같은 구조의 XML 문서가 로딩된다고 가정할 때, 생성되는 XIS-트리에 대하여 살펴보기로 한다.
예를 들어, 선순위 트리 순회 기법을 통해 도5b의 문서를 순회하면, A(0) -> B(1) -> A(2) -> C(3) -> C(4) -> D(5) -> D(6) -> B(7) -> D(8) -> D(9) -> C(10) 순서로 노드가 탐색된다. 여기서, 괄호안의 숫자는 노드 방문 순서를 나타내는 번호이다. 이러한 순서대로 각각의 노드를 탐색하면서 중복되는 노드의 유무를 검사하게 되는데, 4번 C 노드의 경우에 이미 동일한 3번 C 노드가 존재하기 때문에 XIS-트리에 삽입되지 않는다. 마찬가지로, 7번 B 노드도 0번 루트 노드 아래에 이미 1번 B 노드가 존재하기 때문에 XIS-트리에 기록되지 않으며, 또한 8번과 9번 노드도 XIS-트리에 반영되지 않음을 알 수 있다. 아래의 표 1은 이러한 관계를 잘 보여주고 있다.
따라서, XIS-트리내에는 A(0)-B(1)-A(2)-C(3)-D(5)-D(6)-C(10) 노드만이 기록되며, 도 2와 같은 트리 형태로 표현할 수 있다.
한편, 입력된 XML 문서가 하나 이상일 때에도 XIS-트리는 하나만 존재하며, 중복 노드 처리는 동일하게 이루어진다. 예를 들면, 입력 문서들의 루트가 여러 개 존재할 경우에는 더미(dummy) 노드를 루트 노드로 지정하고, 그 아래에 각 문서의 루트 노드를 자식 노드로 추가하는 방식을 취한다.
2-3. XIS-트리의 저장
XIS-트리는 입력되는 XML 문서의 크기에 비하여 그 크기가 매우 작아서, 메인 메모리에 상주시켜 사용할 수 있다.
한편, 디스크에 저장하고자 할 경우에는 다음과 같은 2가지 방법으로 저장할 수 있다.
(1) XML 형태로 저장
XIS-트리 자체를 XML로 표현하여 저장한다. 즉, XIS-트리의 각 노드를 태그로 표현하되, 단말 노드는 비어있는 태그로 표현하여 저장한다. 예를 들어, 도 2의 XIS-트리는 다음과 같이 간단히 표현되며, XML로 저장된 XIS-트리를 읽어들일 때에는 일반적인 XML 파싱 과정을 거쳐서 처리할 수 있다.
<A><B><A><C/><D/></A><D/></B><C/></A>
(2) 관계형 데이터베이스에 저장
또한, XIS-트리는 관계형 데이터베이스에 테이블 형태로 저장가능하다. 이때, 트리의 각 노드를 하나의 투플로 저장하되, 그 투플의 구조는 <node_id,parent_id, nodename>이 된다. node_id는 XIS-트리에서 각 노드를 구분할 수 있는 키가 되는 번호이며, parent_id는 XIS-Tree에서 자신의 부모 노드의 node_id를 나타낸다. 또한, nodename은 노드의 태그이름이 된다. 이와 같이, 테이블 형태로 저장된 것을 다시 XIS-트리로 변환할 때에는 node_id 와 parent_id 값을 재귀적으로 참조하면서 복원할 수 있다.
3. 경로식 축약 알고리즘
3-1. 동등 클래스(Equivalence Class) 개념
동등 클래스는 입력된 XML 문서에 대한 XIS-트리에서 동일한 노드 집합이라고 정의할 수 있다. 즉, 앞서 설명한 XIS-트리상에서 동일한 노드를 지정하는 경로식들은 동일한 클래스에 속한다는 것을 의미한다. 이미 언급한 바와 같이, xpath에서는 연산자 '/' 또는 '//'를 사용하여 동일한 노드를 지정한다. 예를 들면, 도 2의 XIS-트리에 대하여 3번 C 노드를 지정하는 경로식은 {/A/B/A/C, //B/A/C, /A//B//C, //B//C}이 된다.
이미 언급한 바와 같이, XML 데이터가 노드 단위로 분할저장되는 방식에서는 경로식상의 노드 개수에 비례하여 처리 비용이 증가한다. 따라서, 사용자가 /A/B/A/C와 같이 길이가 긴 절대 경로식으로 표현하더라도, 동등 클래스내의 가장 짧은 경로식 //B//C로 변환하여 처리한다면 더욱 효율적인 질의 처리를 수행할 수 있는 것이다.
3-2. 경로식 축약 알고리즘
본 발명에 따른 경로식 축약 알고리즘은 앞서 설명한 바와 같은 XIS-트리와동등 클래스 개념을 사용하여 사용자가 입력하는 경로식이 속하는 동등 클래스내에서 가장 짧은 경로식으로 변환하는 알고리즘으로 정의할 수 있다.
먼저, 입력으로서 XIS-트리와 경로식이 제공된다.
길이가 k인 경로식이 입력되었다면, 그 경로식(P)은 다음과 같이 나타낼 수 있다.
P = A1N1A2N2... AkNk
상기 입력된 경로식은 Head, AiNi(1 < i < k-1) 및 Tail의 세부분으로 구분된다. AiNi는 i번째 <축-노드> 쌍을 나타내고, Head는 경로식 표현에서 AiNi이전에 위치한 <축-노드>쌍 리스트에 대하여 축약이 결정된 부분이며, Tail은 경로식 표현에서 AiNi이후에 위치한 <축-노드>쌍 리스트로서 아직 축약이 결정되지 않은 부분이다.
축약 대상의 경로식에 대해 i번째 <축-노드> 쌍, AiNi을 순서대로 탐색하면서 삭제가능여부를 판단함으로써 길이가 가장 짧은 경로식을 생성하는데, 이때 <축-노드> 쌍, AiNi의 삭제가능여부는 XIS-트리의 순회를 통해 이루어진다.
좀 더 구체적으로, XIS-트리에서 Head가 가리키는 노드를 루트로 하는 서브트리에서 Tail 패턴과 매칭되는 노드를 찾게 되는데, Tail의 접두부(prefix)로 AiNi가 아닌 것이 존재하는 경우에는 해당 AiNi는 삭제할 수 없는 노드가 되며, 그렇지않은 경우의 AiNi는 삭제가능하며, 이때 상기 Tail의 축은 ‘/’에서 ‘//’로 대체된다.
실시예
도 5b의 XML 문서에 대하여 /A/B/A/C라는 경로식이 제공될 때, 도 2의 XIS-트리를 이용한 축약 과정을 설명하면 다음과 같다.
경로식의 길이(k)가 4이므로, 3번째 <축-노드> 쌍까지 순서대로 탐색하면서 <축-노드> 쌍의 삭제가능여부를 판단하게 된다.
알고리즘의 첫번째 루프에서는,
Head = Null
AiNi= /A
Tail = B/A/C
로 설정된다. Head가 Null이기 때문에 Head는 도 2의 XIS-트리에서 루트 노드를 가리킨다. Head 경로(/)를 가리키는 서브트리로부터 Tail 패턴(/B/A/C)을 나타내는 노드는 XIS-트리에서 검색하면, /A/B/A/C로서 /A(A1N1)를 접두부로 하므로 /A(A1N1)는 삭제한다. 따라서, Head는 여전히 Null이고, Tail의 첫번째 축은 '/’에서 ‘//’로 바뀐다.
두번째 루프에서는,
Head = Null
A2N2= //B
Tail = A/C
로 설정된다. Head가 Null이기 때문에 XIS-트리에서 루트 노드를 가리킨다. 루트 노드로부터 Tail 패턴(A/C)의 노드를 검색하면, /A/B/A/C와 /A/C 가 존재한다. /A/B/A/C는 A2N2(//B)를 접두부로 가지는 Tail인 반면, /A/C는 A2N2(//B)를 접두부로 가지지 않는 패턴이기 때문에, A2N2(//B)는 삭제할 수 없다. 따라서, Head는 Null에서 //B이 된다.
세번째 루프에서는,
Head = //B
A3N3= /A
Tail = C
로 설정된다. Head가 가리키는 1번 노드를 루트노드로 하는 서브트리에서 Tail 패턴(C)을 나타내는 노드는 /A/C로서, A3N3(/A)를 접두부로 가지기 때문에 /A는 삭제 가능하다.
따라서, 최종적으로 축약된 경로식은 //B//C가 된다. 결과적으로, 본 실시예에서는 길이가 4인 경로식이 길이가 2인 경로식으로 축약되어졌다.
이상에서 설명한 바와 같이 본 발명에 따르면, XML 질의 처리에 있어서 XIS-트리와 동등 클래스 개념을 사용하여 질의에 대한 임의의 경로식을 동등 클래스내의 가장 짧은 다른 경로식으로 변환시켜 줌으로써 검색 성능을 극대화시킬 수 있다는 장점을 가진다.

Claims (8)

  1. 입력된 XML 문서의 파싱을 통한 XML 문서의 재조직동안, 발견되는 노드들의 중복성을 검색하는 단계;
    상기 검색단계에서 검색된 중복 노드들을 제외한 노드들을 별도의 트리 구조로 저장하는 단계; 및
    사용자가 XML 데이터 검색을 위한 질의를 입력하면, 상기 트리 구조를 순회하면서 상기 질의내의 경로식을 최단 경로식으로 변환하는 단계를 포함하는 것을 특징으로 하는 XML 데이터 검색을 위한 질의 처리 방법.
  2. 제1항에 있어서, 상기 트리 구조는 공유 노드 혹은 재귀적 노드가 존재하지 않으며, 하나의 부모 노드 아래에 동일한 이름의 여러 개의 자식노드가 존재할 때에는 하나의 자식노드만이 등록되는 것을 특징으로 하는 XML 데이터 검색을 위한 질의 처리 방법.
  3. 제1항에 있어서, 상기 최단 경로식은 상기 트리 구조내의 동일한 동등 클래스에 속하는 노드 집합인 것을 특징으로 하는 XML 데이터 검색을 위한 질의 처리 방법.
  4. 제1항에 있어서, 상기 질의내의 경로식(P)은, 경로식 길이가 k일때 P = A1N1A2N2 ...AkNk으로 표현되고, Head, AiNi및 Tail로 구분되는 것을 특징으로 하는 XML 데이터 검색을 위한 질의 처리 방법.
  5. 제4항에 있어서, AiNi는 상기 경로식에 대한 i번째까지의 <축-노드> 쌍을 나타내고, Head는 AiNi이전에 위치한 <축-노드>쌍 리스트로서 축약이 결정된 부분이며, Tail은 AiNi이후에 위치한 <축-노드>쌍 리스트로서 축약이 결정되지 않은 부분인 것을 특징으로 하는 XML 데이터 검색을 위한 질의 처리 방법.
  6. 제4항에 있어서, 상기 경로식에 대한 i번째까지의 <축-노드> 쌍, AiNi을 순서대로 탐색하면서 삭제가능여부를 판단함으로써 최단 경로식을 생성하는 단계를 더 포함하는 것을 특징으로 하는 XML 데이터 검색을 위한 질의 처리 방법.
  7. 제6항에 있어서, 상기 삭제가능여부의 판단에 있어서, 상기 트리 구조에서 Head가 가리키는 노드를 루트로 하는 서브트리중에서 Tail 패턴의 노드를 검색하여 상기 Tail 패턴의 노드가 AiNi를 접두부로 하는 경우에 해당 AiNi를 삭제하며, 이때 상기 Tail의 축은 '/'에서 '//'로 변경되는 것을 특징으로 하는 XML 데이터 검색을 위한 질의 처리 방법.
  8. 제1항 또는 제2항에 있어서, 상기 트리 구조는 주메모리에 상주하거나 또는 디스크에 저장되는 것을 특징으로 하는 XML 데이터 검색을 위한 질의 처리 방법.
KR10-2002-0065026A 2002-10-23 2002-10-23 Xml 데이터 검색을 위한 질의 처리 방법 KR100493882B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0065026A KR100493882B1 (ko) 2002-10-23 2002-10-23 Xml 데이터 검색을 위한 질의 처리 방법
US10/641,084 US7263525B2 (en) 2002-10-23 2003-08-15 Query processing method for searching XML data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0065026A KR100493882B1 (ko) 2002-10-23 2002-10-23 Xml 데이터 검색을 위한 질의 처리 방법

Publications (2)

Publication Number Publication Date
KR20040036201A true KR20040036201A (ko) 2004-04-30
KR100493882B1 KR100493882B1 (ko) 2005-06-10

Family

ID=32105629

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0065026A KR100493882B1 (ko) 2002-10-23 2002-10-23 Xml 데이터 검색을 위한 질의 처리 방법

Country Status (2)

Country Link
US (1) US7263525B2 (ko)
KR (1) KR100493882B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100776823B1 (ko) * 2006-06-14 2007-11-19 고려대학교 산학협력단 단순 경로 질의에 대응하는 압축된 xml 스트림 생성방법, 단순 경로 질의에 대응하는 xml 스트림의 선택적수신 방법 및 그 장치
KR100812378B1 (ko) * 2005-11-28 2008-03-11 이원석 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법
KR100902653B1 (ko) * 2008-01-11 2009-06-15 숭실대학교산학협력단 효율적인 온톨로지 추론을 위한 검색 장치 및 방법
KR100946662B1 (ko) * 2008-03-17 2010-03-09 고려대학교 산학협력단 Xml 데이터 스트림 생성 및 수신 방법
KR101450239B1 (ko) * 2012-12-12 2014-10-14 한국과학기술원 대용량 xml 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법
CN110765123A (zh) * 2018-07-09 2020-02-07 株式会社日立制作所 基于树形结构的材料数据的存储方法、装置和系统

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI289261B (en) * 2002-09-11 2007-11-01 Hon Hai Prec Ind Co Ltd System and method for dynamically generating a HTTP query
US20050108192A1 (en) * 2003-11-18 2005-05-19 Hua Huang Tree structure
US7165063B2 (en) * 2003-11-19 2007-01-16 International Business Machines Corporation Context quantifier transformation in XML query rewrite
US7930277B2 (en) * 2004-04-21 2011-04-19 Oracle International Corporation Cost-based optimizer for an XML data repository within a database
US8762381B2 (en) * 2004-05-21 2014-06-24 Ca, Inc. Storing multipart XML documents
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US7475070B2 (en) * 2005-01-14 2009-01-06 International Business Machines Corporation System and method for tree structure indexing that provides at least one constraint sequence to preserve query-equivalence between xml document structure match and subsequence match
US8346737B2 (en) * 2005-03-21 2013-01-01 Oracle International Corporation Encoding of hierarchically organized data for efficient storage and processing
US7359910B2 (en) * 2005-06-30 2008-04-15 Microsoft Corporation Scalable transformation and tree based query language node—set selection
US8762410B2 (en) * 2005-07-18 2014-06-24 Oracle International Corporation Document level indexes for efficient processing in multiple tiers of a computer system
US20070016605A1 (en) * 2005-07-18 2007-01-18 Ravi Murthy Mechanism for computing structural summaries of XML document collections in a database system
US8073841B2 (en) * 2005-10-07 2011-12-06 Oracle International Corporation Optimizing correlated XML extracts
US8650506B2 (en) * 2005-11-10 2014-02-11 International Business Machines Corporation Use of extensible object data to represent a fully qualified solution order
US7596548B2 (en) 2006-01-20 2009-09-29 International Business Machines Corporation Query evaluation using ancestor information
US20070198479A1 (en) * 2006-02-16 2007-08-23 International Business Machines Corporation Streaming XPath algorithm for XPath expressions with predicates
US7805424B2 (en) * 2006-04-12 2010-09-28 Microsoft Corporation Querying nested documents embedded in compound XML documents
US20070250527A1 (en) * 2006-04-19 2007-10-25 Ravi Murthy Mechanism for abridged indexes over XML document collections
US20080092037A1 (en) * 2006-10-16 2008-04-17 Oracle International Corporation Validation of XML content in a streaming fashion
US7797310B2 (en) * 2006-10-16 2010-09-14 Oracle International Corporation Technique to estimate the cost of streaming evaluation of XPaths
US7933935B2 (en) * 2006-10-16 2011-04-26 Oracle International Corporation Efficient partitioning technique while managing large XML documents
US7747610B2 (en) * 2006-11-10 2010-06-29 Sybase, Inc. Database system and methodology for processing path based queries
KR100845234B1 (ko) * 2006-11-14 2008-07-09 한국전자통신연구원 통신 소프트웨어 구조에서의 도메인 프로파일 파싱 장치 및그 방법
CN101196890B (zh) * 2006-12-08 2010-06-16 国际商业机器公司 聚合数据库运行时信息和分析应用性能的方法及装置
US8799448B2 (en) * 2006-12-20 2014-08-05 Microsoft Corporation Generating rule packs for monitoring computer systems
US7908301B2 (en) * 2007-03-30 2011-03-15 Infosys Technologies Ltd. Efficient XML joins
US8868482B2 (en) * 2008-03-20 2014-10-21 Oracle International Corporation Inferring schemas from XML document collections
US20100030727A1 (en) * 2008-07-29 2010-02-04 Sivasankaran Chandrasekar Technique For Using Occurrence Constraints To Optimize XML Index Access
US8560535B2 (en) 2009-01-23 2013-10-15 Oracle International Corporation Mechanisms for ranking XML tags
US8650182B2 (en) * 2009-02-24 2014-02-11 Oracle International Corporation Mechanism for efficiently searching XML document collections
CN110874520B (zh) * 2018-09-03 2024-01-30 珠海金山办公软件有限公司 去除重叠路径的方法、装置及终端设备
CN112134880A (zh) * 2020-09-21 2020-12-25 南京工程学院 复杂网络环境下轻量级xml的授权保护方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970490A (en) * 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US6240407B1 (en) * 1998-04-29 2001-05-29 International Business Machines Corp. Method and apparatus for creating an index in a database system
US6366934B1 (en) * 1998-10-08 2002-04-02 International Business Machines Corporation Method and apparatus for querying structured documents using a database extender
US6421656B1 (en) * 1998-10-08 2002-07-16 International Business Machines Corporation Method and apparatus for creating structure indexes for a data base extender
KR100345277B1 (ko) 1999-11-02 2002-07-19 (주)한국지식웨어 Xml 문서의 논리적인 구조정보 추출기
KR100362380B1 (ko) 1999-12-27 2002-11-23 한국전자통신연구원 엑스엠엘 기반 멀티미디어 데이터 제작 및 검색 장치와 그를 이용한 멀티미디어 데이터 생성 방법
KR100358348B1 (ko) * 2000-06-01 2002-10-25 (주) 아이티캠프 엑스엠엘 데이터의 효과적인 검색을 위한 다중 경로인덱스 방법
US6754843B1 (en) * 2000-06-13 2004-06-22 At&T Corp. IP backbone network reliability and performance analysis method and apparatus
JP2002007439A (ja) * 2000-06-20 2002-01-11 Nec Corp 文書情報を管理するidテーブル作成方法
KR20020058639A (ko) 2000-12-30 2002-07-12 오길록 엑스엠엘 문서 검색 시스템 및 그 방법
KR100441346B1 (ko) * 2001-01-18 2004-08-02 (주) 아이티캠프 엑스엠엘 문서의 저장방법 및 엑스엠엘 문서 또는 인덱스노드 탐색방법
KR100484138B1 (ko) * 2002-05-08 2005-04-18 삼성전자주식회사 관계형 데이터베이스에서 정규 경로식 질의를 처리하는xml 인덱싱 방법과 자료구조
KR20040000194A (ko) * 2002-06-24 2004-01-03 오동익 문서구조정보 추출방법
US7234109B2 (en) * 2002-11-19 2007-06-19 Microsoft Corp. Equality of extensible markup language structures
US7512592B2 (en) * 2004-07-02 2009-03-31 Tarari, Inc. System and method of XML query processing

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100812378B1 (ko) * 2005-11-28 2008-03-11 이원석 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법
KR100776823B1 (ko) * 2006-06-14 2007-11-19 고려대학교 산학협력단 단순 경로 질의에 대응하는 압축된 xml 스트림 생성방법, 단순 경로 질의에 대응하는 xml 스트림의 선택적수신 방법 및 그 장치
KR100902653B1 (ko) * 2008-01-11 2009-06-15 숭실대학교산학협력단 효율적인 온톨로지 추론을 위한 검색 장치 및 방법
KR100946662B1 (ko) * 2008-03-17 2010-03-09 고려대학교 산학협력단 Xml 데이터 스트림 생성 및 수신 방법
KR101450239B1 (ko) * 2012-12-12 2014-10-14 한국과학기술원 대용량 xml 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법
CN110765123A (zh) * 2018-07-09 2020-02-07 株式会社日立制作所 基于树形结构的材料数据的存储方法、装置和系统

Also Published As

Publication number Publication date
US7263525B2 (en) 2007-08-28
US20040083209A1 (en) 2004-04-29
KR100493882B1 (ko) 2005-06-10

Similar Documents

Publication Publication Date Title
KR100493882B1 (ko) Xml 데이터 검색을 위한 질의 처리 방법
US9171100B2 (en) MTree an XPath multi-axis structure threaded index
McHugh et al. Indexing semistructured data
US8260784B2 (en) Indexing and searching JSON objects
Nestorov et al. Representative objects: Concise representations of semistructured, hierarchical data
US8219563B2 (en) Indexing mechanism for efficient node-aware full-text search over XML
US7493305B2 (en) Efficient queribility and manageability of an XML index with path subsetting
US7293018B2 (en) Apparatus, method, and program for retrieving structured documents
US8782017B2 (en) Representing and manipulating RDF data in a relational database management system
US8255394B2 (en) Apparatus, system, and method for efficient content indexing of streaming XML document content
US8126932B2 (en) Indexing strategy with improved DML performance and space usage for node-aware full-text search over XML
Meimaris et al. Extended characteristic sets: graph indexing for SPARQL query optimization
US20070174309A1 (en) Mtreeini: intermediate nodes and indexes
US20040098384A1 (en) Method of processing query about XML data using APEX
US20090077009A1 (en) System and method for storage, management and automatic indexing of structured documents
US20060161525A1 (en) Method and system for supporting structured aggregation operations on semi-structured data
US20090043806A1 (en) Efficient tuple extraction from streaming xml data
KR101718119B1 (ko) SparkSQL 기반의 SPARQL 질의 처리 수행 시스템
Hsu et al. UCIS-X: an updatable compact indexing scheme for efficient extensible markup language document updating and query evaluation
US7962473B2 (en) Methods and apparatus for performing structural joins for answering containment queries
KR20080008573A (ko) Xml 데이터로부터 연관규칙을 추출하기 위한 방법
JP5374456B2 (ja) 文書検索装置の動作方法およびこれをコンピュータに実行させるためのコンピュータプログラム
Kim et al. Efficient processing of regular path joins using PID
Leela et al. Schema-conscious XML indexing
Choi et al. Efficient filtering of branch queries for high-performance XML data services

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

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130422

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee