TIL 9.3

Hong·2021년 9월 4일
0

TIL 9.3

NoSQL

NoSQL은 Not Only SQL의 약자로 기존 RDBMs 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하며, 관계형 데이터 베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태로, 수평적 확장성을 갖고 있다. 문서, 그래프, 키 값, 인 메모리, 검색을 포함해 다양한 데이터 모델을 사용한다. RDBMS가 클라이언트/서버 환경에 맞는 데이터 저장기술이라면, NoSQL은 클라우드 환경에 맞는 저장 기술이다.

MongoDB

MongoDB는 대표적인 NoSQL 도큐먼트 데이터베이스이다. 도큐먼트 데이터베이스는 데이터를 테이블이 아닌, 문서처럼 저장하는 데이터베이스를 의미한다.

NoSQL 기반의 비관계형 데이터베이스의 장점

1. 비구조적인 대용량의 데이터를 저장하는 경우

NoSQL 데이터베이스는 관계에 중점을 둔 SQL 데이터베이스보다 자유로운 형태로 데이터를 저장할 수 있으므로 필요에 따라서 새로운 데이터 유형을 추가할 수 있다. 소프트웨어 개발에 정형화되지 않은 많은 양의 데이터가 필요한 경우, NoSQL이 효율적일 수 있다.

2. 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우

NoSQL 데이터베이스는 데이터베이스를 클라우드 기반으로 쉽게 분리 할 수 있도록 지원하여, 저장 공간을 효율적으로 사용한다. 시스템이 커지면서 DB를 증설해야 하는 시점이 오면, SQL 데이터베이스에서는 수직적 확장의 형태로 DB를 증설한다. 수직적으로 확장된 데이터베이스는 관리가 어려워질 수 있는데에 반해, NoSQL은 수평적 확장의 형태로 증설하므로, 이론상 무한대로 서버를 계속 분산시켜 DB를 증설할 수 있다.

3. 빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우

NoSQL 데이터베이스의 경우 스키마를 미리 준비할 필요가 없어서, 개발을 빠르게 해야하는 경우에 매우 적합하다. 시장에 빠르게 프로토타입을 출시해야 하는 경우나, 소프트웨어 버전별로 많은 다운타임(데이터베이스의 서버를 오프라인으로 전환하여 작업하는 시간) 없이 데이터 구조를 자주 업데이트 해야하는 경우에는 일일이 스키마를 수정해주어야 하는 관계형 데이터베이스 보다 NoSQL 기반의 비관계형 데이터베이스가 더 효율적이다.

MongoDB Document

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

<용어 정리>

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

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

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

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

BSON(Binary JSON)

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

BSON의 세 가지 특성

  1. 경량
    공간 오버헤드를 최소로 유지하는 것은 모든 데이터 표현 형식, 특히 네트워크를 통해 사용될 때 중요합니다.

  2. 순회 가능
    BSON은 쉽게 통과하도록 설계되었습니다. 이에 대한 기본 데이터 표현의 역할에 중요한 속성입니다 월 - goDB .

  3. 효율적인
    데이터를 BSON으로 인코딩하고 BSON에서 디코딩하는 것은 C 데이터 유형을 사용하기 때문에 대부분의 언어에서 매우 빠르게 수행할 수 있습니다.

profile
코딩 배우기

0개의 댓글