본문으로 건너뛰기

DocumentDatabase

1. Document Database

  • 문서는 문서 데이터베이스의 주요 개념입니다.
  • 문서 데이터베이스는 문서를 저장하고 조회합니다.
  • 문서는 XML, JSON, BSON 등의 형식으로 저장됩니다.
  • 문서는 맵, 컬렉션, 스칼라 값을 가질 수 있습니다.
  • 저장된 문서는 서로 비슷하지만 구조가 완전히 같지 않아도 됩니다.
  • 문서 데이터베이스는 키-값 저장소의 값 부분에서 문서를 저장한다고 볼 수 있습니다.
    • 즉 문서 데이터베이스는 값을 거머사할 수 있는 키-값 저장소라고 볼 수 있습니다.

2. 문서

  • 문서 데이터베이스 에서는 컬렉션에 구조가 다른 문서를 저장할 수 있습니다.
  • 테이블의 모든 행이 같은 스키마를 따라야하는 관계형 데이터베이스와는 다릅니다.

3 특징

4 일관성

  • 몽고 디비는 데이터베이스에서 복제본 집합을 사용해 일관성 수준을 설정합니다.
  • 쓰기가 모든 슬레이브에 복제될 때까지 기다릴지 아니면 주어신 수의 슬레이브에 복제되면 바로 응답할지 설정할 수 있습니다.
  • 각 쓰기 명령마다 성공을 반환하기 전에 쓰기를 전파해야 하는 서버 수를 설정할 수 있습니다.

5 트랜잭션

  • 전통적인 관계형 데이터베이스에서 트랜잭션이란 insert, update, delete 같은 명령으로 여러 테이블에 걸쳐 데이터베이스를 변경한 다음 commit 또는 rollback으로 변경을 확정하거나 취소하는 것을 말합니다.
  • 일반적으로 NoSQL 솔루션에서는 유효하지 않습니다.
  • 쓰기는 성공하거나 실패한다. 단일 문서 수준에서 트랜잭션을 원자적 트랜잭션이라 합니다.

6 가용성

  • 몽고 디비는 복제를 수행하고 복제본 집합을 사용해 고가용성을 확보한다.
  • 모든 요청을 마스터 노드로 가고 데이터는 슬레이브 노드로 복제된다.
  • 마스터 노드가 다운되면 복제본 집합에서 남은 노드가 투표를 통해 새로운 마스터를 선정한다.
  • 다운된 마스터 노드가 복구되면 슬레이브로 복제본 집합에 다시 참여한다. 모든 데이터를 끌어와 다른 노드의 상태를 따라잡는다.

7 조회 기능

8 확장성

  • 여기서 확장성은 노드를 추가하거나 데이터 스토리지를 변경하는 것을 의미합니다.
  • 읽기 부하에 대한 확장성은 읽기 슬레이브를 추가해 읽기 요청을 슬레이브에서 처리하게 하면 달성할 수 있습니다.
  • 쓰기 확장성이 필요한 경우 샤딩을 사용할 수 있습니다.

9 사용처

9.1 적절한 사용처

  • 이벤트 로깅
  • 콘텐츠 관리 시스템, 블로깅 플랫폼
  • 우베 분석 또는 실시간 분석
  • 전자상거래 애플리케이션

9.2 사용하지 말아야 할 때

  • 여러 연산에 걸친 복잡한 트랜잭션
  • 변화하는 집합 구조에 대한 쿼리