XML 데이터베이스
태그 :
- 개념
- XML 문서를 효율적으로 저장, 교환, 표현하고 검색할 수 있는 데이터베이스 구축 기술
1. XML DB의 개요
가. XML DB의 정의
- XML 문서를 효율적으로 저장, 교환, 표현하고 검색할 수 있는 데이터베이스 구축 기술
- 문서 및 데이터에 대한 Well Formed/ Validation 지원(Parser 및 엔진)
나.XML DB의 필요성
- 웹 문서 및 컨텐츠 증가로 인한 데이터 관리가 어려워 짐 (문서유형 복잡)
- 인터넷 환경에서 데이터 교환/ 저장 관리비용 증가
- 플랫폼에 독립적이고 정형/비정형 데이터에 대한 편리하고 효율적 관리 필요
다. XML DB의 특징
- XML 문서에 대한 논리적 모델(그 문서 내부의 데이터)을 정의하고, 그 모델에 따라 문서 저장/조회
- 계층적 구조의 특성을 지원 : DTD, XML 스키마 생성
- 데이터 교환 시 저장구조 변경의 최소화 및 XML 문서 구조 그대로 저장 가능
- XML 문서는 데이터 중심(Data-Centric), 문서 중심(Document-Centric)으로 분류함
2. XML 저장 데이터 분류
유형 |
설명 |
데이터 중심(Text 기반) |
주로 데이터 전송에 사용(정형적) – EDI 대체 기존 RDBMS의 확장 기능으로 지원 가능 구매 주문서, 온라인 민원처리 신청서, 비헹기 예약, 주식 시세 |
문서 중심 (Model 기반) |
인터넷 사이트 상에서 문서 및 컨텐츠 관리를 위해 사용 (구조가 이질적) 컨텐츠의 구조와 변화가 중요하므로 Native XML DB가 필요함 사용자 매뉴얼, 마케팅 브로셔 등과 같이 다양한 구조의 분석 |
3. XML DB구성도 및 구성유형
가. XML DB의 구성도
나. XML DB의 요소기술
1) XML 데이터의 저장 기술
- XML 데이터로부터 DTD를 자동적으로 추출하는 기술
- DTD로부터 데이타베이스 스키마를 자동적으로 생성하는 기술
- XML 문서를 생성된 스키마에 따라 저장하는 기술
2) XML 질의 처리 기술
- XML 검색 질의의 기본 연산인 정규 경로식(Regular Path Expression)을 빠르게
처리하는 기술
- XML 변경 질의를 빠르게 처리하는 기술
3) XML 색인 기술
- 빠른 검색을 제공하기 위해 XML 데이터를 색인 하는 기술
4. XML DB구성유형 비교
비교항목 |
SML Enable DB |
Natibe XML DB |
기본 기능 |
• 객체 관계명 DBMS |
• XML 형태의 데이터 관리 DB |
저장 구조 |
• 문서의 구성요소를 필드로 저장(분해 및 재조립) • XML 문서 자체를 저장(CLOB 형태) |
• XML의 계층적이고 구조화된 형태로 저장 |
성능 |
• 수정 및 검색에 상당한 시간 소요 |
• Xquery를 이용하여, 데이터 검색이 용이하며, 검색속도 빠름 |
주요 용도 |
• 데이터 중심 XML 문서 |
• 문서 중심 혹은 데이터 중심 XML 문서 모두 사용 가능 |
5. XML DB주요기술 요소
유형 |
내용 |
XML 데이터의 저장 기술 |
• XML 데이터로부터 DTD를 자동적으로 추출하는 기술 • DTD로부터 데이터베이스 스키마를 자동적으로 생성하는 기술 • XML 문서를 생성된 스키마에 따라 저장하는 기술 |
XML 질의 처리 기술 |
•XML 검색 질의의 기본 연산인 정규 경로식(regular path expression)을 빠르게 처리하는 기술 • XML 변경 질의를 빠르게 처리하는 기술 |
XML 색인 기술 |
• 빠른 검색을 제공하기 위해 XML 데이터를 색인하는 기술 |
6. XML DB와 RDB의 비교
XML DB |
RDBMS |
-변화과정 없이 XML 구조 그대로 저장 -데이터 하나의 계층구조에 담김 -하나의 노드는 여러 개의 엘리먼트와 어트리뷰트값을 가짐 -엘리먼트들은 중첩될 수 있음 -엘리먼트들의 순서를 가짐 -스키마는 선택사항임 -문서를 바로 저장/검색함 -XML표준에 따라 쿼리함 |
-저장하기 위해서 테이블의 데이터 모델로 변환 과정을 거처야 함 -데이터가 여러 개의 테이블에 담김 -테이블 내의 셀들은 하나의 값만을 가질 수 있음 -중첨된 구조를 가질 수 없음 -행과 열의 순서를 정의할 수 없음 -스키마 정의가 필수임 -문서를 쿼리하기 위해서는 Join이 필요함 -SQL로 변환하여 쿼리함 |