Document는 객체와 같이 데이터를 "field" - "value" 쌍으로 저장하고 구성한다.
JSON 형식으로 도큐먼트를 작성하기 위해서는 다음과 같은 조건을 만족해야합니다.
도큐먼트의 데이터 형태는 다음과 같다.
{
name: "sue", // field:value
age: 30, // field:value
status: "S", // field:value
groups: ["news", "math"] // field:value
}
Mongo DB는 컬렉션에 도큐먼트를 저장합니다. 컬렉션은 관계형 데이터베이스의 테이블과 유사합니다.
테이블이란 행과 열을 가지고 있는 SQL로 쿼리가 가능한 데이터 형태입니다.
컬렉션외에도 MongoDB는 다음을 지원합니다.
1. 고성능 데이터 지속성 제공
포함된 데이터 모델 지원으로 데이터베이스 시스템의 Input / Output 활동이 줄어듬
인덱스는 더 빠른 쿼리를 지원하고 포함된 문서 및 배열의 키를 포함할 수 있음
2. 쿼리API
MongoDB Query API는 CRUD(읽기 및 쓰기 작업)와 다음을 지원합니다.
3. 고가용성
replica set 이라고 하는 MongoDB의 복제 기능 은 다음을 제공합니다.
복제본 세트 즉 replica set를 통해 mongoDB 서버 그룹으로 중복성을 제공하고 데이터 가용성을 높임
4. 수평적 확장성
관계형 Database는 수직적으로 확장(하드웨어 확장)한다면 NoSQL DB인 MongoDB는 수평적 확장성을 제공합니다.
5. 다중 스토리지 엔진 지원
MongoDB는 여러 스토리지 엔진 을 지원합니다 .
맞습니다만 내부적으로는 아닙니다.
JSON은 텍스트 형식이라서 읽기 쉽지만 파싱이 느리고 메모리 사용이 비효율적입니다.
그리고 JSON은 기본 데이터 타입만 지원해서 사용할 수 있는 데이터 타입에 제약이 있습니다.
그레서 위의 JSON 문제를 해결하기 위해 MongoDB는 BSON이라는 Binary JSON 형식을 도입했습니다.
BSON은 컴퓨터의 언어에 가까운 이진법에 기반을 둔 표현법입니다. JSON보다 메모리 사용이 효율적이고 빠르고, 가볍고, 유연합니다.
그래서 MongoDB는 겉으로는 JSON으로만 동작할 것 같지만 BSON의 이런 장점들 때문에 내부동작은 BSON으로 하고 클라이언트가 사용할 때는 JSON으로 추가하고 쉽게 조회할 수 있게 만들어줍니다.
도큐먼트 (Document)
필드(Field)
값(Value)
컬렉션(Collection)
BSON (Binary JSON)
Binary JSON 의 줄임말인 BSON [bee·sahn] 은 JSON과 유사한 문서의 바이너리 인코딩 직렬화입니다. JSON과 마찬가지로 BSON은 다른 문서 및 배열 내에 문서 및 배열을 포함하는 것을 지원합니다. BSON에는 JSON 사양의 일부가 아닌 데이터 유형을 표현할 수 있는 확장도 포함되어 있습니다. 예를 들어 BSON에는 날짜 유형과 BinData 유형이 있습니다.
BSON은 프로토콜 버퍼 와 같은 이진 교환 형식과 비교할 수 있습니다 . BSON은 프로토콜 버퍼보다 "스키마가 적기" 때문에 유연성 면에서는 이점이 있지만 공간 효율성 면에서는 약간의 단점이 있습니다(BSON은 직렬화된 데이터 내의 필드 이름에 대한 오버헤드가 있음).
BSON은 다음 세 가지 특성을 갖도록 설계되었습니다.
MongoDB Database, Collection, Document를 생성하고 제거해보자 (0) | 2023.01.17 |
---|---|
Import vs Export (0) | 2023.01.13 |
NoSQL(Not only SQL)이란? (2) | 2023.01.10 |