programing

문서 기반 데이터베이스와 키/가치 기반 데이터베이스의 차이점

fastcode 2023. 3. 26. 11:51
반응형

문서 기반 데이터베이스와 키/가치 기반 데이터베이스의 차이점

인기 있는 비 SQL 데이터베이스에는 세 가지 유형이 있습니다.

  • 키 / 가치 : 레디스, 도쿄 내각, 메모캐시
  • Column 패밀리: Cassandra, HBase
  • 문서: MongoDB, CouchDB

나는 그것에 대해 많은 이해 없이 긴 블로그를 읽었다.

관계형 데이터베이스를 알고 있으며 MongoDB/CouchDB와 같은 문서 기반 데이터베이스에 대해 잘 알고 있습니다.

이것들과 리스트에 있는 두 개의 앞의 것의 주요 차이점은 무엇인지 누가 제게 말해줄 수 있나요?

주요 차이점은 데이터 모델과 쿼리 기능입니다.

주요 가치 저장소

첫 번째 유형은 매우 간단하며 아마도 더 이상의 설명이 필요하지 않을 것입니다.

데이터 모델: 키 값 저장소 이상

Cassandra와 같은 데이터베이스의 정확한 명칭에 대해서는 논란이 있지만, 칼럼 패밀리 스토어라고 부르고 싶습니다.키와 값의 쌍은 카산드라의 필수적인 부분이지만, 그것에만 국한된 것은 아닙니다.키와 값의 쌍을 중첩할 수 있으므로 하나의 키가 여러 개의 하위 키와 값의 쌍을 참조할 수 있습니다.

단, 키와 값의 쌍을 무기한 네스트할 수는 없습니다.세 가지 수준(열 패밀리) 또는 네 가지 수준(초열 패밀리)으로 제한됩니다.칼럼 패밀리라는 용어가 생각나지 않는 경우 WTF는 SuperColumn 기사입니다.이것은 Cassandra의 데이터 모델에 대한 좋은 설명입니다.

CouchDB 및 MongoDB와 같은 문서 데이터베이스는 전체 문서를 JSON 오브젝트 형태로 저장합니다.이러한 오브젝트는 네스트된 키와 값의 쌍으로 간주할 수 있습니다.Cassandra와 달리 키와 값의 쌍을 원하는 만큼 중첩할 수 있습니다.또한 JSON은 어레이를 지원하며 문자열, 숫자 및 부울 값 등 다양한 데이터 유형을 이해합니다.

쿼리

열 패밀리 스토어는 키 또는 맵 축소 함수를 쓰는 것만으로 조회할 수 있다고 생각합니다.SQL 데이터베이스에서처럼 값을 쿼리할 수 없습니다.프로그램에 더 복잡한 쿼리가 필요한 경우 원하는 데이터에 액세스하기 위해 인덱스를 만들고 유지 관리해야 합니다.

문서 데이터베이스는 키별 쿼리 및 맵 축소 함수별 쿼리를 지원하지만 "Give me all users with 10 posts"와 같은 값별 기본 쿼리를 수행할 수도 있습니다.문서 데이터베이스는 이러한 방식으로 더 유연합니다.

Ayende는 Key-Value와 Document 데이터베이스의 차이에 대해 다음과 같이 설명했습니다.

문서 데이터베이스는 기본적으로 하나의 주요 예외를 제외하고 키/값 저장소입니다.문서 DB는 단순히 blob을 저장하는 대신 데이터를 데이터베이스가 인식할 수 있는 형식(: JSON, XML 등)으로 저장해야 합니다.대부분의 doc dbs에서는 이제 문서 데이터에 대한 쿼리를 허용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/3554169/difference-between-document-based-and-key-value-based-databases

반응형