다중 모델 데이터베이스

Multi-model database

데이터베이스 설계 분야에서 멀티모델 데이터베이스는 통합된 단일 백엔드에 대해 여러 데이터 모델을 지원하도록 설계된 데이터베이스 관리 시스템입니다.반면 대부분의 데이터베이스 관리 시스템은 데이터의 구성, 저장 및 [1]조작 방법을 결정하는 단일 데이터 모델을 중심으로 구성되어 있습니다.문서, 그래프, 관계형 키 값 모델은 다중 모델 데이터베이스에서 지원되는 데이터 모델의 예입니다.

배경

관계형 데이터 모델은 Edgar F에 의해 출판된 이후 인기를 끌었다. 1970년 코드.수평적 확장성과 폴트 톨러런스에 대한 요구 사항이 증가함에 따라 NoSQL 데이터베이스는 2009년 이후 두드러지게 되었습니다.NoSQL 데이터베이스는 다양한 데이터 모델을 사용하며 문서, 그래프 및 키 값 모델이 널리 [2]사용됩니다.

다중 모델 데이터베이스는 둘 이상의 모델에 데이터를 저장, 인덱싱 및 쿼리할 수 있는 데이터베이스입니다.한동안 데이터베이스는 주로 관계형 데이터베이스, 문서 지향 데이터베이스, 그래프 데이터베이스 또는 트리플스토어 등 한 가지 모델만 지원했습니다.이들 중 많은 것을 조합한 데이터베이스가 다중 모델입니다.

한동안 관계형 외에 다른 데이터베이스 모델이 있다는 것은 거의 잊혀졌다(또는 무관하다고 생각되었다).관계형 모델과 제3정규형 개념은 모든 데이터 스토리지의 기본 표준이었습니다.그러나 관계형 데이터 모델링이 우세하기 전에는 1980년부터 2005년까지 계층형 데이터베이스 모델이 일반적으로 사용되었다.2000년 또는 2010년 이후 문서, 트리플, 키 값 저장소, 그래프 등 비관계형 NoSQL 모델이 많이 사용되고 있습니다.지리공간 데이터, 시간 데이터 및 텍스트 데이터도 별개의 모델이지만 색인화되었지만 쿼리 가능한 텍스트 데이터는 일반적으로 [citation needed]데이터베이스라기보다는 "검색 엔진"이라고 불립니다.

데이터베이스에 "멀티 모델"이라는 단어가 처음 연상된 것은 2012년 5월 30일 독일 쾰른에서 Luca Garuli의 주요 노트 "NoSQL Adaption – What's the Next Step?"[3][4]에서였습니다.Luca Garuli는 1세대 NoSQL 제품이 여러 사용 사례에서 사용할 수 있는 더 많은 기능을 갖춘 신제품으로 진화하는 것을 구상했습니다.

멀티모델 데이터베이스의 개념은 1990년대 초 ORDBMS(Object-Relational Data Management Systems)로 거슬러 올라가며, 1980년대 초에는 연합 및 통합 DBMS에 이르기까지 더욱 광범위한 범위를 가지고 있습니다.ORDBMS 시스템은 도메인별 데이터 유형, 함수 및 인덱스 구현을 DBMS 커널에 삽입하여 관계형, 객체형, 텍스트 및 공간형 등의 다양한 유형의 데이터를 관리합니다.멀티모델 데이터베이스는 Martin Fowler가 [5]설명한 대로 멀티모델 기능을 실현하기 위해 여러 데이터베이스 제품을 조합하는 "폴리글롯 지속성" 접근법에 대한 가장 직접적인 응답입니다.이 전략에는 두 가지 주요 단점이 있습니다. 즉, 운영의 복잡성이 크게 증가하고 개별 데이터 저장소 전체에서 데이터의 일관성을 유지할 수 없기 때문에 멀티 모델 데이터베이스가 이러한 격차를 메우기 시작했습니다.

다중 모델 데이터베이스는 단점 없이 다중 언어 [5]지속성의 데이터 모델링 이점을 제공하기 위한 것입니다.특히 단일 데이터 [2]저장소를 사용하면 운영 복잡성이 줄어듭니다.

데이터베이스

