TIL-211224

EBinY·2021년 12월 24일
0

TIL - Today I Learned

목록 보기
27/54

MongoDB

  • NoSQL Database, Document Database
  • Document를 컬렉션에 저장함
  • NoSQL DB를 사용하는 경우
    • 비구조적인 대용량의 데이터를 저장하는 경우
    • 클라우드 컴퓨팅 및 저장 공간을 최대한 활용하는 경우
    • 빠르게 서비스를 구축하고, 데이터 구조를 자주 업데이트 하는 경우
  • Atlas Colud: MongoDB는 아틀라스로 클라우드에 데이터베이스를 설정
    • GUI와 CLI로 데이터를 시각화, 분석, 내보내기, 빌드하는 데에 사용
    • 클러스터를 배포할 수 있고, 클러스터는 그룹화된 서버에 데이터를 저장함
    • 서버는 레플리카 세트로 구성되어 있으며, 동일한 데이터를 저장하는 몇개의 연결된 MongoDB 인스턴스의 모음
    • 인스턴스는 특정 소프트웨어를 실행하는 로컬 또는 클라우드의 단일 머신
    • 도큐먼트나 컬렉션을 변경할 경우, 변경된 데이터의 중복 사본이 레플리카 세트에 저장
    • 인스턴스 중 하나에 문제가 발생해도 데이터는 유지, 나머지 인스턴스에서 작업을 진행함
    • 이를 위해 클러스터를 배포하면, 자동으로 레플리카 세트가 구성됨
    • 레플리카 세트: 동일한 데이터를 저장하는 소수의 연결된 머신을 뜻합니다. 레플리카 세트 중 하나에 문제가 발생하더라도, 데이터를 그대로 유지할 수 있습니다.
    • 인스턴스: 로컬 또는 클라우드에서 특정 소프트웨어를 실행하는 단일 머신, MongoDB에서는 데이터베이스입니다.
    • 클러스터: 데이터를 저장하는 서버 그룹으로 여러 대의 컴퓨터를 네트워크를 통해 연결하여 하나의 단일 컴퓨터처럼 동작하도록 제작한 컴퓨터를 뜻합니다.

MongoDB document

  • 도큐먼트는 객체와 같이 데이터를 필드-벨류 쌍(Field - Value pair) 으로 저장하고 구성함
  • 도큐먼트(Document): 필드 - 값 쌍으로 저장된 데이터
  • 필드(Field): 데이터 포인트를 위한 고유한 식별자
  • 값(Value): 주어진 식별자와 연결된 데이터
  • 컬렉션(Collection): MongoDB의 도큐먼트로 구성된 저장소
    • 일반적으로 도큐먼트 간의 공통 필드가 있음
    • 데이터베이스 당 많은 컬렉션이 있고, 컬렉션 당 많은 도큐먼트가 있을 수 있다
  • shell을 이용하여 도큐먼트를 조회, 업데이트할 때에, 도큐먼트는 JSON 형식으로 출력됨
    • JSON 형식으로 도큐먼트를 작성하기 위한 조건
      • {}로 도큐먼트가 싸여있어야 함
      • 필드와 값이 : 로 분리, 쌍은 , 로 구분함
      • 문자열인 필드, 값은 ""로 감싸야 함
{
  "_id" : "479506",
  "date" : ISODate("2021-12-24T12:24:12Z"),
  "comments" : "why so serious"
}
  • JSON은 읽기 쉽고, 사용하기 편리한 형태라는 장점
  • 단점: 텍스트 형식, 읽기 쉽지만 파싱이 느리고 메모리 사용이 비효율적, 기본 데이터 타입만 지원(데이터 타입에 제약)
  • 문제점을 해결하기 위한 방안으로 BSON 형식을 도입
    • 컴퓨터 언어에 가까운 이진법에 기반을 둔 표현법
    • JSON보다 메모리 사용이 효율적, 빠르고 가볍고 유연함, 더 많은 데이터 타입 이용 가능해짐

0개의 댓글