NoSQL : MongoDB

MihyunCho·2021년 5월 26일
0

NoSQL 기반의 비관계형 데이터베이스를 사용하는 경우

  1. 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
  2. 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우
  3. 빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우

NoSQL : MongoDB

MongoDB는 데이터를 json document 형태로 저장한다
보통의 SQL 처럼 행과 열이 존재하는 것이 아니기 때문에 원하는 어떤 종류의 어떤 모양의 데이터든 저장할 수 있다. (데이터가 같은 모양일 필요가 없다.)
도큐먼트들은 컬렉션이라고 부르는 곳에 저장되며 이것이 MongoDB가 NoSQL 도큐먼트 데이터베이스로 분류되는 이유이다.

도큐먼트는 객체와 같이 데이터를 필드-값 쌍(Field - Value pair)으로 저장하고 구성하는 방법이다.
도큐먼트에서 필드는 데이터의 고유한 식별자이고 값은 주어진 식별자와 관련된 데이터를 뜻한다.

위 예제에서 name이란 필드의 값은 kimcoding이다.
이러한 도큐먼트들의 모음을 컬렉션이라고 부르며 데이터베이스는 여러개의 컬렉션으로 구성된다.

  • 도큐먼트(Document)
    필드 - 값 쌍으로 저장된 데이터

  • 필드(Field)
    데이터포인트를 위한 고유한 식별자

  • 값(Value)
    주어진 식별자와 관계된 데이터

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

BSON

BSON은 컴퓨터의 언어에 가까운 이진법에 기반을 둔 표현법이기 때문에 JSON 보다 메모리 사용에 효율적이며, 보다 빠르고, 가벼우며 유연할뿐만 아니라, BSON의 사용으로 더 많은 데이터 타입을 사용할 수 있게 되었다.

MongoDB는 JSON형식으로 작성된 것은 무엇이든 데이터베이스에 추가할 수 있고, 쉽게 조회할 수 있지만,
속도, 효율성, 유연성의 장점이 있기 때문에 내부적으로 BSON 형식으로 데이터를 저장, 사용하고 있다.


Atlas Cloud

MongoDB에서는 아틀라스(Atlas)를 사용하여 클라우드에서 데이터베이스를 설정한다.
이는 GUI 및 Shell로 데이터를 시각화, 분석, 내보내기 및 빌드하는 데 사용할 수 있다.
아틀라스 사용자는 클러스터를 배포 할 수 있으며 이는 그룹화된 서버에 데이터를 저장한다.

이러한 서버는 레플리카 세트(Replica set)으로 구성되어 있으며 이는 동일한 데이터를 저장하는 몇 개의 연결된 MongoDB 인스턴스의 모음이다.
여기서, 인스턴스는 특정 소프트웨어를 실행하는 로컬 또는 클라우드의 단일 머신이고, 이 경우 인스턴스는 클라우드에서 실행되는 MongoDB 데이터베이스이다.

도큐먼트나 컬렉션을 변경할 경우, 해당 데이터의 중복 사본이 레플리카 세트에 저장된다.
이 설정을 통해 레플리카 세트의 인스턴스 중 하나에 문제가 발생하더라도 데이터는 그대로 유지되며 레플리카 세트의 애플리케이션에서 나머지 작업을 할 수 있다.
이 과정을 위해 클러스터(서버 그룹)를 배포하면 자동으로 레플리카 세트가 구성된다.

  • 레플리카 세트

    동일한 데이터를 저장하는 소수의 연결된 머신들은 머신 중 하나에 문제가 발생하더라도 데이터가 그대로 유지되도록 한다.

  • 인스턴스

    로컬 또는 클라우드에서 특정 소프트웨어를 실행하는 단일 머신, MongoDB에서는 데이터베이스이다.

  • 클러스터

    데이터를 저장하는 서버 그룹

profile
Sic Parvis Magna 🧩

0개의 댓글