다중 모델 데이터베이스에는 다음 항목이 포함됩니다(영문자세한 내용은 다음과 같습니다.

  • Allegro Graph –문서(JSON, JSON-LD), 그래프
  • ArangoDB –문서(JSON), 그래프, 주요 가치
  • ArcadeDB – 문서(JSON), 그래프, 키-값, 시계열, SQL, Cyper 쿼리 언어, Gremlin(쿼리 언어)
  • Cosmos DB – 문서(JSON), 그래프,[6] 키-값, SQL
  • Couchbase –문서(JSON), 주요 가치, N1QL
  • Datastax – 키 값, 표 형식, 그래프
  • 엔터프라이즈DB – 문서(XML 및 JSON), 주요 가치
  • Mark Logic – 문서(XML 및 JSON), 그래프 트리플 스토어, 바이너리, SQL
  • Microsoft Azure SQL 데이터베이스 - 관계형, 문서(JSON), 그래프, XML
  • Oracle Database – 관계형, 문서(JSON 및 XML), 그래프 트리플 스토어, 속성 그래프, 키 값, 객체
  • Orient DB – 문서(JSON), 그래프, 키 값, 반응형, SQL
  • Redis – 주요 가치 문서(JSON), 속성 그래프, 스트리밍, 시계열
  • SAP HANA – 관계형, 문서(JSON), 그래프, 스트리밍
  • Virtuoso Universal Server – 관계형, 문서(XML), RDF 그래프

멀티모델 데이터베이스 벤치마킹

멀티 모델 데이터를 처리하기 위한 플랫폼이 점점 더 많이 제안됨에 따라 멀티 모델 데이터베이스를 벤치마킹하는 작업이 몇 가지 있습니다.예를 들어, Pluciennik,[7][8] Oliveira 및[9] UniBench는 기존 다중 모델 데이터베이스를 검토하고 각각 다중 모델 데이터베이스와 다른 SQL 및 NoSQL 데이터베이스를 비교하기 위해 평가 작업을 수행했습니다.이들은 단일 모델 데이터베이스에 비해 멀티 모델 데이터베이스의 장점은 다음과 같다고 지적했습니다.i) CSV(그래프, 관계형 포함), JSON 등의 다양한 데이터 형식을 추가 작업 없이 스토리지에 수집할 수 있으며, (ii) AQL, Orient SQL/XML, SQL/SON 등의 통합 쿼리 언어를 사용하여 ReJon을 작성할 수 있습니다.단일 플랫폼에서 그래프-JSON 키/값, XML-관계형, JSON-관계형 등 상관관계가 있는 다중 모델 데이터를 제공합니다.(iii) 독립 실행형 모드에서 다중 모델 ACID 트랜잭션을 지원할 수 있다.

아키텍처

사용 가능한 다중 모델 데이터베이스 간의 주요 차이점은 아키텍처와 관련이 있습니다.다중 모델 데이터베이스는 엔진 내에서 또는 엔진 상단의 여러 레이어를 통해 서로 다른 모델을 지원할 수 있습니다.일부 제품은 문서 및 그래프를 지원하는 엔진을 제공하는 반면, 다른 제품은 키 [10]키 저장소 위에 레이어를 제공합니다.계층형 아키텍처에서는 각 데이터 모델이 자체 구성 요소를 통해 제공됩니다.

사용자 정의 데이터 모델

일부 데이터베이스에서는 단일 데이터 저장소에 여러 데이터 모델을 제공할 뿐만 아니라 개발자가 사용자 정의 데이터 모델을 쉽게 정의할 수 있습니다.이 기능은 고성능과 확장성을 갖춘 ACID 트랜잭션에 의해 활성화됩니다.사용자 정의 데이터 모델이 동시 업데이트를 지원하려면 데이터베이스가 여러 키에 걸쳐 업데이트를 동기화할 수 있어야 합니다.ACID 트랜잭션이 충분한 성능을 발휘하는 경우 이러한 [11]동기화를 허용합니다.JSON 문서, 그래프 및 관계형 테이블은 모두 기본 데이터스토어의 수평적 확장성과 폴트 톨러런스를 계승하는 방식으로 구현할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 451 그룹, "물고기도 닭도 아니다:멀티모델 데이터베이스의 부상"
  2. ^ a b Infowld, "멀티 모델 데이터베이스의 부상"
  3. ^ "Multi-Model storage 1/2 one product". 2012-06-01.
  4. ^ "Nosql Matters Conference 2012 NoSQL Matters CGN 2012" (PDF). 2012.nosql-matters.org. Retrieved 2017-01-12.
  5. ^ a b 폴리글롯 지속성
  6. ^ "Build an Azure Cosmos DB .NET Framework, Core application using the Gremlin API".
  7. ^ Ewa Pluciennik and Kamil Zgorzalek. "The Multi-model Databases - A Review". Bdas 2017: 141–152.
  8. ^ Fábio Roberto Oliveira, Luis del Val Cura. "Performance Evaluation of NoSQL Multi-Model Data Stores in Polyglot Persistence Applications". Ideas '16: 230–235.
  9. ^ Chao Zhang, Jiaheng Lu, Pengfei Xu, Yuxing Chen. "UniBench: A Benchmark for Multi-Model Database Management Systems" (PDF). TPCTC 2018.{{cite journal}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  10. ^ 레이어
  11. ^ ODBMS, "폴리글롯 지속성 또는 다중 데이터 모델?"

외부 링크