KR20030083904A - Xml 문서의 구조정보 처리방법 - Google Patents

Xml 문서의 구조정보 처리방법 Download PDF

Info

Publication number
KR20030083904A
KR20030083904A KR1020020022301A KR20020022301A KR20030083904A KR 20030083904 A KR20030083904 A KR 20030083904A KR 1020020022301 A KR1020020022301 A KR 1020020022301A KR 20020022301 A KR20020022301 A KR 20020022301A KR 20030083904 A KR20030083904 A KR 20030083904A
Authority
KR
South Korea
Prior art keywords
bits
xml
nodes
expressed
structure information
Prior art date
Application number
KR1020020022301A
Other languages
English (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 KR1020020022301A priority Critical patent/KR20030083904A/ko
Publication of KR20030083904A publication Critical patent/KR20030083904A/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

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

Abstract

본 발명은 XML 문서의 구조정보를 엘리먼트 ID를 이용하여 보다 단순한 구조로 표현하고 이를 압축하여 저장하는데 적당하도록 처리하는 기술에 관한 것이다. 이러한 본 발명은, XML 데이터모델에 대한 객체의 ID로 엘리먼트 ID를 사용하고, XML 구조의 트리 깊이와 순차 정보로 엘리먼트 ID를 구성하는 제1과정과; 노드의 개수가 7개까지는 구분자 비트를 포함하여 4bit로 표현하고, 7개를 초과하면 구분자 비트를 포함하여 필요한 만큼 4bit씩 추가하되, 추가 여부를 그 구분자 비트로 표현하는 제2과정에 의해 달성된다.

Description

XML 문서의 구조정보 처리방법{PROCESSING METHOD FOR STRUCTURE INFORMATION OF XML DOCUMENT}
본 발명은 XML 문서의 구조정보를 표현하고 압축하는 기술에 관한 것으로, 특히 XML 문서의 구조정보를 엘리먼트 ID를 이용하여 보다 단순한 구조로 표현하고 이를 압축하여 저장하는데 적당하도록 한 XML 문서의 구조정보 처리방법에 관한 것이다.
XML(XML: eXtensible Markup Language)은 W3C에서 제정한 문서 표준으로서, SGML의 서브세트(subset)라고 할 수 있으며 이 SGML보다 훨씬 간결화된 형태로 문서를 표현하는 표준이다.
XML 문서를 저장할 때 가장 먼저 선행되어야 하는 작업으로서 XML 문서들이 포함하고 있는 많은 특성(특히 문서의 구조 정보)들을 손실 없이 표현해 주어야 한다. 특히 DTD(DTD: Document Type Definition)의 존재 여부에 관계없이 모든 XML 문서를 같은 저장 구조를 이용하여 저장할 때에는 구조에 대한 효율적인 정보가 특히 중요시 된다. 왜냐하면, 수많은 XML 문서가 같은 저장공간에 저장되므로 구조 정보 없이 저장되면 구조 검색시 저장되어진 모든 노드들을 탐색해야 하는 경우가 발생될 수 있고, 이와 같은 경우 탐색 대상의 노드수가 폭발적으로 증가되어 검색 효율을 저하시키기 때문이다.
그럼에도 불구하고 종래의 XML 문서 처리기술에 있어서는 XML의 구조 정보가복잡하여 XML 검색시 구조연산이 그만큼 복잡해지는 결함이 있고, 압축저장 기법상 구조정보의 저장공간을 비교적 많이 필요로 하는 결함이 있었다.
따라서, 본 발명의 목적은 XML의 구조정보를 XML 트리 깊이와 순차 정보를 이용하여 엘리먼트 ID로 단순하게 표현하는 구조정보 처리방법을 제공함에 있다.
본 발명의 또 다른 목적은 저장 공간을 줄이고 검색 연산의 효율을 향상시키기 위하여, 표현된 엘리먼트 ID를 압축하여 저장하는 새로운 압축 저장기법을 제공함에 있다.
도 1은 본 발명에 의해 XML 문서가 트리 형태로 표현된 예시도.
도 2는 엘리먼트 ID를 압축하여 저장하기 위한 처리과정의 설명도.
본 발명에 의한 XML 문서의 구조정보 처리방법은, XML 데이터모델에 대한 객체의 ID로 엘리먼트 ID를 사용하고, XML 구조의 트리 깊이와 순차 정보로 엘리먼트 ID를 구성하는 제1과정과; 노드의 개수가 7개까지는 구분자 비트를 포함하여 4bit로 표현하고, 노드의 개수가 8개부터는 구분자 비트를 포함하여 필요한 만큼 4bit씩 추가하되, 추가 여부를 그 구분자 비트로 표현하는 제2과정으로 이루어지는 것으로, 이와 같이 이루어지는 본 발명의 작용을 첨부한 도 1 및 도 2를 참조하여 상세히 설명하면 다음과 같다.
XML 데이터모델에서 구조 정보는 색인정보나 데이터베이스의 접근을 최대한 줄이기 위한 것으로, 객체의 ID에 문서의 구조정보를 갖도록 하는 방법을 사용하였다. 상기 객체의 ID로서 엘리먼트 ID를 사용하고, XML 구조의 트리 깊이와 순차 정보를 이용하여 이 엘리먼트 ID를 구성하였다.
도 1은 XML 문서를 트리 형태로 표현하고, 문서의 구조를 표현하기 위한 방법으로 각 엘리먼트에 구조 엘리먼트 ID를 할당한 것을 예시적으로 나타낸 것이다.
즉, 맨처음 루트(root)는 "/"로 표시하고, 그 아래부터는 트리의 깊이와 순서를 엘리먼트의 구조 ID로 설정한다.
커스터머(CUSTOMER)의 첫 번째 자식인 네임(NAME)은 1로 엘리먼트 ID가 지정된다. 이와 마찬가지로 데이트(DATE)는 커스터머의 두 번째 자식이므로 2가 엘러먼트 ID로 지정되고, 오더(ORDERS)는 세 번째 자식이므로 3이 엘리먼트 ID로 지정된다.
래스트 네임(LAST NAME)과 퍼스트 네임(FIRST NAME)은 상기 네임의 자식이므로 네임 엘리먼트의 ID에 자식의 순서를 할당하여 각각 "11","12"로 표현된다.
이렇게 표현함으로써, 각 엘리먼트의 ID 정보만 이용하더라도 트리 내에서의 엘리먼트 위치를 바로 판단할 수 있으며, 구조 검색시 이 ID 정보를 이용할 수 있다.
다음의 예는 상기와 같이 트리 구조로 표현된 XML 문서의 구조가 타당함을 설명하기 위하여, 구조 질의가 처리되는 단계를 나타낸 것이다.
첫째, 네임 바로 아래의 자식 노드를 찾는 경우, 네임의 구조 엘리먼트가 1이므로 엘리먼트 ID의 시작이 1이고 ID의 단계가 2인 노드를 찾아야 한다는 것이 바로 파악된다. 따라서, 엘리먼트 ID가 1로 시작하는 래스트 네임과 퍼스트 네임 노드가 검색되어지고, 이들의 엘리먼트 ID의 단계는 2이므로 상기 질의에 모두 만족된다. 따라서, 상기 질의에 대한 답으로서 이 두 노드가 선택되어진다.
둘째, 프로덕트(PRODUCT) 바로 위의 부모 노드를 찾는 경우, 이때 프로덕트각각의 엘리먼트 ID는 "311"과 "321"이다. 부모는 각 엘리먼트 ID에서 마지막 트리의 한 레벨을 제거한 형태이므로, "31"과 "32"가 될 것이다. 따라서, "311"을 엘리먼트 ID로 가진 프로덕트에 대해서는 "31" 아이템이 부모 노드로 선택되고, "321"을 엘리먼트 ID로 가진 프로덕트에 대해서는 "32" 아이템이 부모 노드로 선택되어진다.
상기의 예에서와 같이 단순히 엘리먼트 ID만 비교하는 것으로써 XML 문서의 구조를 빠르고 쉽게 파악할 수 있게 된다.
한편, 상기 엘리먼트 ID를 실제로 압축하여 저장하기 위한 압축 처리과정을 도 2를 참조하여 설명하면 다음과 같다.
본 설명에서는 엘리먼트 ID를 4bit 단위로 압축하는 것을 예로하여 설명한다. 즉, 각 트리의 깊이에 상응되게 할당된 엘리먼트 ID를 하나씩 4bit 단위로 분할하여 압축한다. 이렇게 4bit 단위로 분할하여 압축하므로 한 트리의 레벨에 노드의 개수가 7개 이하인 것들은 그대로 표현할 수 있고(최상위 1bit는 구분자로 사용하므로까지의 노드 번호를 표현할 수 있다), 그 이상인 것들은 1bit 짜리 구분자를 이용하여 4bit씩 더 할당한다. 4bit 중 최상의 1bit는 구분자로 사용되는데, 그 구분자 값이 0인 경우에는 한 레벨을 나타내는 끝임을 의미하고, 1일 경우에는 연속해서 4bit가 추가된다는 것을 의미한다.
도 2에서 ①의 경우, 엘리먼트의 ID가 1이므로 이를 4bit 형태로 표현하면 "0001"이된다. 여기서, 최상위 비트인 구분자를 0으로 셋팅하고 나머지 3bit로 ID값 1("001")을 표현하게 되는데, 최소 단위가 1byte(8bit)이므로 하위 4bit를"0000"으로 채워 넣게 된다. 따라서, 이와 같은 경우 "0001"(0x01)이 엘리먼트 ID의 압축된 값이 된다.
도 2에서 ②의 경우, 엘리먼트 ID가 두 레벨 즉 깊이가 2이므로 이 값을 같이 저장해야 한다. 앞의 1은 4bit로 표현 가능하므로 상기와 같이 구분자를 0으로 셋팅하여 "0001"로 표현하고, 뒤의 20은 7을 초과하므로 맨 뒤에 4bit를 더 붙여서 표현해 준다.
즉, 두 개의 4bit 중 구분자로 할당된 최상위 비트를 제외한 나머지 6bit로 20(010100)을 표현하되, 앞의 "010"에 구분자를 1로 부여하여 "1010"으로 표현하고, 뒤의 "100"에는 끝임을 나타내기 위해 구분자를 0으로 부여하여 "0100" 총 8bit로 표현하게 된다. 그런데, 앞의 4bit("1010")는 상기 1을 표현하기 위한 4bit에 이어 붙은 형태가 된다. 따라서, 그 1을 위해 할당된 8bit 중 나머지 4bit가 낭비되지 않고 뒤의 20을 표현하는데 활용됨을 알 수 있다. 물론, 이와 같은 경우 20을 위해 할당된 1byte(4bit+4bit) 중 뒤쪽의 4bit가 그대로 남게 되므로 "0000"을 채워 넣게 된다. 따라서, 최종적으로 완성되어지는 값은 "000110100100000"이며 이는 0x1A40의 2byte로 압축됨을 알 수 있다.
도 2에서 ③의 경우, 2 2라는 두 값을 저장해야 한다. 그런데, 앞의 2와 뒤의 2 모두 4bit로 표현이 가능하므로 최상위 비트를 각각 0으로 셋팅하여 "0010"으로 설정하면 된다. 결국, 두 값을 앞의 2를 위해 할당된 1byte로 모두 표현할 수 있으므로 "00100010"(0x22)로 압축된다.
상기의 설명을 정리해 보면, 노드의 개수가 7개까지는 최상위의 구분자 비트를 0으로 셋팅하고 4bit까지 사용한다. 그러나, 노드의 개수가 8개부터는 최상위의 구분자 bit를 포함하여 필요한 만큼 4bit씩 추가하게 되는데, 이 구분자 bit는 뒤에 4bit가 추가되면 1로 셋팅되고 추가되지 않으면 0으로 셋팅된다. 한 레벨에서의 노드는 구분자 8bit를 제외한 3byte(16,777,216개)까지 허용되는데, 이것이 한 레벨에서 사용될 수 있는 노드의 최대 개수이다.
이상에서 상세히 설명한 바와 같이 본 발명은 XML 문서의 구조 정보를 별도로 저장하지 않고 엘리먼트 ID와 그들간의 비트 연산에 의해 파악되게 함으로써, 구조 검색과정이 단순하게 처리되는 효과가 있다.
또한, XML 저장 시스템에서 최소한의 구조정보 저장 공간을 사용하는 것이 가능하도록 엘리먼트 ID를 압축 처리함으로써, 대용량의 저장 시스템에서 상대적으로 적은 구조정보 저장 공간을 유지할 수 있는 효과가 있다.
또한, 압축한 상태에서도 구조 정보를 그대로 간직하게 되므로, 구조 검색 연산시 압축된 정보를 그대로 반영할 수 있고, 비트 연산을 통해 빠른 검색이 가능하게 되는 효과가 있다.

Claims (4)

  1. XML 데이터모델에 대한 객체의 ID로 엘리먼트 ID를 사용하고, XML 구조의 트리 깊이와 순차 정보로 엘리먼트 ID를 구성하는 제1과정과; 노드의 개수가 7개까지는 구분자 비트를 포함하여 4bit로 표현하고, 7개를 초과하면 구분자 비트를 포함하여 필요한 만큼 4bit씩 추가하되, 추가 여부를 그 구분자 비트로 표현하는 제2과정을 포함하여 이루어지는 것을 특징으로 하는 XML 문서의 구조정보 처리방법.
  2. 제1항에 있어서, 제1과정은 맨처음 객체는 루트로 표시하고, 그 아래의 객체는 트리의 깊이와 순서에 상응되는 구조의 ID로 표시하는 것을 특징으로 하는 XML 문서의 구조정보 처리방법.
  3. 제1항에 있어서, 제2과정의 구분자는 뒤에 4bit가 추가되면 1로 셋팅되고 추가되지 않으면 0으로 셋팅되는 것을 특징으로 하는 XML 문서의 구조정보 처리방법.
  4. 제1항에 있어서, 제2과정은 한 레벨에서의 노드는 구분자 8bit를 제외한 3byte까지 허용되는 것을 특징으로 하는 XML 문서의 구조정보 처리방법.
KR1020020022301A 2002-04-23 2002-04-23 Xml 문서의 구조정보 처리방법 KR20030083904A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020022301A KR20030083904A (ko) 2002-04-23 2002-04-23 Xml 문서의 구조정보 처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020022301A KR20030083904A (ko) 2002-04-23 2002-04-23 Xml 문서의 구조정보 처리방법

Publications (1)

Publication Number Publication Date
KR20030083904A true KR20030083904A (ko) 2003-11-01

Family

ID=32380178

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020022301A KR20030083904A (ko) 2002-04-23 2002-04-23 Xml 문서의 구조정보 처리방법

Country Status (1)

Country Link
KR (1) KR20030083904A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006004266A1 (en) * 2004-04-02 2006-01-12 Samsung Electronics Co., Ltd. Xml processor having function for filtering tree path, method of filtering tree path and recording medium thereof
KR100902674B1 (ko) * 2007-10-10 2009-06-15 엔에이치엔(주) 문서 탐색 서비스 제공 방법 및 시스템
KR100908301B1 (ko) * 2007-06-05 2009-07-17 성균관대학교산학협력단 리스트 기반 최대빈번 서브트리 추출 방법 및 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006004266A1 (en) * 2004-04-02 2006-01-12 Samsung Electronics Co., Ltd. Xml processor having function for filtering tree path, method of filtering tree path and recording medium thereof
KR100908301B1 (ko) * 2007-06-05 2009-07-17 성균관대학교산학협력단 리스트 기반 최대빈번 서브트리 추출 방법 및 장치
KR100902674B1 (ko) * 2007-10-10 2009-06-15 엔에이치엔(주) 문서 탐색 서비스 제공 방법 및 시스템

Similar Documents

Publication Publication Date Title
US9025892B1 (en) Data record compression with progressive and/or selective decomposition
CN106452450B (zh) 数据压缩的方法和系统
US9870382B2 (en) Data encoding and corresponding data structure
US7231387B2 (en) Process for performing logical combinations
US8452093B2 (en) Efficient histogram storage
Li et al. Efficient updates in dynamic XML data: from binary string to quaternary string
JP3318834B2 (ja) データファイルシステム及びデータ検索方法
CN108052551A (zh) 一种在redis上实现的存储大量时序数据的方法
CN106815260B (zh) 一种索引建立方法及设备
CN111506569B (zh) 数据存储方法、装置、电子装置
US20140156609A1 (en) Database table compression
CN105843918A (zh) 一种从职位数据库中快速筛选职位的方法
US20170364487A1 (en) Method of generating hierarchical data structure
EP3173947B1 (en) Paged inverted index
CN111984732B (zh) 在区块链上实现去中心化检索的方法、节点及区块链网络
JP5220483B2 (ja) 木構造のデータに対する集約計算を行うコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
JP2003534752A (ja) マルチメディア環境における視聴覚データ内容を記述するための方法
KR20030083904A (ko) Xml 문서의 구조정보 처리방법
CN109101595B (zh) 一种信息查询方法、装置、设备及计算机可读存储介质
CN114911872B (zh) 内外网数据同步方法、装置、系统、外网服务器及存储介质
KR102035706B1 (ko) 신재생에너지의 발전량 데이터를 모니터링하는 메타 모델 기반 프로토콜의 저용량 전송을 위한 데이터 변형 방법 및 신재생에너지의 발전량 데이터를 모니터링하기 위한 메타 모델 기반 프로토콜의 저용량 전송을 위한 데이터 전송 시스템
US20060101045A1 (en) Methods and apparatus for interval query indexing
CN116975067B (zh) 无模式数据存储方法、装置、计算机设备及介质
CN109885840A (zh) 通过16位Trie树实现空间优化的词典排序方法
KR101460950B1 (ko) 비정규 테이블 표기법을 기반으로 한 NoSQL 질의 방법 및 장치

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination