XML 데이터베이스

XML database

XML 데이터베이스데이터 지속성 소프트웨어 시스템으로, XML 형식으로 데이터를 지정하거나 저장할 수 있다. 이 데이터는 조회, 변환, 내보내기 및 호출 시스템으로 반환될 수 있다. XML 데이터베이스는 NoSQL 데이터베이스의 범주가 되는 문서 지향 데이터베이스의 맛이다.

데이터베이스의 XML에 대한 근거

XML이나 JSON과 같은 다른 문서 형식으로 데이터를 직접 지정하는 데에는 여러 가지 이유가 있다. 특히 XML의 경우 다음이 포함된다.[1]

  • 기업은 기존 표준 형식의 XML을 많이 가질 수 있다.
  • 데이터를 XML로 노출하거나 수집해야 할 수 있으므로 데이터의 관계형 힘 이중 모델링과 같은 다른 형식을 사용하십시오.
  • XML은 스파스 데이터, 중첩된 데이터 및 혼합 콘텐츠(예: 내장된 마크업 태그가 있는 텍스트)에 매우 적합함
  • XML은 사람이 읽을 수 있는 반면 관계형 테이블은 액세스에 전문 지식이 필요하다.
  • 메타데이터를 XML로 사용할 수 있는 경우가 많음
  • 의미론적 웹 데이터를 RDF/XML로 사용 가능
  • 개체 관계 임피던스 불일치[3] 대한 솔루션 제공

Steve O'Connell은 데이터베이스에서 XML을 사용하는 한 가지 이유를 제시한다. 즉, 데이터 전송을 위해 XML을 점점 더 많이 사용하는 이유는 "데이터를 데이터베이스에서 추출하여 XML 문서와 그 반대편에 넣는다"[4][needs update]는 것을 의미한다. 그것은 (변환 비용 측면에서) 더 효율적이고 데이터를 XML 형식으로 저장하는 것이 더 쉽다는 것을 증명할 수 있다. 컨텐츠 기반 애플리케이션에서, 네이티브 XML 데이터베이스의 능력은 또한 검색과 탐색을 지원하기 위한 메타데이터의 추출이나 입력의 필요성을 최소화한다.

XML 지원 데이터베이스

XML을 사용할 수 있는 데이터베이스는 일반적으로 XML을 전통적인 관계 구조 내에 저장하기 위한 다음 방법 중 하나 이상을 제공한다.

  1. XML이 CLOB에 저장됨(문자개체)
  2. XML은 스키마를[5] 기반으로 한 일련의 표로 "shreded"된다.
  3. XML은 ISO 표준 9075-14에[6] 의해 정의된 네이티브 XML 유형에 저장됨

ISO XML 유형을 지원하는 RDBMS:

  1. IBM DB2(pureXML[7])
  2. 마이크로소프트 SQL 서버[8]
  3. Oracle 데이터베이스[9]
  4. PostgreSQL[10]

일반적으로 대부분의 데이터가 비 XML인 경우 XML 지원 데이터베이스가 가장 적합하다. 대부분의 데이터가 XML인 데이터셋의 경우 네이티브 XML 데이터베이스가 더 적합하다.

IBM DB2 SQL의 XML 유형 조회 예제

