상세 컨텐츠

본문 제목

MongoDB Document

Computer Science/NoSQL

by Yongari 2023. 1. 10. 22:56

본문

 

 

MongoDB의 Document는 무엇일까?

Document는 객체와 같이 데이터를 "field" - "value" 쌍으로 저장하고 구성한다.

 

Mongo DB에서 도큐먼트를 올바르게 작성하는 방법

JSON 형식으로 도큐먼트를 작성하기 위해서는 다음과 같은  조건을 만족해야합니다.


  • 중괄호로 시작하고 끝나야합니다.
  • 필드와 값이 콜론으로 분리되어야 하고, 필드와 값을 포함하는 쌍은 쉼표(,)로 구분합니다.
  • 문자열인 필드도 ""로 감싸야합니다.

 

도큐먼트의 데이터 형태는 다음과 같다.

{

name: "sue", 			  // field:value
age: 30,	 			  // field:value
status: "S", 			  // field:value	
groups: ["news", "math"]  // field:value

}

 

그렇다면 도큐먼트의 이점은 무엇일까요??

 

  • 도큐먼트는 많은 프로그래밍 언어의 기본 데이터 유형에 해당합니다. 즉 객체의 형태와 동일합니다.
  • 포함된 도큐먼트 및 배열은 비용이 많이 드는 조인의 필요성을 줄입니다.
  • 동적 스키마는 유창한 다형성을 지원합니다.

 

그렇다면 도큐먼트는 어디에 저장됩니까??

 

Mongo DB는 컬렉션에 도큐먼트를 저장합니다. 컬렉션은 관계형 데이터베이스의 테이블과 유사합니다.

테이블이란 행과 열을 가지고 있는 SQL로 쿼리가 가능한 데이터 형태입니다.

 

컬렉션외에도 MongoDB는 다음을 지원합니다.

 

Mongo DB의 주요 특징들은 무엇일까?

 

1. 고성능 데이터 지속성 제공

 

포함된 데이터 모델 지원으로 데이터베이스 시스템의 Input / Output 활동이 줄어듬

인덱스는 더 빠른 쿼리를 지원하고 포함된 문서 및 배열의 키를 포함할 수 있음

 

 

2. 쿼리API
MongoDB Query API는 CRUD(읽기 및 쓰기 작업)와 다음을 지원합니다.

 

Find Restaurants with Geospatial Queries — MongoDB Manual

Docs Home → MongoDB Manual MongoDB's geospatial indexing allows you to efficiently execute spatial queries on a collection that contains geospatial shapes and points. To showcase the capabilities of geospatial features and compare different approaches, t

www.mongodb.com

 

 

3. 고가용성

 

replica set 이라고 하는 MongoDB의 복제 기능 은 다음을 제공합니다.

  • 자동 장애 조치 (장애 발생시 자동으로 복구)
  • 데이터 중복성 (데이터의 중복성을 제공함)

복제본 세트 즉 replica set를 통해 mongoDB 서버 그룹으로 중복성을 제공하고 데이터 가용성을 높임

 

4. 수평적 확장성

관계형 Database는 수직적으로 확장(하드웨어 확장)한다면 NoSQL DB인 MongoDB는 수평적 확장성을 제공합니다.

  • 샤딩 은 머신 클러스터 전체에 데이터를 분산합니다.
  • 3.4부터 MongoDB는 샤드 키 를 기반으로 데이터 영역 생성을 지원합니다 . 균형 잡힌 클러스터에서 MongoDB는 영역 내부의 샤드로만 영역에 포함된 읽기 및 쓰기를 지시합니다. 자세한 내용은 영역 매뉴얼 페이지를 참조하십시오.

5. 다중 스토리지 엔진 지원

MongoDB는 여러 스토리지 엔진 을 지원합니다 .

 

그렇다면 MongoDB는 JSON으로만 동작하는 것일까??

 

맞습니다만 내부적으로는 아닙니다.
JSON은 텍스트 형식이라서 읽기 쉽지만 파싱이 느리고 메모리 사용이 비효율적입니다.

그리고 JSON은 기본 데이터 타입만 지원해서 사용할 수 있는 데이터 타입에 제약이 있습니다.

 

그레서 위의 JSON 문제를 해결하기 위해 MongoDB는 BSON이라는 Binary JSON 형식을 도입했습니다.

BSON은 컴퓨터의 언어에 가까운 이진법에 기반을 둔 표현법입니다. JSON보다 메모리 사용이 효율적이고 빠르고, 가볍고, 유연합니다. 

그래서 MongoDB는 겉으로는 JSON으로만 동작할 것 같지만 BSON의 이런 장점들 때문에 내부동작은 BSON으로 하고 클라이언트가 사용할 때는 JSON으로 추가하고 쉽게 조회할 수 있게 만들어줍니다. 

 

 

용어 정리

 

도큐먼트 (Document)

  • 필드 - 값 쌍으로 저장된 데이터 

필드(Field)

  • 데이터 포인트를 위한 고유한 식별자

값(Value)

  • 주어진 식별자와 연결된 데이터

컬렉션(Collection)

  • MongoDB의 도큐먼트로 구성된 저장소다.
  • 일반적으로 도큐먼트간의 공통 필드가 있다.
  • 데이터베이스당 많은 컬렉션이 있고, 컬렉션당 많은 도큐먼트가 있을 수 있다.

BSON (Binary JSON) 

Binary JSON 의 줄임말인 BSON [bee·sahn] 은 JSON과 유사한 문서의 바이너리 인코딩 직렬화입니다. JSON과 마찬가지로 BSON은 다른 문서 및 배열 내에 문서 및 배열을 포함하는 것을 지원합니다. BSON에는 JSON 사양의 일부가 아닌 데이터 유형을 표현할 수 있는 확장도 포함되어 있습니다. 예를 들어 BSON에는 날짜 유형과 BinData 유형이 있습니다.

BSON은 프로토콜 버퍼 와 같은 이진 교환 형식과 비교할 수 있습니다 . BSON은 프로토콜 버퍼보다 ​​"스키마가 적기" 때문에 유연성 면에서는 이점이 있지만 공간 효율성 면에서는 약간의 단점이 있습니다(BSON은 직렬화된 데이터 내의 필드 이름에 대한 오버헤드가 있음).

BSON은 다음 세 가지 특성을 갖도록 설계되었습니다.

  1. 경량 : 공간 오버헤드를 최소로 유지하는 것은 특히 네트워크를 통해 사용될 때 모든 데이터 표현 형식에 중요합니다.
  2. 횡단 가능 : BSON은 쉽게 순회하도록 설계되었습니다. 이것은 MongoDB 의 기본 데이터 표현으로서의 역할에서 중요한 속성입니다 .
  3. 효율 : 데이터를 BSON으로 인코딩하고 BSON에서 디코딩하는 것은 C 데이터 유형을 사용하기 때문에 대부분의 언어에서 매우 빠르게 수행할 수 있습니다.

'Computer Science > NoSQL' 카테고리의 다른 글

MongoDB Database, Collection, Document를 생성하고 제거해보자  (0) 2023.01.17
Import vs Export  (0) 2023.01.13
NoSQL(Not only SQL)이란?  (2) 2023.01.10

관련글 더보기