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을 전통적인 관계 구조 내에 저장하기 위한 다음 방법 중 하나 이상을 제공한다.
- XML이 CLOB에 저장됨(문자 큰 개체)
- XML은 스키마를[5] 기반으로 한 일련의 표로 "shreded"된다.
- XML은 ISO 표준 9075-14에[6] 의해 정의된 네이티브 XML 유형에 저장됨
ISO XML 유형을 지원하는 RDBMS:
일반적으로 대부분의 데이터가 비 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] 이중 인덱싱과 상호 합산을 기반으로 설계 및 개발된다.
참조
- ^ Nicola, Matthias (28 September 2010). "5 Reasons for Storing XML in a Database". Native XML Database. Retrieved 17 March 2015.
- ^ Feldman, Damon (11 April 2013). Moving from Relational Modeling to XML and MarkLogic Data Models. MarkLogic World. Retrieved 17 March 2015.
- ^ [NoSQL Excredent: 폴리글롯 지속성의 신흥 세계에 대한 간략한 가이드. 애디슨-웨슬리 교육 출판사, 2009] ISBN 978-0321826626
- ^ O'Connell, Steve (2005). Section 9.2. Advanced Databases Course Notes (Syllabus). Southampton, England: University of Southampton.
- ^ "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 테이블 및 열 작성
- ^ "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.
- ^ "pureXML overview -- DB2 as an XML database". IBM Knowledge Center. IBM. Retrieved 17 March 2015.
- ^ "Using XML in SQL Server". Microsoft Developer Network. Microsoft Corporation. Retrieved 17 March 2015.
- ^ "XMLType Operations". Oracle XML DB Developer's Guide, 10g Release 2. Oracle Corporation. August 2005. Retrieved 17 March 2015.
- ^ "8.13. XML Type". PostgreSQL 9.6 Documentation. Retrieved 1 April 2017.
- ^ Matthias, Nicola (22 August 2010). "XML versus Relational Database Performance". Native XML Database. Retrieved 28 Jun 2017.
- ^ "XQuery 3.1 Recommendation". 2017-03-21.
- ^ 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.
외부 링크
- DB-Engines에서 매월 업데이트되는 인기별 네이티브 XML DBMS 순위
- XML 데이터베이스 - 비즈니스 사례, Charles Foster, 2008년 6월 - 데이터베이스의 현재 상태와 데이터 지속성, 현재의 Relational Database 모델이 어떻게 문제를 일으키기 시작했는지에 대해 이야기하고 오늘날의 요구사항에 대한 강력한 대안에 대한 통찰력을 제공한다.
- XML 기반 분자 경로 데이터베이스(2005-06-02) eXist, X-Hive, Sedna, Qizx/open의 속도/성능 비교
- XML 네이티브 데이터베이스 시스템: Sedna, Overgon, NeoCoreXMS 2006 검토
- XML 데이터 저장소: 새로운 작업 방식
- 바르가바, 라자마니, H.; Thaker, S.; Agarwal, A.(2005) XML Enabled Relational Database, 텍사스, The University of Texas at Austin.
- XML 데이터베이스 이니셔티브
- XML 및 데이터베이스, Ronald Burret, 2005년 9월
- 2007년 8월 13일 네이티브 XML 데이터베이스의 상태, 엘리엇 러스티 해롤드