선발하다    id, vol, xmlquery.('$j/name', 지나가는 잡지를 만들다 로서 "j") 로서 이름을 붙이다  로부터    저널 어디에,     xmlexists.('$j[license="CreativeCommons"], 지나가는 잡지를 만들다 로서 "j") 


네이티브 XML 데이터베이스

네이티브 XML 데이터베이스는 특히 XML 데이터 작업에 적합하다. XML을 큰 문자열로 관리하는 것은 비효율적이고, XML의 계층적 특성 때문에, 저장과 질의에 사용자 정의에 최적화된 데이터 구조가 사용된다. 이는 일반적으로 읽기 전용 쿼리 및 업데이트 측면에서 모두 성능을 향상시킨다.[11] 관계형 데이터베이스에 필드와 행이 있는 것처럼 XML 노드와 문서는 (논리적) 스토리지의 기본 단위다.

W3C 권장사항당 XML 데이터 쿼리 표준은 XQuery이다. 최신 버전은 XQuery 3.1이다.[12] XQuery는 XPath를 하위 언어로 포함하며 XML 자체는 XQuery의 유효한 하위 동기화이다. XPath 외에도 일부 XML 데이터베이스는 데이터베이스에서 검색된 문서 또는 쿼리 결과를 변환하는 방법으로 XSLT를 지원한다.

언어 기능

이름 면허증 네이티브 언어 XQuery 3.1 XQuery 3.0 XQuery 1.0 XQuery 업데이트 XQuery 전체 텍스트 EXPath 확장 EXQuery 확장 기능 XSLT 2.0 XForms 1.1 XProc 1.0
베이스X BSD 자바 아니요.
eXist GNU LGPL 자바 부분적 부분적 소유권 소유권
MarkLogic Server 상업적 C++ 아니요. 부분적 소유권 소유권 아니요. 아니요. 아니요.
OpenText xDB 상업적 자바 부분적 부분적 아니요. 아니요. 아니요. 아니요. 아니요.
Oracle Berkeley DB XML 상업적
키섹스 상업적 자바 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
세드나 아파치 라이선스 2.0

지원되는 API

이름 XQJ XML:DB 안심 레스신방신기 WebDAV
베이스X
eXist
MarkLogic Server 아니요.
키섹스 아니요. 아니요. 아니요. 아니요.
세드나 아니요. 아니요. 아니요.

데이터 중심 XML 데이터셋

데이터 중심 XML 데이터 집합의 경우 고유하고 뚜렷한 키워드 검색 방법, 즉 XML 데이터베이스용 XDMA는[13] 이중 인덱싱과 상호 합산을 기반으로 설계 및 개발된다.

참조

  1. ^ Nicola, Matthias (28 September 2010). "5 Reasons for Storing XML in a Database". Native XML Database. Retrieved 17 March 2015.
  2. ^ Feldman, Damon (11 April 2013). Moving from Relational Modeling to XML and MarkLogic Data Models. MarkLogic World. Retrieved 17 March 2015.
  3. ^ [NoSQL Excredent: 폴리글롯 지속성의 신흥 세계에 대한 간략한 가이드. 애디슨-웨슬리 교육 출판사, 2009] ISBN 978-0321826626
  4. ^ O'Connell, Steve (2005). Section 9.2. Advanced Databases Course Notes (Syllabus). Southampton, England: University of Southampton.
  5. ^ "XML Schema Storage and Query: Basic". Oracle XML DB Developer's Guide, 10g Release 2. Oracle Corporation. August 2005. Retrieved 17 March 2015.. 섹션 XML 스키마를 기반으로 XMLType 테이블 및 열 작성
  6. ^ "ISO/IEC 9075-14:2011: Information technology -- Database languages -- SQL -- Part 14: XML-Related Specifications (SQL/XML)". International Organization for Standardization. 2011. Retrieved 17 March 2015.
  7. ^ "pureXML overview -- DB2 as an XML database". IBM Knowledge Center. IBM. Retrieved 17 March 2015.
  8. ^ "Using XML in SQL Server". Microsoft Developer Network. Microsoft Corporation. Retrieved 17 March 2015.
  9. ^ "XMLType Operations". Oracle XML DB Developer's Guide, 10g Release 2. Oracle Corporation. August 2005. Retrieved 17 March 2015.
  10. ^ "8.13. XML Type". PostgreSQL 9.6 Documentation. Retrieved 1 April 2017.
  11. ^ Matthias, Nicola (22 August 2010). "XML versus Relational Database Performance". Native XML Database. Retrieved 28 Jun 2017.
  12. ^ "XQuery 3.1 Recommendation". 2017-03-21.
  13. ^ Selvaganesan, S.; Haw, Su-Cheng; Soon, Lay-Ki (2014). "XDMA: A Dual Indexing and Mutual Summation Based Keyword Search Algorithm for XML Databases". International Journal of Software Engineering and Knowledge Engineering. 24 (4): 591–615. doi:10.1142/s0218194014500223.

외부 링크