KR100358348B1 - Multi-Path Index Method for The Efficient Retrieval of XML Data - Google Patents

Multi-Path Index Method for The Efficient Retrieval of XML Data Download PDF

Info

Publication number
KR100358348B1
KR100358348B1 KR1020000029993A KR20000029993A KR100358348B1 KR 100358348 B1 KR100358348 B1 KR 100358348B1 KR 1020000029993 A KR1020000029993 A KR 1020000029993A KR 20000029993 A KR20000029993 A KR 20000029993A KR 100358348 B1 KR100358348 B1 KR 100358348B1
Authority
KR
South Korea
Prior art keywords
path
index
identifier
paths
search
Prior art date
Application number
KR1020000029993A
Other languages
Korean (ko)
Other versions
KR20010109665A (en
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 KR1020000029993A priority Critical patent/KR100358348B1/en
Publication of KR20010109665A publication Critical patent/KR20010109665A/en
Application granted granted Critical
Publication of KR100358348B1 publication Critical patent/KR100358348B1/en

Links

Landscapes

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

Abstract

본 발명은 XML 데이터의 효과적인 검색을 위한 다중 경로 인덱스 방법으로서, 확장된 경로식에 포함된 각각의 단일 경로에 대해 고유한 경로 식별자를 부여하며, 인덱스 키값과 경로 식별자를 조합하여 저장함으로써 하나의 인덱스만을 이용하여 다수의 경로에 대한 검색과 단일한 경로에 대한 인덱스 기능을 동시에 지원하는 다중 인덱스 방법의 제공을 목적으로 한다.The present invention relates to a multipath index method for efficiently searching XML data, which assigns a unique path identifier to each single path included in an extended path expression, stores an index key value and a path identifier in combination, The present invention provides a multiple index method that simultaneously supports searching for a plurality of paths and index function for a single path.

본 발명은 다중 경로 인덱스는 확장 경로식으로 표현되는 질의에 대한 검색 성능이 향상되며, 다수의 경로에 대한 인덱스를 통합적으로 제공함으로써 인덱스 관리가 용이 하다. 또한 확장 경로뿐만 아니라 개개의 경로에 대한 검색 기능을 제공할 수 있으며, 경로 식별자를 이용하는 방식에서 기존의 단일 경로 인덱스 기법에 쉽게 응용해서 사용할 수 있는 효과가 있으며, B+-트리를 크게 수정하지 않고 사용할 수 있어 실용성이 우수하다.The present invention improves the search performance of a query represented by an extended path expression in a multipath index, and index management is facilitated by integrally providing an index for a plurality of paths. In addition, it is possible to provide a search function for each path as well as an extension path. In addition, the method using the path identifier can be easily applied to the existing single path indexing technique, and the B + It is excellent in practicality.

Description

엑스엠엘 데이터의 효과적인 검색을 위한 다중 경로 인덱스 방법{Multi-Path Index Method for The Efficient Retrieval of XML Data}{Multi-Path Index Method for Efficient Retrieval of XML Data}

본 발명은 XML 데이터의 효과적인 검색을 위한 다중 경로 인덱스 방법에 관한 것으로, 보다 상세하게는 데이타베이스에서 여러 개의 경로, 즉 다중 경로를 간략히 나타내어 확장 경로 질의를 효율적으로 처리하기 위한 방법에 관한 것이다.The present invention relates to a multi-path index method for efficiently searching XML data, and more particularly, to a method for efficiently processing an extended path query by briefly showing a plurality of paths in a database, that is, a multi-path.

인터넷 상의 데이터 교환을 XML 데이터를 효율적으로 저장하고 검색하기 위한 많은 연구들이 최근 진행되고 있다. 특히 관계형 데이터베이스(relational database management system : RDBMS)나 객체지향 데이터베이스(object-oriented database management system : OODBMS)를 이용하여 XML 데이터를 보다 효과적으로 저장하고 검색하기 위한 연구가 활발하다. 객체지향 데이터베이스는 데이터 모델이 XML의 특성을 자연스럽게 반영할 수 있고, XML에 대한 질의어를 기존 객체 질의어를 확장하여 지원할 수 있기 때문에 XML의 저장장치로서 각광을 받고 있다.Many studies have been conducted recently to efficiently store and retrieve XML data on the Internet. Particularly, researches for storing and retrieving XML data more efficiently using a relational database management system (RDBMS) or an object-oriented database management system (OODBMS) are active. The object-oriented database is attracting attention as an XML storage device because the data model can naturally reflect the characteristics of XML and can support the existing object query language by extending the query language to XML.

종래에는 확장된 경로에 해당하는 개개의 경로의 개수가 많아지면 전체 인덱스의 개수가 많아지게 된다. 따라서 인덱스 저장 공간이 늘어나고 검색 성능도 떨어지게 된다. 특히 포인트 질의(point query)의 경우에는 더욱 성능이 나빠지는 문제점이 있었다.Conventionally, when the number of individual paths corresponding to the extended path increases, the total number of indexes increases. As a result, the index storage space is increased and search performance is deteriorated. Particularly, in the case of a point query, there is a problem that performance is further deteriorated.

또한 확장 경로에 해당하는 개개의 단일 경로를 데이터베이스 관리자가 알아내어 각각에 대해 인덱스를 설정해야 하며, 인덱스를 삭제할 때에도 관련된 확장 경로에 대해 설정된 인덱스가 어떤 것들이 있는지를 관리자가 파악해야 한다. 이 과정에서 확장된 경로에서 일부 단일 경로에 대해서는 인덱스가 존재하지 않을 수도 있어서, 일관성 있는 인덱스 관리가 어렵고 인덱스를 이용하는 이득이 감소하게 되는 문제점이 있었다.In addition, the database administrator must determine the individual single path corresponding to the extended path, and set the index for each, and when deleting the index, the administrator should know which index is set for the related extended path. In this process, the index may not exist for some single paths in the extended path, so that it is difficult to perform consistent index management and the gain using the index is decreased.

본 발명은 상기와 같은 종래기술의 문제점을 해결하기 위한 것으로, 확장된 경로식에 포함되는 각각의 단일 경로에 대해 고유한 경로 식별자를 부여하며, 인덱스 키값과 경로 식별자를 조합하여 저장함으로써 하나의 인덱스만을 이용하여 다수의 경로에 대한 검색과 단일한 경로에 대한 인덱스 기능을 동시에 지원하는 다중 인덱스 방법의 제공을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and it is an object of the present invention to provide a path identifier unique to each single path included in the extended path expression, The present invention provides a multiple index method that simultaneously supports searching for a plurality of paths and index function for a single path.

도1은 종래의 XML DTD(document type definition)프로그램.1 is a conventional XML DTD (document type definition) program.

도2는 XML DTD의 데이터를 객체 데이터베이스에 저장하기 위한 객체 데이터베이스의 스키마.Figure 2 is a schema of an object database for storing data of an XML DTD in an object database.

도3은 본 발명에 따른 다중 경로 인덱스 방법의 흐름도.3 is a flow diagram of a multipath indexing method in accordance with the present invention.

도4는 본 발명에 따른 다중 경로 인덱스 방법에서 경로식별자를 할당방법의 흐름도.4 is a flowchart illustrating a method of allocating a path identifier in a multi-path index method according to the present invention.

도5는 본 발명에 따른 경로식별자를 할당하는 알고리즘.5 is an algorithm for allocating path identifiers according to the present invention.

도6은 본 발명에 따른 다중경로 인덱스에서 단말 노드의 레코드 구조도.6 is a record structure diagram of a terminal node in a multipath index according to the present invention;

도7은 본 발명에 따른 XML문서를 객체 데이타베이스에 저장한 예시도.FIG. 7 illustrates an example of storing an XML document according to the present invention in an object database. FIG.

도8은 본 발명의 실험실시에서 사용된 경로의 구조도.8 is a structural view of a path used in the laboratory of the present invention.

도9는 본 발명의 실험실시에서 경로의 개수에 대한 포인트 질의의 성능비를 도시한 그래프.9 is a graph showing performance ratios of point queries on the number of paths in the lab time of the present invention.

도10은 본 발명의 실험실시에서 경로의 개수에 대한 영역 질의의 성능비를 도시한 그래프.10 is a graph showing performance ratios of the area queries to the number of paths in the laboratory of the present invention;

본 발명에 따른 XML 데이터의 검색을 위한 인덱스 방법은,According to the present invention, there is provided an index method for searching XML data,

주어진 확장 경로식에 해당하는 개개의 단일 경로를 찾아내고 각각에 대해 경로식별자를 할당하는 단계; 상기 단일 경로별로 데이터베이스 내의 실제 데이터를 검색하여 인덱스 정보수집를 수집하는 단계; 상기 경로 식별자 및 수집된 상기 인덱스 정보를 다중 경로 인덱스에 저장하는 단계;을 포함한다.Finding a single path corresponding to a given extended path expression and assigning a path identifier to each of the single paths; Collecting index information collection by searching actual data in the database for each single path; And storing the path identifier and the collected index information in a multi-path index.

상기 경로식별자를 할당하는 방법은, 경로 식별자를 할당하는 알고리즘에 완화경로식을 입력을 하는 제1단계; 상기 경로 식별자를 할당하는 알고리즘에서 경로검색(search-path)함수를 호출하여 상기 완화경로식에서 전경로의 가장 뒤쪽 엘리먼트와 후경로의 가장 앞쪽 엘리먼트 사이의 모든 경로를 탐색하는 제2단계; 상기 제2단계에서 탐색된 모든 경로와 해당 하부엘리먼트를 합쳐서 경로 익스텐트 집합에 삽입하는 제3단계; 상기 익스텐트가 구해지고 나면 찾아진 각각의 단일 경로에대해 경로 식별자를 할당하는 제4단계;를 포함하는 것을 특징으로 한다.The method of allocating the path identifier comprises: a first step of inputting a mitigation path expression into an algorithm for allocating a path identifier; A second step of searching for a path between a trailing element of a foreground path and a trailing element of a trailing path in the relaxation path expression by calling a search-path function in an algorithm for allocating the path identifier; A third step of inserting all the paths found in the second step and the corresponding sub-elements into a path extents set; And allocating a path identifier for each single path found when the extent is obtained.

상기 경로 식별자를 할당하는 알고리즘은, 완화 경로식을 입력받으며, 완화 경로식의 전경로의 가장 뒤쪽 엘리먼트와 후경로의 가장 앞쪽 엘리먼트 사이의 모든 경로를 상기 데이타베이스에서 검색하며, 검색된 각각의 단일 경로에 대해 경로 식별자를 할당하는 것을 특징으로 한다.The algorithm for allocating the path identifier receives the mitigation path expression and searches the database for all paths between the backmost element of the foreground path and the foremost element of the backward path of the mitigation path expression, And assigns a path identifier to the path identifier.

상기 다중 경로 인덱스의 레코드 구조는 헤더정보, 인덱스 키값, 서로 다른 경로의 개수, 해당 경로의 경로 식별자, 경로에 해당하는 객체 식별자의 개수 및 경로에 해당하는 객체의 객체 식별자들의 배열을 포함하는 것을 특징으로 한다.The record structure of the multipath index includes header information, an index key value, a number of different paths, a path identifier of the path, a number of object identifiers corresponding to the path, and an array of object identifiers of the object corresponding to the path .

다중 경로 인덱스에 대한 검색 및 갱신 방법은, 검색 경로에 대한 경로 익스텐트를 모두 구하고 경로 익스텐트내의 각각의 단일 경로에 대한 경로 식별자를 찾는 단계; 키값으로 상기 데이타베이스의 중간 노드와 최종 단말 노드를 찾는 단계; 상기 키값과 상기 경로 식별자의 값이 일치하는 객체 식별자만을 검색하는 단계;를 추가로 포함한다.A method for searching and updating a multipath index includes: obtaining all path extents for a search path and finding a path identifier for each single path in the path extent; Searching for an intermediate node and an end terminal node of the database as a key value; Searching for only an object identifier whose value of the key identifier matches the value of the path identifier.

본 발명에 따른 다중 경로 인덱스를 사용하기 위한 조건은,The conditions for using the multi-path index according to the present invention are as follows.

XML DTD 내의 엘리먼트(element)와 속성(attribute)의 이름은 해당 DTD 내에서는 유일해야 하며, 다른 DTD에 동일한 이름을 가진 것이 있더라도 서로 다른 것으로 한다. 또한 서로 다른 XML DTD에 존재하는 동일한 이름의 엘리먼트인 경우에는, 엘리먼트에 대응하여 생성되는 객체 데이터베이스 시스템에서의 클래스도 서로 다른 것으로 가정한다. 그리고 제안하는 다중 경로 인덱스 방법은 DTD 수준에서 순환(cycle)이 존재하는 경로에 대해서는 인덱스를 설정할 수 없다. 또한 동일한 이름의 속성이 다수의 엘리먼트에 대해 사용될 경우에는 그것들의 데이터 타입이 모두 동일한 것으로 가정한다.The names of the elements and attributes in the XML DTD must be unique within the DTD, and they should be different, even if they have the same name in different DTDs. In the case of elements of the same name existing in different XML DTDs, it is assumed that the classes in the object database system generated corresponding to the elements are also different. And the proposed multi - path index method can not set the index for the path where the cycle exists at the DTD level. It is also assumed that if an attribute of the same name is used for multiple elements, their data types are all the same.

다중 경로인덱스 방법은 XML에서 ID 속성값을 나타내는 IDREF를 통해 다른 XML 객체를 가리키는 경우나 동일한 XML 객체 내의 다른 객체를 가리키는 경우들에 대해서는 질의 경로를 사용할 수 없는 것으로 한다. IDREF의 경우 실제 그것이 참조할 대상이 어떤 타입의 객체가 될 지 알 수 없으므로 객체 데이타베이스 시스템의 스키마 상에서 참조관계를 그래프로 표현할 수 없게 되어 경로 인덱스를 사용할 수가 없기 때문이다.The multipath index method can not use the query path when referring to another XML object through IDREF that represents ID property value in XML or when pointing to another object in the same XML object. In the case of IDREF, it is not possible to know what kind of object it will actually refer to because it can not express the reference relationship graph in the schema of the object database system, and thus the path index can not be used.

모든 객체에 대해 상부객체는 하나만 존재한다. 즉 동일한 객체가 여러개의 객체에 의해 공유되는 경우는 없다. 그러나 하나의 상부객체에 대해 다수의 하부객체가 존재할 수 있다. 또한 하부객체는 상부객체에 대한 객체식별자(OID)를 유지한다. 그러나 상부객체에 대한 참조는 시스템 내부에만 유지되며 응용 프로그램 수준에서는 드러나지 않는다. 앞서 가정한 바와 같이 IDREF에 의한 참조관계를 객체 데이타베이스 시스템 수준에서의 참조관계로 지원하지 않는 점을 고려할 때, XML DTD에 해당하는 객체 데이타베이스의 스키마는 DAG형태가 될 것이므로 하나의 XML 객체를 나타내는 객체 데이타베이스의 객체들은 트리 형태로 나타내어 질 수 있다. 이 때 XML 객체를 나타내는 객체 데이타베이스에서 객체들의 최상위 객체를 '루트 객체'로 정의한다. 그리고 해당 트리의 최상위 객체는 DTD 타입의 이름을 가지는 객체 데이타베시스 시스템 클래스의 객체가 된다. 객체 데이타베시스 시스템으로변환된 모든 XML의 엘리먼트에 대해서는 각각의 엘리먼트(혹은 클래스)에 대한 익스텐트 객체가 생성되고 이 객체는 해당 클래스의 모든 인스턴스들에 대한 포인터를 유지하고 있어 질의를 처리할 수 있게 한다. XML 데이터를 저장하는데 있어 일반 데이터와의 차이점은 루트 객체로부터 출발하는 부분 참조 경로(partial path instanciation)는 존재할 수 있으나, 루트가 아닌 객체로부터 경로가 생성되는 경우는 없는 것으로 한다.There is only one top object for all objects. In other words, the same object is not shared by multiple objects. However, there can be multiple subobjects for one topobject. The lower object also maintains an object identifier (OID) for the upper object. However, references to the upper object are maintained only within the system and are not exposed at the application level. Considering that the reference relation by IDREF is not supported by the reference relationship at the level of the object database system, as assumed above, the schema of the object database corresponding to the XML DTD will be a DAG type, Objects in the object database can be represented in tree form. At this time, the top object of the objects in the object database representing the XML object is defined as a 'root object'. The top-level object in the tree is the object of the object database system class with the DTD type name. For every element of XML that is transformed into an object database system, an Extent object for each element (or class) is created, which maintains a pointer to all instances of the class, do. The difference from the general data in storing XML data is that partial path instanciation starting from the root object may exist but the path is not generated from non-root object.

예를 들어 '1'이 루트 객체를 나타낼 때, 1-2-3-4-5 또는 1-2-3 형태의 참조 경로는 존재할 수 있으나 1-2-3 없이 3-4-5의 형태는 없다는 점이다. 왜냐하면 루트를 제외한 모든 객체는 상부객체 - 하부객체의 참조 관계를 가져야 하기 때문이다.For example, when a '1' represents a root object, a reference path of the form 1-2-3-4-5 or 1-2-3 may exist, but the form 3-4-5 without 1-2-3 It is not. This is because all objects except root must have a reference relationship between the upper object and the lower object.

용어 정의Term Definition

객체 질의어에서 사용되는 기존의 경로식은 하나의 경로만을 나타내므로 단일 경로식이라 할 때, 기존 경로식 표현에 '*'문자를 결합하여 다음과 같은 형태로 나타낸 경로식을 완화 경로식(relaxed path expression)이라 한다.Since the existing path expressions used in the object query language represent only one path, when a single path expression is used, a path expression represented by the following form by combining '*' characters with an existing path expression is referred to as a relaxed path expression, Quot;

A.B.C.D 와 A.B.C.D.D1과 같은 기존의 경로식은 단순 경로식이고, A.*.D 또는 A.B.*.D.D1과 같은 경로식은 완화 경로식이며, 네가지 모두 확장 경로식 이다. A.*.D와 A.B.*.D.D1의 전경로는 각각 A와 A.B이고, 후경로는 각각 D와 D.D1이 된다.Existing path expressions such as A.B.C.D. and A.B.C.D.D1 are simple path expressions, and path expressions such as A. * .D or A.B. * .D.D1 are mitigation path expressions, all of which are extension path expressions. A. * .D and A.B. * D.D1 are A and A.B respectively, and the back path is D and D.D1 respectively.

XML의 DTD 엘리먼트 또는 객체 데이타베시스 시스템의 스키마에서 나타난 클래스의 이름에 의한 경로식을 '스키마 경로'라 하고, 그것이 질의에 사용되었을 때는 '질의 경로'라 정의한다. 스키마 경로에 따라 데이터베이스에 저장된 일련의 객체들은 '경로 인스턴스(path instance)' 또는 '객체 경로(object path)'로 정의한다.A DTD element in XML or a path expression by the name of a class that appears in the schema of an object database system is called a 'schema path', and it is defined as a 'query path' when it is used in a query. A set of objects stored in the database according to a schema path is defined as a 'path instance' or 'object path'.

경로 식별자를 할당하는 알고리즘에 있어서In an algorithm for allocating path identifiers

Pi - 인덱스 경로.Pi - The index path.

Di - 인덱스의 방향, 즉 순방향(forward, 경로의 방향과 일치) 또는 역방향(backward, 경로의 역방향).Di - The direction of the index, forward (to match the direction of the path) or backward (reverse of the path).

KAi - 키가 되는 속성의 이름.KAi - The name of the attribute to be keyed.

Hi - 경로의 시작 클래스로서 순방향 인덱스의 경우에는 후경로의 가장 앞쪽 엘리먼트(head(post_path(P))), 역방향의 경우에는 전경로의 가장 뒤쪽 엘리먼트(tail(post_path(P)))에 해당한다.The start class of the Hi-path corresponds to the forward element (head (post_path (P)) of the backward path in the case of a forward index and the tail (post_path (P)) of the foreground path in the reverse direction .

Ti - 경로의 끝 크랠스로서 순방향 인덱스의 경우에는 전경로의 가장 뒤쪽 엘리먼트(tail(post_path(P))), 역방향의 경우에는 후경로의 가장 앞쪽 엘리먼트(head(post_path(P)))에 해당한다.(The tail (post_path (P)) of the foreground path in the case of a forward index, and the head (post_path (P)) of the backward path in the reverse direction do.

Ei - 인덱스 i를 통해 검색 가능한 모든 경로 =.Ei - all searchable paths through index i = .

BTi - 인덱스 데이터를 저장하고 있는 B+-트리 객체의 객체 식별자.BTi - The object identifier of the B + - tree object storing the index data.

각 단일 경로별 정보 :에서,For each single path: in,

- 경로식, - path expression,

- 경로에 해당하는 경로 인스턴스의 개수, - the number of path instances corresponding to the path,

PID - 경로 식별자 이다.PID - Path identifier.

이하 도면을 참조하여 상세히 설명한다. 그러나, 이들 도면은 예시적인 목적일 뿐 본 발명이 이에 한정되는 것은 아니다.Hereinafter, the present invention will be described in detail with reference to the drawings. However, these drawings are for illustrative purposes only and the present invention is not limited thereto.

도1은 종래 XML DTD(document type definition)의 일 예를 보인 것이다. 도2는 도1의 XML DTD의 데이터를 객체지향 데이타베이스에 저장하기 위한 객체지향 데이타베이스의 스키마의 일 예를 보인 것이며, 도2에서 네모칸과 이탤릭체 문자열은 각각 클래스와 클래스의 속성의 일예를 보인 것이다.1 shows an example of a conventional XML DTD (document type definition). FIG. 2 shows an example of a schema of an object-oriented database for storing data of the XML DTD of FIG. 1 in an object-oriented database. In FIG. 2, a square and an italic string show an example of attributes of classes and classes, respectively will be.

도3은 본 발명에 따른 다중 경로 인덱스를 구성하는 방법의 흐름도 이다.3 is a flow chart of a method for constructing a multipath index according to the present invention.

다중 경로 인덱스를 구성하는 방법, 주어진 확장 경로식에 해당하는 개개의 단일 경로를 찾아내고, 각각에 대해 경로식별자를 할당하는 단계(S100), 상기 단일 경로별로 데이터베이스 내의 실제 데이터를 검색하여 인덱스 정보수집를 수집하는 단계(S200), 상기 경로 식별자 및 수집된 상기 인덱스 정보를 다중 경로 인덱스에 저장하는 단계(S300);로 되어 있다.A method for constructing a multi-path index, finding individual paths corresponding to a given extended path expression, and allocating path identifiers for each path (S100), searching actual data in the database for each single path, (S200), storing the path identifier and the collected index information in a multi-path index (S300).

도4는 본 발명에 따른 다중 경로 인덱스 방법에서 경로식별자를 할당하는 흐름도 이다.4 is a flowchart illustrating a method of assigning a path identifier in the multipath index method according to the present invention.

경로식별자를 할당하는 방법은, 경로 식별자를 할당하는 알고리즘에 완화경로식을 입력을 하는 제1단계(S110), 상기 경로 식별자를 할당하는 알고리즘에서 경로검색(search-path)함수를 호출하여 상기 완화경로식에서 전경로의 가장 뒤쪽 엘리먼트와 후경로의 가장 앞쪽 엘리먼트 사이의 모든 경로를 탐색하는 제2단계(S120), 상기 제2단계(S120)에서 탐색된 모든 경로와 해당 하부 엘리먼트를 합쳐서 경로 익스텐트 집합에 삽입하는 제3단계(S130), 상기 익스텐트가 구해지고 나면 찾아진 각각의 단일 경로에 대해 경로 식별자를 할당하는 제4단계(S140)로 되어 있다.A method of allocating a path identifier includes a first step (S110) of inputting a mitigation path expression to an algorithm for allocating a path identifier, a search-path function is called in the algorithm for allocating the path identifier, A second step S120 of searching for all paths between the trailing element of the path expression and the frontmost element of the trailing path in step S120, a step of combining all the traversal traversed in the second step S120 and the corresponding lower element, A third step S130 of inserting the path identifier into the single path, and a fourth step S140 of allocating a path identifier to each single path found when the extent is obtained.

도5는 본 발명에 따른 경로식별자를 할당하는 알고리즘이다.5 is an algorithm for allocating path identifiers according to the present invention.

XML DTD와 인덱스를 설정할 확장 경로식 P가 주어졌을 때, 주어진 XML DTD를 만족하면서 P에 속하는 모든 단일 경로식을 해당 경로식에 대한 `경로 익스텐트'라 정의하고로 나타낸다. 도5의 알고리즘은 주어진 확장 경로식에 대한 경로 익스텐트를 구하고, 경로 식별자를 할당하는 알고리즘을 나타낸 것이다. XML DTD를 객체 데이터베이스 스키마로 변환하였을 경우 질의문에서 경로식으로 표현될 수 있는 곳은 원래의 XML DTD에서 상부 엘리먼트와 하부 엘리먼트 또는, 엘리먼트와 속성 관계를 이용하여 경로 익스텐트를 찾아낼 수가 있다.Given an XML DTD and an extended path expression P to set the index, all single-path expressions belonging to P satisfy the given XML DTD and are defined as `path extents' for that path expression Respectively. The algorithm of FIG. 5 shows an algorithm for obtaining a path extent for a given extended path expression and assigning a path identifier. When the XML DTD is converted into the object database schema, the path extents can be found in the original XML DTD by using the upper element and the lower element or the element and attribute relation in the original XML DTD.

도5의 알고리즘에서 사용되는head(P)는경로 P의 가장 앞쪽 엘리먼트를 나타내며,tail(P)는경로 P의 가장 뒤쪽 엘리먼트 혹은 속성을 나타낸다. 그리고 엘리먼트 E에 대한child(E)는 E를 구성하는 하부엘리먼트 또는 E의 속성들의 집합을 나타내는 것으로 한다.The head (P) used in the algorithm of FIG. 5 represents the frontmost element of the path P, and tail (P) represents the rearmost element or attribute of the path P. And child ( E ) for element E represents the set of attributes of E or E that constitute E.

도5의 알고리즘은 주어진 경로식이 '*'를 포함하지 않는 단일 경로식인 경우에는 주어진 경로식만으로 경로 익스텐트를 삼는다. 만일 완화 경로식이 주어진 경우에는 '전경로의 가장 뒤쪽 엘리먼트(tail(pre_path(P)))'부터 '후경로의 가장 앞쪽 엘리먼트 혹은 속성(head(post_path(P)))' 사이의 모든 경로를 찾기 위해 '경로검색(search_path)' 함수를 호출한다.The algorithm of FIG. 5 assumes path extents only for a given path expression if the given path expression is a single path expression that does not include '*'. If the mitigation path expression is given, all paths between the trailing element ( tail (pre_path (P))) of the foreground path and the frontmost element or attribute ( head (post_path (P))) Call the ' search_path ' function.

경로검색(search_path)함수는, 인자로 넘겨 받은 엘리먼트(e)의 하부 엘리먼트(c) 중에서 후경로의 가장 앞쪽 엘리먼트(head(post_path(P)))와 동일한 것이 있는지를 검색한다. 동일한 엘리먼트가 있으면, 검색과정에서 스택에 저장된 탐색 경로 정보와 해당 하부 엘리먼트(혹은 속성)를 합쳐서 경로 익스텐트 집합에 삽입한다. 만일 하부 엘리번트(c)에 하부 엘리먼트가 존재하면, 경로검색(search_path)함수를 재귀 호출(recursive call)하여 탐색을 계속한다.The search_path function searches for the element (head (post_path (P)) that is the forefront element of the backward path among the elements (c) of the element ( e ) If there is the same element, search path information stored in the stack and its corresponding sub-element (or attribute) are combined and inserted into the path extent set. If there is a lower element in the lower Elient burst (c), the search is continued by recursive call of the search_path function.

이러한 탐색 과정은 하부 엘리먼트가 없는 단말 엘리먼트(leaf element)나 속성을 방문할 때까지 계속된다. 익스텐트가 구해지고 나면 찾아진 각각의 단일 경로에 대해 경로 식별자를 할당한다.This search process continues until a leaf element or attribute without a sub-element is visited. Once extents are obtained, they are assigned path identifiers for each single path found.

예를 들어 설명하면 도1의 XML DTD에 대해 도5의 알고리즘을 이용하여 확장 경로식 book.chapter.*.title의 경로익스텐트에 속하는 단일 경로에 경로 식별자를 할당하면 다음과 같다.For example, a path identifier is assigned to a single path belonging to the path extent of the extended path expression book.chapter. *. Title using the algorithm of FIG. 5 for the XML DTD of FIG. 1 as follows.

book.chapter.title - 경로식별자(PID) : 1book.chapter.title - path identifier (PID): 1

book.chapter.section.title - 경로식별자(PID) : 2book.chapter.section.title - Path identifier (PID): 2

book.chapter.section.subsection.title - 경로식별자(PID) : 3book.chapter.section.subsection.title - Path identifier (PID): 3

도6는 본 발명에 따른 다중경로 인덱스에서 단말 노드의 레코드 구조도 이다.FIG. 6 is a record structure diagram of a terminal node in a multipath index according to the present invention.

다중 경로 인덱스의 인덱스 정보는 단말 레코드의 구조를 변경시킨 B+-트리를 이용하여 저장한다. 다중 경로 인덱스에서 단말 노드의 레코드 구조의 각 부분이 설명하면,The index information of the multipath index is stored using the B + - tree in which the structure of the terminal record is changed. When each part of the record structure of the terminal node in the multipath index is described,

record header -- 해당 레코드의 크기 등을 기록한 헤더 정보,record header - header information that records the size of the record,

key value -- 인덱스 키값,key value - the index key value,

# paths -- 서로 다른 경로의 개수,# paths - the number of different paths,

PID-- 해당 경로의 경로 식별자, PID - Path identifier of the path,

# OIDs-- 경로에 해당하는 객체 식별자의 개수, # OIDs - the number of object identifiers corresponding to the path,

OIDs-- 경로에 해당하는 객체의 객체 식별자들의 배열, 이다. OIDs - an array of object identifiers for the object corresponding to the path.

여기서 경로 식별자는 상기 경로 식별자 할당 알고리즘에 의해 주어진다. 다중 경로 인덱스의 중간 노드 구조는 일반적인 B+-트리의 중간 노드 구조와 동일하다.Where the path identifier is given by the path identifier assignment algorithm. The intermediate node structure of the multipath index is the same as the intermediate node structure of a general B + - tree.

도7은 본 발명에 따른 XML문서를 객체 데이타베이스에 저장한 예시도 이다.FIG. 7 illustrates an XML document stored in an object database according to an exemplary embodiment of the present invention. Referring to FIG.

도7은 도1에서 제시된 XML DTD 스키마에 따르는 XML 문서들을 객체 데이타베이스에 저장한 것으로 데이터베이스의 일부만을 나타낸 것이다. 도7에서 원은 객체(object)를 의미하며 원 내의 숫자는 해당 객체의 객체 식별자를 의미한다. 원 옆의 숫자는 mdate의 값이다. 이 데이터베이스에 대해 경로 book.chapter.*.mdate에 대한 다중 경로 인덱스를 i라 할 때, i는 다음과 같이 구현된다.FIG. 7 is a diagram showing a part of a database in which XML documents conforming to the XML DTD schema shown in FIG. 1 are stored in an object database. In FIG. 7, a circle means an object, and a number in a circle means an object identifier of the object. The number next to the circle is the value of mdate. For this database, i is a multipath index for the path book.chapter. *. Mdate, i is implemented as follows:

Pi - book.chapter.*.mdatePi - book.chapter. *. Mdate

Di - backwardDi - backward

KAi - mdateKAi - mdate

Hi - bookHi-book

Ti - mdateTi - mdate

Ei - book.chapter.body.mdateEi - book.chapter.body.mdate

book.chapter.subsection.body.mdatebook.chapter.subsection.body.mdate

book.chapter.section.subsection.body.mdatebook.chapter.section.subsection.body.mdate

경로별 정보Information by route

book.chapter.body.mdate - PID : 1,:2book.chapter.body.mdate - PID: 1, :2

book.chapter.subsection.body.mdate - PID : 2,:2book.chapter.subsection.body.mdate - PID: 2, :2

book.chapter.section.subsection.body.mdate - PID : 3,:7book.chapter.section.subsection.body.mdate - PID: 3, : 7

도7을 참고로 인덱스 내의 단말레코드는 나타내면 다음과 같다.(record header 정보는 생략)Referring to FIG. 7, the terminal records in the index are as follows (record header information is omitted)

"1999:11:03",3,(1,1,o2),(2,1,o1),(3,1,o1))"1999: 11: 03", 3, (1,1, 0), (2,1,

"2000:01:01",3,(1,1,o1),(2,1,o2),(3,4,o1,o2,o2))"2000: 01: 01", 3, (1,1, o1), (2,1, o2), (3,4, o1, o2,

"2000:02:01",1,(3,2,o1,o2))"2000: 02: 01", 1, (3,2, o1, o2))

다중 경로인덱스의 검색 및 갱신 방법,A method for searching and updating a multi-path index,

다중 경로 인덱스에 대한 검색 과정은 일반 B+-트리와 동일하되 단말 레코드의 검색만을 달리한다. 즉 B+-트리와 동일한 방식으로 인덱스 트리를 탐색하되 최종적으로 단말 노드에서만 주어진 질의 경로를 만족하는 객체 식별자만을 선택하면 된다. 따라서 원하는 검색 경로에 대한 경로 익스텐트를 모두 구하고 경로 익스텐트 내의 각각의 단일 경로에 대한 경로 식별자를 찾아낸다. 그리고 나면 주어진 키값으로 중간 노드와 최종 단말 노드를 찾은 다음, 키값과 경로 식별자의 값이 일치하는 객체 식별자만을 검색하면 된다.The search process for a multipath index is the same as that of a general B + - tree, except that only the search of the terminal records is different. In other words, the index tree is searched in the same manner as the B + - tree, but only the object identifier satisfying the given query path is selected only in the terminal node. Therefore, we obtain all the path extents for the desired search path and find the path identifiers for each single path in the path extent. Then, the intermediate node and the end terminal node are searched by the given key value, and only the object identifier whose key value matches the path identifier value is searched.

예를 들어 설명하면, 도6에서 보는 바와 같이For example, as shown in FIG. 6,

select b from b in Books where b.chapter.section.*.mdate = "1999:11:03";의 경로인 book.chapter.section.*.mdate의 경로 익스턴트는The path exponent of book.chapter.section. *. mdate, the path to select b from b in Books where b.chapter.section. *. mdate = "1999: 11:

book.chater.section.body.mdate와With book.chater.section.body.mdate

book.chater.section.subsection.body.mdate이고 해당되는 경로 식별자 (PID)는 2와 3이 된다. 따라서 "1999:11:03"으로 인덱스를 검색한 다음, 단말 노드 중에서 키값이 일치하고 PID가 2 또는 3이 되는 객체 식별자를 검색하면 o1을 찾을 수 있다.book.chater.section.subsection.body.mdate and its corresponding path identifier (PID) is 2 and 3. Therefore, when the index is searched for "1999: 11: 03", and the key identifier of the terminal node is matched and the object identifier having the PID of 2 or 3 is searched, o1 can be found.

select b from b in Books where b.chapter.*.mdate = "2000:02:01";의 경로인 b.chapter.*.mdate의 경로 익스턴트는The path extents of b.chapter. *. mdate, which is the path to select b from b in Books where b.chapter. *. mdate = "2000: 02:

book.chater.section.subsection.body.mdate이고 해당되는 경로 식별자(PID)는 3이 된다. 따라서 "2000:02:01"으로 인덱스를 검색한 다음, 단말 노드 중에서 키값이 일치하고 PID가 3이 되는 객체 식별자를 검색하면 o1과 02를 찾을 수 있다.book.chater.section.subsection.body.mdate and the corresponding path identifier (PID) is 3. Therefore, when the index is searched for "2000: 02: 01", and the key identifier of the terminal node matches and the PID of the object identifier is 3, o1 and 02 can be found.

다중 경로 인덱스는 중첩 인덱스와 같이 지정된 경로에 대해 키값과 경로의 끝에 해당하는 객체의 객체 식별자를 유지하는 방식이다. 따라서 객체들간의 참조 관게가 삽입, 삭제 또는 변경되는 경우에는 중첩 인덱스와 동일하게 삽입 또는 삭제가 일어난 객체 경로의 양 끝을 탐색하여 경로에 대한 변경 정보를 구하고 그것을 인덱스에 반영하여야 한다.A multipath index is a method of maintaining the key value and the object identifier of the object corresponding to the end of the path for a specified path, such as a nested index. Therefore, when a reference reference between objects is inserted, deleted or changed, the change information for the path should be obtained by searching both ends of the object path where insertion or deletion occurred, as in the case of the overlap index, and reflecting the change information in the index.

실험실시예Laboratory example

임의의 확장 경로식에 대해 다중 경로 인덱스를 사용한 인덱스 방법과 여러 개의 단일 경로 인덱스를 사용한 방식과의 성능을 비교하였다. 단일 경로에 대한 기존의 인덱스 방법은 여러 가지가 있지만 기존 인덱스 방법 중에서 중첩 인덱스가 검색 성능이 가장 우수한 것으로 알려져 있기 때문에, 본 실험에서는 단일 경로에 대한 인덱스 기법으로 중첩 인덱스를 사용하였으며 인덱스들의 성능을 정량적으로 분석하였다.We compared the performance of indexing method using multipath index and the method using several single path indexes for arbitrary extended path expressions. Since there are many existing index methods for a single path, it is known that among the existing index methods, the search performance of the overlapped index is the best. In this experiment, a superposition index is used as a single path index method. Respectively.

도8은 본 발명에 따른 실험 실시예에서 사용된 경로의 구조도로서, 경로식을 객체 데이타베이스(OODBMS)의 스키마 형태로 나타낸 것이다. 각 경로의 중간에 존재할 수 있는 클래스(엘리먼트)는 생략한 것으로 경로의 시작 클래스인와 경로의 끝을 나타내는 클래스을 나타낸 것이다. 여기서 N은 서로 다른 경로의 개수를 나타낸 것으로 도8에 나타난 경로의 끝 클래스의 개수와 동일하다.FIG. 8 is a structural diagram of a path used in an experimental example according to the present invention, in which a path expression is expressed in the form of a schema of an object database (OODBMS). The class (element) that may exist in the middle of each path is omitted, and the start class of the path And the class that represents the end of the path Lt; / RTI > Here, N represents the number of different paths and is equal to the number of end classes of the path shown in FIG.

표1은 실험에 사용된 인자들을 나타낸다. 중첩 인덱스의 경우에는 각 경로에 대해 인덱스를 하나씩 설치하게 되므로 경로의 개수 만큼의 인덱스를 사용하게 된다. 반면 다중 경로 인덱스의 경우에는 경로의 개수에 상관없이 하나의 인덱스만을 사용한다.Table 1 shows the parameters used in the experiment. In the case of a nested index, one index is installed for each path, so the index is used as many as the number of paths. On the other hand, in the case of a multipath index, only one index is used regardless of the number of paths.

경로당 팬-아웃(f)은 클래스로부터 클래스에 이르는 임의의 단일 경로에 대해 한 객체로부터 연결되는 클래스의 인스턴스의 개수(에 속하는 객체의 개수)를 나타낸다. 따라서 만일 N=8이고 f=10이면의 한 객체에 대해 8개의 서로 다른 단일 경로가 존재하고 각 단일 경로에 대해 10개씩의 객체가 연결되므로 모두 80개의 객체가 연결되어 있음을 의미한다. kl은 키의 크기, kr은 중복된 키의 개수를 나타낸다.The per-fan-out (f) From class A class that is connected from an object to any single path to The number of instances of The number of objects belonging to " Thus if N = 8 and f = 10 There are 8 different single paths for one object and 10 objects are connected for each single path, meaning that 80 objects are connected to each other. kl is the size of the key, and kr is the number of duplicate keys.

실험은 크게 포인트 질의와 영역 질의로 구분하여 수행하였다. 포인트 질의는 주어진 키값에 정확히 일치하는(exact match)키값만을 검색하는 것이고, 영역 질의는 일정 범위의 키값에 해당하는 객체를 검색하는 것이다. 성능 비교는 각 인덱스 기법에 대해 주어진 질의를 처리하기 위한 질의 처리 비용을 기준으로 하였고, 질의 처리 비용은 질의를 처리하는 과정에서 접근해야 하는 예상 인덱스 페이지의 개수로 정의 하였다.Experiments were divided into point query and domain query. The point query is to search only key values that match exactly the given key value, and the domain query is to search for objects that correspond to a range of key values. Performance comparison is based on query processing cost to process a given query for each index technique and query processing cost is defined as the number of expected index pages to be accessed in the process of query processing.

도9는 본 발명에 따른 실험 실시예에 있어서 경로의 개수에 대한 영역 질의의 성능비를 도시한 그래프이다.9 is a graph showing the performance ratio of the area query to the number of paths in the experimental example according to the present invention.

도9는 포인트 질의에 대한 다중 경로 인덱스의 질의 처리 비용을 중첩 인덱스의 질의 처리 비용으로 나눈 것이다. 그림에서 'F-*'와 'B-*'는 각각 전방향 인덱스에 대한 성능 비교와 역방향 인덱스에 대한 성능 비교를 나타낸다. 전방향 인덱스란 인덱스의 키값이의 인스턴스에 위치하는 것을 의미한다. 따라서 이 경우에는 인덱스는 검색하고자 하는 키값을 갖는의 인스턴스에 연결된의 인스턴스를 알려 준다. 반대로 역방향 인덱스는 키값이의 인스턴스에 위치하며 검색하고자 하는 키값을 갖는의 인스턴스에 연결된의 인스턴스를 검색해 준다. F(또는 B)의 뒤에 연결된 1/10/100은kr의 값을 나타낸다. 그리고으로 설정하였다.f,c,kl의 값이 다른 경우에도 성능비는 도8과 유사한 결과를 나타내었다.FIG. 9 shows the query processing cost of the multipath index for the point query divided by the query processing cost of the overlap index. In the figure, 'F- *' and 'B- *' represent the performance comparison for the forward index and the performance comparison for the reverse index, respectively. The omnidirectional index is the key value of the index. Quot; < / RTI > Therefore, in this case, the index has a key value to be searched Linked to an instance of The instance of. In contrast, the reverse index ≪ / RTI > located in an instance of < RTI ID = 0.0 > Linked to an instance of Search for instances of. 1/10/100 connected after F (or B) represents the value of kr . And Respectively. Even if the values of f , c , and kl are different, the performance ratio is similar to that shown in FIG.

도9에서 모든 경우에 대해 경로의 개수가 많아질수록 다중 경로 인덱스의 검색 성능이 중첩 인덱스의 성능에 비해 월등히 나아짐을 알 수 있다. 중첩 인덱스의 경우에는 각 경로에 대해 인덱스가 하나씩 존재하므로 주어진 질의를 처리하기 위해서는 모든 인덱스를 검색해야 하기 때문이다.In FIG. 9, it can be seen that the search performance of the multipath index is significantly improved as the number of paths increases for all cases. In the case of a nested index, there is one index for each path, so all indexes must be searched to process a given query.

포인트 질의는 특히 인덱스의 높이에 영향을 받게 되는데, 단일 경로 인덱스를 사용하는 경우에는 여러 개의 인덱스를 방문하므로 질의 처리 비용은 인덱스 개수에 선형적으로 비례하게 된다. 반면 다중 경로 인덱스는 하나의 인덱스를 사용하므로 경로의 개수가 늘어나더라도 인덱스의 높이는 크게 차이가 나지 않기 때문에(보통 3 ~ 5) 경로의 개수에 따른 포인트 질의 처리 비용에는 별반 차이가 없다. 따라서 경로의 개수가 늘어날수록 다중 경로 인덱스의 검색성능이 월등히 우수하게 된다.Point queries are particularly affected by the height of the index. When a single-path index is used, the cost of query processing is linearly proportional to the number of indexes because the indexes are visited. On the other hand, since the multipath index uses one index, the height of the index does not greatly differ even when the number of paths increases, so there is no difference in the cost of processing the point query according to the number of paths. Therefore, as the number of paths increases, the search performance of the multi-path index becomes much better.

도10은 본 발명에 따른 실험 실시예에 있어서 경로의 개수에 대한 포인트 질의의 성능비를 도시한 그래프이다.10 is a graph showing the performance ratio of the point query to the number of paths in the experimental example according to the present invention.

도10은 도9와 동일한 방식으로 실험을 수행하되, 영역 질의에 대한 성능비를 나타낸 것이다. 도9와 동일하게으로 설정하였으며,f,c,kl의 값을 다르게 한 경우에도 성능비는 그림10과 유사한 결과를 나타내었다.FIG. 10 is a graph illustrating the performance ratio of the area query performed in the same manner as FIG. 9 And the performance ratio is similar to that of Fig. 10 even when the values of f , c , and kl are different.

도10은 영역 질의에 대해서 경로의 개수가 많아질수록 다중 경로 인덱스가 중첩 인덱스보다 상대적으로 성능이 우수함을 보여준다. 영역 질의의 경우에는 인덱스의 단말 노드(또는 페이지)의 개수가 성능에 주요한 영향을 미치게 되는데 다중 경로 인덱스와 중첩 인덱스 모두 경로의 개수가 늘어남에 따라 단말 노드의 개수가 늘어나지만 상대적으로 중첩 인덱스의 단말 노드 개수가 많이 늘어난다. 왜냐하면 다중 경로 인덱스의 경우에는 경로의 개수가 증가하면 동일한 키값에 포함되는 경로식별자(PID)와 객체 식별자의 개수만이 늘어나기 때문에, 단말 레코드의 크기가 조금씩 증가하는 것에 반해 중첩 인덱스의 경우에는 단일 경로 인덱스의 개수가 늘어나므로 모든 단일 경로 인덱스의 단말 노드 개수를 합한 것은 다중 경로 인덱스의 경우보다 급격하게 늘어나게 되기 때문이다.FIG. 10 shows that as the number of paths increases for the area query, the multipath index performs better than the overlap index. In the case of the area query, the number of end nodes (or pages) of the index has a major effect on performance. As the number of paths increases in both the multipath index and the nested index, the number of end nodes increases, The number of nodes is greatly increased. In the case of the multipath index, as the number of paths increases, only the number of PIDs and object identifiers included in the same key value increases, so that the size of the terminal records increases slightly, whereas in the case of the overlap index, Since the number of path indexes increases, the sum of the number of terminal nodes of all single path indexes increases more rapidly than that of the multi-path indexes.

이 점은 또한 B-1의 경우에 다중 경로 인덱스가 경로의 개수에 상관없이 중첩 인덱스보다 성능이 5%정도 떨어지는 현상을 설명해 준다. 즉, B-1은 역방향 인덱스를 사용하고 키의 값이 중복되지 않는 경우로, 경로의 개수가 늘어나더라도 계속해서 새로운 키값이 추가되되므로 중첩 인덱스와 마찬가지로 다중 경로 인덱스의 경우에도 단말노드의 개수가 늘어나게 되어 상대적인 성능이 향상되지 않게 된다. 또한 부가적으로 사용하는 경로식별자(PID)와 같은 필드의 영향으로 단말 레코드의 크기가 늘어나 오히려 중첩 인덱스보다 많은 수의 단말 노드를 사용하게 되므로 그 성능이 중첩 인덱스보다 다소 떨어지게 되는 것이다.This point also explains the case where the multipath index in the case of B-1 falls by about 5% compared with the overlap index regardless of the number of paths. That is, B-1 uses a reverse index and the value of the key does not overlap. Even if the number of paths increases, a new key value is added continuously. Therefore, in the case of the multi-path index, The relative performance is not improved. Also, since the size of the terminal record increases due to the field such as the additional path identifier (PID) used, the number of terminal nodes is larger than that of the overlap index, so that the performance is somewhat lower than the overlap index.

이상과 같이 본 발명에 의하면,As described above, according to the present invention,

다중 경로 인덱스는 확장 경로식으로 표현되는 질의에 대한 검색 성능이 향상되며, 다수의 경로에 대한 인덱스를 통합적으로 제공함으로써 인덱스 관리가 용이 하다. 또한 확장 경로뿐만 아니라 개개의 경로에 대한 검색 기능을 제공할 수 있으며, 경로 식별자를 이용하는 방식에서 기존의 단일 경로 인덱스 기법에 쉽게 응용해서 사용할 수 있는 효과가 있으며, B+-트리를 크게 수정하지 않고 사용할 수 있어 실용성이 우수하다는 효과가 있다.The multi-path index improves the retrieval performance of the query represented by the extended path expression, and index management is facilitated by integrally providing indexes for a plurality of paths. In addition, it is possible to provide a search function for each path as well as an extension path. In addition, the method using the path identifier can be easily applied to the existing single path indexing technique, and the B + There is an effect that the practicality is excellent.

Claims (5)

주어진 확장 경로식에 해당하는 개개의 단일 경로를 찾아내고 각각에 대해 경로식별자를 할당하는 단계;Finding a single path corresponding to a given extended path expression and assigning a path identifier to each of the single paths; 상기 단일 경로별로 데이터베이스 내의 실제 데이터를 검색하여 인덱스 정보수집하는 단계;Collecting index information by searching actual data in a database for each single path; 상기 경로 식별자 및 수집된 상기 인덱스 정보를 다중 경로 인덱스에 저장하는 단계;을 포함하는 XML 데이터의 효과적인 검색을 위한 다중 경로 인덱스 방법.And storing the path identifier and the collected index information in a multi-path index. 제1항에 있어서,The method according to claim 1, 경로식별자를 할당하는 방법은,A method of allocating a path identifier is as follows. 경로 식별자를 할당하는 알고리즘에 완화경로식을 입력을 하는 제1단계;A first step of inputting a mitigation path expression into an algorithm for allocating path identifiers; 상기 경로 식별자를 할당하는 알고리즘에서 경로검색(search-path)함수를 호출하여 상기 완화경로식에서 전경로의 가장 뒤쪽 엘리먼트와 후경로의 가장 앞쪽 엘리먼트 사이의 모든 경로를 탐색하는 제2단계;A second step of searching for a path between a trailing element of a foreground path and a trailing element of a trailing path in the relaxation path expression by calling a search-path function in an algorithm for allocating the path identifier; 상기 제2단계에서 탐색된 모든 경로와 해당 하부 엘리먼트를 합쳐서 경로 익스텐트 집합에 삽입하는 제3단계;A third step of inserting all the paths found in the second step and the corresponding sub-elements into a path extents set; 상기 익스텐트가 구해지고 나면 찾아진 각각의 단일 경로에 대해 경로 식별자를 할당하는 제4단계;를 포함하는 것을 특징으로 하는 XML 데이터의 효과적인 검색을 위한 다중 경로 인덱스 방법.And a fourth step of allocating a path identifier for each single path found when the extent is obtained. 제2항에 있어서The method according to claim 2, wherein 상기 경로 식별자를 할당하는 알고리즘은,The algorithm for allocating the path identifier comprises: 완화 경로식을 입력받으며, 완화 경로식의 전경로의 가장 뒤쪽 엘리먼트와 후경로의 가장 앞쪽 엘리먼트 사이의 모든 경로를 상기 데이타베이스에서 검색하며, 검색된 각각의 단일 경로에 대해 경로 식별자를 할당하는 것을 특징으로 하는 XML 데이터의 효과적인 검색을 위한 다중 경로 인덱스 방법.And a path identifier is assigned to each single path that is searched for. The path identifier is a path identifier that is used to search for a path between the backward path of the foreground path and the path of the forward path. A multi-path index method for effective retrieval of XML data. 제1항 내지 제3항 중 어느 한 항에 있어서,4. The method according to any one of claims 1 to 3, 상기 다중 경로 인덱스의 레코드 구조는 헤더정보, 인덱스 키값, 서로 다른 경로의 개수, 해당 경로의 경로 식별자, 경로에 해당하는 객체 식별자의 개수 및 경로에 해당하는 객체의 객체 식별자들의 배열을 포함하는 것을 특징으로 하는 XML 데이터의 효과적인 검색을 위한 다중 경로 인덱스 방법.The record structure of the multipath index includes header information, an index key value, a number of different paths, a path identifier of the path, a number of object identifiers corresponding to the path, and an array of object identifiers of the object corresponding to the path A multi-path index method for effective retrieval of XML data. 제1항 또는 제3항 중 어느 한 항에 있어서,4. The method according to any one of claims 1 to 3, 다중 경로 인덱스에 대한 검색 및 갱신 방법은,The search and update method for the multi- 검색 경로에 대한 경로 익스텐트를 모두 구하고 경로 익스텐트내의 각각의 단일 경로에 대한 경로 식별자를 찾는 단계;Obtaining all the path extents for the search path and finding a path identifier for each single path in the path extent; 키값으로 상기 데이타베이스의 중간 노드와 최종 단말 노드를 찾는 단계;Searching for an intermediate node and an end terminal node of the database as a key value; 상기 키값과 상기 경로 식별자의 값이 일치하는 객체 식별자만을 검색하는단계;를 추가로 포함하는 XML 데이터의 효과적인 검색을 위한 다중 경로 인덱스 방법.And searching for only an object identifier whose value of the key identifier matches the value of the path identifier.
KR1020000029993A 2000-06-01 2000-06-01 Multi-Path Index Method for The Efficient Retrieval of XML Data KR100358348B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000029993A KR100358348B1 (en) 2000-06-01 2000-06-01 Multi-Path Index Method for The Efficient Retrieval of XML Data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000029993A KR100358348B1 (en) 2000-06-01 2000-06-01 Multi-Path Index Method for The Efficient Retrieval of XML Data

Publications (2)

Publication Number Publication Date
KR20010109665A KR20010109665A (en) 2001-12-12
KR100358348B1 true KR100358348B1 (en) 2002-10-25

Family

ID=45926186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000029993A KR100358348B1 (en) 2000-06-01 2000-06-01 Multi-Path Index Method for The Efficient Retrieval of XML Data

Country Status (1)

Country Link
KR (1) KR100358348B1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100487738B1 (en) * 2001-12-26 2005-05-06 한국전자통신연구원 Apparatus and method XML document retrieval supporting XML query language tightly-coupled with database query language
KR100493882B1 (en) 2002-10-23 2005-06-10 삼성전자주식회사 Query process method for searching xml data
KR100558765B1 (en) * 2002-11-14 2006-03-10 한국과학기술원 Method for executing xml query using adaptive path index
JP4365162B2 (en) 2003-08-20 2009-11-18 富士通株式会社 Apparatus and method for retrieving structured document data
KR100612376B1 (en) * 2005-01-31 2006-08-16 인하대학교 산학협력단 A index system and method for xml documents using node-range of integration path
KR100771154B1 (en) * 2006-08-09 2007-10-29 한국과학기술원 The searchable virtual file system and the method of file searching which uses it
KR100834760B1 (en) * 2006-11-23 2008-06-05 삼성전자주식회사 Structure of index, apparatus and method for optimized index searching

Also Published As

Publication number Publication date
KR20010109665A (en) 2001-12-12

Similar Documents

Publication Publication Date Title
Zhang et al. A succinct physical storage scheme for efficient evaluation of path queries in XML
US7287033B2 (en) Efficient traversals over hierarchical data and indexing semistructured data
US7827181B2 (en) Click distance determination
US6279007B1 (en) Architecture for managing query friendly hierarchical values
US20070174309A1 (en) Mtreeini: intermediate nodes and indexes
US9171100B2 (en) MTree an XPath multi-axis structure threaded index
JP3844370B2 (en) Computer method and storage structure for storing and accessing multidimensional data
KR100493882B1 (en) Query process method for searching xml data
JP4763354B2 (en) System and method for embedding anchor text in ranking search results
US7412444B2 (en) Efficient indexing of hierarchical relational database records
Jagadish et al. On effective multi-dimensional indexing for strings
JP3318834B2 (en) Data file system and data retrieval method
KR20090048624A (en) Dynamic fragment mapping
Sucahyo et al. CT-ITL: Efficient frequent item set mining using a compressed prefix tree with pattern growth
KR100358348B1 (en) Multi-Path Index Method for The Efficient Retrieval of XML Data
CN109885570A (en) A kind of multi-Dimensional Range querying method of secondary index combination hash table
Lu et al. Labeling and querying dynamic XML trees
US7546282B2 (en) Method for searching within elements in a hierarchically structured database
KR100612376B1 (en) A index system and method for xml documents using node-range of integration path
Kim et al. Efficient processing of substring match queries with inverted q-gram indexes
US8745035B1 (en) Multistage pipeline for feeding joined tables to a search system
Bumbulis et al. A compact B-tree
Kim et al. Efficient processing of substring match queries with inverted variable-length gram indexes
Nicklas et al. Index structuring in inverted data bases by TRIES
Lee et al. Combining Indexing Technique with Path Dictionary for Nested Object Queries.

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060411

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee