KR100948659B1 - 동적 xml의 노드 번호 부여방법 - Google Patents
동적 xml의 노드 번호 부여방법 Download PDFInfo
- Publication number
- KR100948659B1 KR100948659B1 KR1020070136258A KR20070136258A KR100948659B1 KR 100948659 B1 KR100948659 B1 KR 100948659B1 KR 1020070136258 A KR1020070136258 A KR 1020070136258A KR 20070136258 A KR20070136258 A KR 20070136258A KR 100948659 B1 KR100948659 B1 KR 100948659B1
- Authority
- KR
- South Korea
- Prior art keywords
- node
- nodes
- field
- xml
- relational database
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
동적 XML의 노드 번호 부여방법이 개시된다. 본 발명의 노드 번호 부여방법은 노드들의 제1필드에 부모노드 및 자식노드 간의 관계를 나타내는 단계, 및 노드들의 제2필드에 형제노드들 간의 관계를 나타내는 단계를 포함한다. 이에 따라, 노드의 삽입 및 삭제를 손쉽게 처리하여 데이터를 효율적으로 관리할 수 있게 된다.
관계형 데이터베이스, XML(eXtensible Markup Language), 노드, 번호부여
Description
본 발명은 동적 XML의 노드 번호 부여방법에 관한 것으로, 더욱 상세하게는 대용량 XML(eXtensible Markup Language)데이터를 관리하는 관계형 데이터베이스에서, 동적 XML의 노드 번호 부여방법에 관한 것이다.
일반적으로, 관계형 데이터베이스에서 XML데이터를 관리하기 위해서는 XML노드에 번호를 부여하여 관계형 테이블에 저장하는 방식을 사용한다. 여기서, 사용되는 번호 부여방식은 XML데이터의 계층 정보를 모두 표현할 수 있어야 하며, 새로운 노드의 삽입, 기존 노드의 삭제, 및 노드의 검색 질의를 효율적으로 처리할 수 있어야 한다. 그러나, 초기의 번호 부여방식은 새로운 노드의 삽입과 삭제시 모든 번호를 다시 부여해야 하므로, XML데이터를 효과적으로 관리할 수 없다.
최근에는, XML데이터에 효과적으로 번호를 부여하여, XML데이터를 관리하기 위해 Dewey Order방식 및 ORDPATH방식을 사용하고 있다. Dewey Order방식은 노드의 삽입 및 삭제가 없는 정적인 XML문서에 주로 사용되고 있으며, ORDPATH방식은 XML데이터의 일부분이 변경되어 새로운 노드의 삽입 및 노드의 삭제가 발생하는 동적 인 XML문서에 주로 사용되고 있다.
여기서, Dewey Order방식은 새로운 노드가 삽입될 때마다, 삽입된 노드의 위치 이후에 존재하는 모든 노드들의 번호를 다시 부여해야 하는 단점이 있다. 그리고, ORDPATH방식은 홀수만을 사용하며, 노드의 삽입 및 삭제가 발생하면 번호의 레벨이 깊어져, 같은 레벨에 있는 노드들의 번호레벨이 서로 다르게 되며, XML 질의 처리에 많은 데이터 액세스가 필요한 단점이 있다.
본 발명의 목적은 정적인 XML문서에 사용할 수 있을 뿐만 아니라, 동적인 XML문서에서 노드의 삽입 및 삭제를 효율적으로 처리하고, 데이터 액세스 횟수를 줄일 수 있는 동적 XML의 노드 번호 부여방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명에 따른 관계형 데이터베이스에서 XML(eXtensible Markup Language)트리에 포함된 노드들에 번호를 부여하는 동적 XML의 노드 번호 부여방법은 상기 노드들의 제1필드에 부모노드 및 자식노드 간의 관계를 나타내는 단계, 및 상기 노드들의 제2필드에 형제노드들 간의 관계를 나타내는 단계를 포함한다.
상기 XML트리에 새로운 노드가 삽입되는 경우, 삽입된 노드의 제1필드에는 상기 삽입된 노드의 형제노드들의 제1필드에 부여된 번호 중, 최대값을 1만큼 증가시킨 번호가 부여되며, 상기 삽입된 노드의 위치에 따라, 상기 삽입된 노드의 제2 필드에 번호가 부여되며, 상기 형제노드들의 제2필드에 부여된 번호가 변경 혹은 유지되는 것을 특징으로 한다.
상기 XML트리에 존재하는 노드가 삭제되는 경우, 삭제된 노드의 위치에 따라, 상기 삭제된 노드의 왼쪽 혹은 오른쪽에 존재하는 형제노드들의 제2필드에 부여된 번호가 변경되는 것을 특징으로 한다.
이상 설명한 바와 같이 본 발명에 따르면, 노드의 삽입 및 삭제를 효율적으로 처리하고, 데이터 액세스 횟수를 줄여, 관계형 데이터베이스에서 XML데이터를 효율적으로 관리할 수 있게 된다.
이하에서는 첨부된 도면들을 참조하여 본 발명의 일 실시예를 보다 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그에 대한 상세한 설명은 축약하거나 생략한다.
도 1은 본 발명의 일 실시예에 따른 노드 번호 부여방법이다.
도 1을 참조하면, 본 발명의 노드 번호는 P필드 및 S필드로 구분된다. P필드는 부모노드와 자식노드 간의 관계를 나타내는 필드이며, S필드는 형제노드들 간의 관계를 나타내는 필드이다. 여기서, P필드에는 XML트리의 최상위계층에 속한 노드부터 깊이 우선 탐색하여 번호가 부여되는 Dewey Order방식이 적용된다. 그리고, S필드에는 정수를 사용하여 하나의 계층에 포함된 형제노드들 간의 관계를 나타낸 다.
도 2는 본 발명의 일 실시예에 따른 노드 번호 부여방법에 따라, 번호가 부여된 XML트리를 나타낸 도면이다.
도 2를 참조하면, 모든 노드들은 부모노드와 자식노드 간의 관계를 나타내는 P필드 및 형제노드들 간의 관계를 나타내는 S필드로 구성된다. 제1계층에 포함된 노드 A의 경우, 최상위계층의 노드이므로 P필드에는 '1'이 부여되며, 제1계층에 다른 형제노드가 존재하지 않으므로 S필드에는 '1'이 부여된다. 그리고, 제2계층에 포함된 노드 B는 노드 A의 첫 번째 자식노드이므로, P필드에는 '1.1'이 부여되고, S필드에는 '1'이 부여된다.
같은 방법으로, 노드 C는 노드 A의 두 번째 자식노드이므로 P필드에는 '1.2'가 부여되고, S필드에는 '2'가 부여되며, 노드 D는 노드 B의 세 번째 자식노드이므로 P필드에는 '1.3'이 부여되고, S필드에는 '3'이 부여된다. 제3계층 및 제4계층에 속한 노드 E,F,G,H, 및 I의 경우에도 위와 같은 동일한 방법으로 노드 번호가 부여된다.
여기서, 각각의 노드에는 S필드의 범위를 나타내기 위해 시작번호(sno) 및 끝 번호(eno)를 나타내는 정보가 포함되며, 새로 삽입되는 노드의 P필드에 고유한 값을 부여하기 위해 자식노드의 P필드에 부여된 값 중 최대값(pmax)이 부가적인 정보로 유지된다. 도 2의 제2계층을 예로 들면, sno=1, eno=3, 그리고, pmax=3이며, 이러한 정보들을 이용하여 노드 A의 자식노드의 개수 n = eno-sno+1 을 통해 3으로 쉽게 구해진다.
도 3a 내지 도 3c는 본 발명의 일 실시예에 따른 노드 번호 부여방법에 따라, 새로운 노드가 삽입되는 경우를 설명하기 위한 도면이다.
새로운 노드가 삽입되는 경우는 중간 자식노드로 삽입되는 경우, 첫 번째 자식노드로 삽입되는 경우, 그리고, 마지막 자식노드로 삽입되는 경우, 이렇게 3가지 경우로 나눌 수 있다.
도 3a에는 XML트리에서, 노드(1.2)의 두 번째 자식노드로 새로운 노드가 삽입된 경우를 나타내었으며, 이러한 노드 삽입과정을 도 3b와 같이 나타낼 수 있다. 도 3a 및 도 3b를 참조하면, 새로 삽입된 노드의 P필드는 (1.2.3)을 부여받음으로써, 부모노드(1.2)와의 관계를 나타낸다. 그리고, 새로 삽입된 노드가 부모노드(1.2)의 두 번째 자식노드가 되므로, 첫 번째 노드(1.2.1)의 S필드에 주어진 값보다 1만큼 큰 '2'를 부여받게 되며, 형제노드들 간의 순서를 유지하기 위해, 다른 형제노드(1.2.2)의 S필드에는 기존의 값보다 1만큼 증가된 '3'을 부여받게 된다.
여기서, 노드(1.2.2)의 자식노드들은 부모노드인 노드(1.2.2)의 P필드에 부여된 번호가 변경되지 않았으므로, 자식노드들의 번호 역시 변경되지 않게 된다. 그리고, 자식노드의 개수 n이 큰 경우, 새로운 노드의 삽입 위치는 n/2를 중심으로 왼쪽 혹은 오른쪽인지를 검사하여 형제노드들의 S필드에 부여되는 번호를 변경하게 된다. 따라서, 새로운 노드 삽입 시, 평균 n/4개의 형제노드들의 번호 변경이 필요하다. 이때, 액세스되는 노드는 부모노드인 노드(1.2), 새로 삽입되는 노드(1.2.3), 그리고, n/4개의 형제노드들이다.
도 3c에는 XML트리에서, 노드(1.2)의 첫 번째 자식으로 새로운 노드가 삽입 된 경우를 나타내었다.
새로 삽입된 노드의 P필드는 (1.2.4)을 부여받음으로써, 부모노드(1.2)와의 관계를 나타낸다. 그리고, 새로 삽입된 노드가 부모노드(1.2)의 첫 번째 자식노드가 되므로, S필드에 '0'을 부여받게 되어, 형제노드들 간의 순서는 유지되게 된다. 여기서도 역시, 형제노드(1.2.2)의 자식노드들은 부모노드인 노드(1.2.2)의 P필드에 부여된 번호가 변경되지 않았으므로, 자식노드들의 번호 역시 변경되지 않게 된다.
도 3c에서, eno=3, sno=0이므로, 노드(1.2)의 자식노드의 개수 n = eno-sno+1 을 통해 4로 구해진다. 이때, 액세스되는 노드는 부모노드인 노드(1.2) 및 새로 삽입된 노드(1.2.4)이며, 다른 노드들은 전혀 액세스되지 않는다.
도시하지는 않았으나, 노드(1.2)의 마지막 자식으로 새로운 노드가 삽입되는 경우, 노드(1.2)의 pmax=4를 이용하여, 새로운 노드의 P필드에는 (1.2.5)가 부여되고, S필드에는 eno값이 1만큼 증가한 '4'가 부여된다. 여기서, 액세스되는 노드는 부모노드인 노드(1.2) 및 새로 삽입된 노드(1.2.5)이며, 다른 노드들은 전혀 액세스되지 않는다.
이상에서 설명한 과정을 통해 XML트리에 새로운 노드가 삽입되는 경우, 각각의 노드에 효과적으로 번호를 부여하는 것이 가능하다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 노드 번호 부여방법에 따라, 노드가 삭제되는 경우를 설명하기 위한 도면이다.
노드가 삭제되는 경우는 중간 자식노드가 삭제되는 경우, 첫 번째 자식노드 가 삭제되는 경우, 그리고, 마지막 자식노드가 삭제되는 경우, 이렇게 3가지 경우로 나눌 수 있다.
도 4a에는 도 3c의 XML트리에서, 노드(1.2)의 두 번째 자식노드가 삭제된 경우를 나타내었으며, 이러한 노드 삭제과정을 도 4b와 같이 나타낼 수 있다. 도 4a 및 도 4b를 참조하면, 자식노드(1.2.1)가 삭제되는 경우, 형제노드(1.2.4)의 S필드에는 1만큼 증가한 '1'이 주어지고, pmax=3, sno=1로 변경된다. 만약, 삭제된 노드(1.2.1)에 자식노드가 존재하는 경우, 이도 함께 삭제되는 것이 바람직하다.
그리고, 자식노드의 개수가 n인 경우, 삭제되는 노드의 위치가 n/2를 중심으로 왼쪽 혹은 오른쪽인지를 검사하여 형제노드들의 S필드에 부여되는 번호를 변경하게 된다. 즉, 삭제되는 노드의 위치가 n/2를 중심으로 왼쪽인 경우, 삭제되는 노드의 왼쪽에 위치한 형제노드들의 S필드에 부여된 번호가 변경된다. 따라서, 노드 삭제 시, 액세스되는 노드는 부모노드인 노드(1.2), 삭제되는 노드(1.2.1), 그리고, n/4개의 형제노드들이다.
도시 하지는 않았으나, 노드(1.2)의 첫 번째 자식노드가 삭제되는 경우, pmax값은 1만큼 감소하며, sno값은 1만큼 증가한다. 이때, 액세스되는 노드는 부모노드 및 삭제되는 노드뿐이다. 그리고, 노드(1.2)의 마지막 자식노드가 삭제되는 경우, pmax값이 1만큼 감소하며, eno값은 1만큼 감소한다. 이때, 액세스되는 노드 역시, 부모노드 및 삭제되는 노드뿐이다.
이상에서 설명한 과정을 통해, XML트리에서 노드가 삭제되는 경우, 효과적으로 번호를 부여하는 것이 가능하다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
도 1은 본 발명의 일 실시예에 따른 노드 번호 부여방법,
도 2는 본 발명의 일 실시예에 따른 노드 번호 부여방법에 따라, 번호가 부여된 XML트리를 나타낸 도면,
도 3a 내지 도 3c는 본 발명의 일 실시예에 따른 노드 번호 부여방법에 따라, 새로운 노드가 삽입되는 경우를 설명하기 위한 도면, 그리고
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 노드 번호 부여방법에 따라, 노드가 삭제되는 경우를 설명하기 위한 도면이다.
Claims (3)
- XML(eXtensible Markup Language)트리에 포함된 노드들에 번호를 부여하는 동적 XML의 노드 번호 부여방법에 있어서,관계형 데이터베이스가 상기 노드들의 제1필드에 부모노드 및 자식노드 간의 관계를 나타내기 위해 상기 제1필드에 상기 XML트리의 최상위계층에 속한 노드부터 깊이 우선 탐색하여 번호를 부여하는 단계; 및상기 관계형 데이터베이스가 상기 노드들의 제2필드에 동일부모노드에 대한 형제노드들 간의 관계를 나타내기 위해 상기 제2필드에 번호를 순차적으로 부여하는 단계;를 포함하고,상기 노드들은 제2필드의 범위를 나타내기 위해 시작번호(sno) 및 끝번호(eno)를 나타내는 정보를 포함하는 것을 특징으로 하는 노드 번호 부여방법.
- 제1항에 있어서,상기 XML트리에 새로운 노드가 삽입되는 경우, 상기 관계형 데이터베이스가 삽입된 노드의 제1필드에 상기 삽입된 노드의 형제노드들의 제1필드에 부여된 번호 중 최대값을 1만큼 증가시킨 번호를 부여하는 단계;상기 관계형 데이터베이스가 상기 삽입된 노드의 위치에 대응되는 번호를, 상기 삽입된 노드에 부여하는 단계; 및상기 관계형 데이터베이스가 상기 삽입된 노드의 위치에 따라 기존의 형제노드들의 제2필드에 부여된 번호를 변경 혹은 유지하는 단계;를 더 포함하는 것을 특징으로 하는 노드 번호 부여방법
- 제1항에 있어서,상기 XML트리에 존재하는 노드가 삭제되는 경우, 상기 관계형 데이터베이스가 상기 삭제된 노드의 위치를 검사하는 단계; 및상기 관계형 데이터베이스가 상기 삭제된 노드의 위치에 따라 기존의 형제노드들의 제2필드에 부여된 번호가 변경되는 단계;를 더 포함하는 것을 특징으로 하는 노드 번호 부여방법
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070136258A KR100948659B1 (ko) | 2007-12-24 | 2007-12-24 | 동적 xml의 노드 번호 부여방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070136258A KR100948659B1 (ko) | 2007-12-24 | 2007-12-24 | 동적 xml의 노드 번호 부여방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090068581A KR20090068581A (ko) | 2009-06-29 |
KR100948659B1 true KR100948659B1 (ko) | 2010-03-18 |
Family
ID=40995958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070136258A KR100948659B1 (ko) | 2007-12-24 | 2007-12-24 | 동적 xml의 노드 번호 부여방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100948659B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102034392B1 (ko) * | 2018-08-29 | 2019-10-18 | 이용근 | 문자열 데이터를 이용한 인터넷 족보 생성 방법 및 장치 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956126A (zh) * | 2016-05-06 | 2016-09-21 | 南京国电南自电网自动化有限公司 | 基于关键字主次分类的xml查询方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060094000A (ko) * | 2005-02-23 | 2006-08-28 | 인천대학교 산학협력단 | 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법 |
KR100864537B1 (ko) | 2007-04-24 | 2008-10-21 | 고려대학교 산학협력단 | 트리 레이블을 이용한 확장성 표시 언어 문서의 질의 처리 방법, 및 그 질의 처리 장치 |
-
2007
- 2007-12-24 KR KR1020070136258A patent/KR100948659B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060094000A (ko) * | 2005-02-23 | 2006-08-28 | 인천대학교 산학협력단 | 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법 |
KR100864537B1 (ko) | 2007-04-24 | 2008-10-21 | 고려대학교 산학협력단 | 트리 레이블을 이용한 확장성 표시 언어 문서의 질의 처리 방법, 및 그 질의 처리 장치 |
Non-Patent Citations (2)
Title |
---|
논문1(한국컴퓨터정보학회)* |
데이타베이스연구, 제21권 제3호, pp15-34, 공개일자 2005.12.* |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102034392B1 (ko) * | 2018-08-29 | 2019-10-18 | 이용근 | 문자열 데이터를 이용한 인터넷 족보 생성 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20090068581A (ko) | 2009-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | A prime number labeling scheme for dynamic ordered XML trees | |
US7827219B2 (en) | Method for encoding, traversing, manipulating and querying a tree | |
CN111639143B (zh) | 数据仓库的数据血缘关系展示方法及装置、电子设备 | |
US8176084B2 (en) | Structure based storage, query, update and transfer of tree-based documents | |
US9171100B2 (en) | MTree an XPath multi-axis structure threaded index | |
US7146375B2 (en) | Inference control method in a data cube | |
US20020156811A1 (en) | System and method for converting an XML data structure into a relational database | |
US20050027743A1 (en) | System and method for relational representation of hierarchical data | |
US20060288021A1 (en) | Information processor, schema definition method and program | |
US8145674B2 (en) | Structure based storage, query, update and transfer of tree-based documents | |
US20150370838A1 (en) | Index structure to accelerate graph traversal | |
CN105138526A (zh) | 用于为关系型数据库自动生成语义映射的方法和*** | |
US20140289185A1 (en) | Apparatus and Method for Policy Based Rebalancing in a Distributed Document-Oriented Database | |
CN110928939A (zh) | 一种基于树形结构的Sql结果集向Json数据转换的方法 | |
US20080189302A1 (en) | Generating database representation of markup-language document | |
CN115795539A (zh) | 一种权限管理方法、装置、设备及存储介质 | |
Ko et al. | A binary string approach for updates in dynamic ordered XML data | |
KR100948659B1 (ko) | 동적 xml의 노드 번호 부여방법 | |
Su-Cheng et al. | Node labeling schemes in XML query optimization: a survey and trends | |
CN114168591A (zh) | 寻找树形结构数据路径节点的方法 | |
KR101244931B1 (ko) | 관계형 데이터베이스의 owl 온톨로지 변환방법 및 그 장치 | |
CN103902554B (zh) | 数据访问方法与装置 | |
Lin et al. | A compact and efficient labeling scheme for XML documents | |
Kanda et al. | Practical rearrangement methods for dynamic double‐array dictionaries | |
CN114329720A (zh) | 一种ui数据的同步方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130221 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140227 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160310 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20170221 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |