Projects/SpringBoot project 1 (chatapp만들기)

chatapp Collection, Document (MongoDB)

Vagins 2021. 9. 14. 20:21

21.09.14

LOMBOK에 이어서 MonggoDB의 collection과 document에 대해 정리해보겠습니다.

참고로 MonggoDB(Nosql) 처음 사용해봅니다. 매번 mysql, mariadb만 사용했었기에 제 첫 Nosql입니다.

 

 

 

 

1. Database

 

db는 collection의 물리적 container입니다. 하나의 db에는 여러개의 collection을 가지고 있습니다.

(정확하진 않지만 collection을 하나의 table 처럼 여기는듯 합니다.)

 

 

 

2. Collection

 

collection은 monggo에서 document의 그룹입니다. RDBMS의 table과 유사한 개념인듯 합니다.

collection은 schema를 강요하지 않습니다. 따라서 collection 내부의 document는 서로 다른 필드를 가질 수 있습니다. collection 안에 document는 일반적으로 서로 유사하거나 관련된 목적이 있습니다.

 

 

 

3. Document

 

document는 하나의 key와 value의 집합으로 이루어져 있습니다. 또한 동적 schema입니다. 

동적 schema는 동일한 collection 내의 document가 동일한 field 또는 구조를 가질 필요가 없음을 의미합니다.

또 동일한 field 안에 다른 type의 data를 보유 할 수 있음을 의미 합니다.

 

 

 

4. RDBMS 와 MongoDB 비교 

 RDBMS  MonggoDB
 Database  Database
 Table  Collection
 Tuple/Row  Document
 Column  Field
 Table Join  Embedded Documents
 Primary Key  Primary Key ( Default _id )

 


출처: https://javacpro.tistory.com/66 [버물리의 IT공부]

 

 

 

 

5. Nosql (MongoDB) 의 장점

 

 nosql에서는 rdbms와 달리 table간 관계를 설정하지 않습니다. table은 그냥 하나의 table 이며 join도 불가능합니다.

nosql은 데이터의 일관성은 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 scale-out(수평적 확장성)을 목표로 등장하였습니다. (rdbms에서도 수평 확장 가능함) 다른 장점으로는 짧은 지연시간, 객체 기반 api 제공 등이 있습니다.