본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

XML 데이터베이스(XML Database)는 XML 문서를 저장하고 XPath·XQuery 같은 XML 질의 언어로 검색·수정할 수 있게 한 데이터베이스로, 관계형 DBMS 에 XML 기능을 더한 XML 지원 데이터베이스와 XML 문서 자체를 저장 단위로 삼는 네이티브 XML 데이터베이스로 나뉜다.

2000년대 들어 웹 서비스(SOAP), 전자문서, 기업 간 데이터 교환이 XML 로 이루어지면서 XML 을 그대로 저장하고 질의할 필요가 커졌다. XML 은 계층 구조에 순서가 있고 구조가 문서마다 조금씩 다른 반구조적 데이터라, 표 하나에 담기 어렵다. 이를 관계형 DB 에 맞춰 넣을지, XML 에 맞는 저장소를 따로 둘지에 따라 두 계열이 생겼다.

구분 XML 지원(XML-enabled) DB 네이티브 XML(Native XML) DB
저장 단위 테이블·행·컬럼. XML 은 쪼개 넣거나(분해 저장) XML 타입 컬럼에 넣는다 XML 문서가 논리적 저장 단위다. 트리 구조를 그대로 저장한다
내부 모델 관계 모델 XML 데이터 모델(노드 트리)
질의 언어 SQL, SQL/XML, 컬럼 안에서는 XQuery XPath, XQuery, XQuery Update
알맞은 데이터 구조가 일정한 데이터 중심 XML(주문서, 거래 내역) 구조가 들쭉날쭉한 문서 중심 XML(계약서, 기술 문서, 출판물)
장점 기존 DB 의 트랜잭션·보안·백업을 그대로 쓰고 관계형 데이터와 조인할 수 있다 문서 순서·혼합 콘텐츠·주석이 보존되고 경로 질의가 빠르다
단점 매핑 설계가 필요하고 재조립 비용이 든다 관계형 데이터와 함께 쓰기 어렵고, 범용 DBMS 만큼 성숙하지 않다
예 Oracle XML DB, IBM Db2 pureXML, SQL Server 의 xml 타입 eXist-db, BaseX, MarkLogic

관계형 DB 에 XML 을 넣는 방법

편집 원본 편집
  • 분해 저장(shredding) : 요소·속성을 테이블 컬럼에 나눠 넣는다. 구조(스키마) 기반 매핑과 모델(노드) 기반 매핑이 있다
  • 통째 저장 : 문서 전체를 CLOB 또는 XML 타입 컬럼에 넣는다
  • XML 타입 : DBMS 가 XML 을 파싱한 이진 트리 형태로 보관하고, XML 인덱스(경로·값 인덱스)를 둔다. SQL/XML 의 XMLQUERY·XMLTABLE 로 질의한다
  • 매핑 방식의 자세한 비교는 XML 질의 언어 문서의 '관계형 데이터베이스와의 매핑' 절에 있다

데이터 교환 형식의 중심이 JSON 으로 옮겨 가면서 문서형 저장은 NoSQL 의 문서 데이터베이스(MongoDB 등)와 관계형 DBMS 의 JSON 타입이 주로 맡는다. XML 데이터베이스는 출판·법령·특허·의료 문서처럼 표준 XML 스키마로 된 대량 문서를 다루는 분야에서 쓰인다.