🚩 Intro
NoSQL
- Not Only SQL
- RDBMS처럼 고정된 스키마 및 JOIN이 존재 X
Document
- RDBMS의 record와 비슷한 개념
- key-value
- 동적인 schema를 가지고 있음(RDBMS와의 큰 차이점)
Collection
Database
RDBMS와 비교
장점
- schema-less : 같은 Collection 안에 있을지라도 다른 schema를 가질 수 있음 즉, 자유로움
- 복잡한 JOIN x
- Deep Query ability
- App에서 사용되는 객체를 DB에 추가할 때 Conversion/Mapping이 불필요
🚩 Data Modeling
- 사용자 요구 (User Requirement) 에 따라 schema를 디자인
- 객체들을 함께사용하게 된다면 한 Document에 합쳐서 사용(ex. 게시물-덧글 과의 관계)
- 그렇지 않으면 따로 사용(그리고 join 을 사용하지 않는걸 확실히)
- 읽을때 join 하는게아니라 데이터를 작성 할 때 join
RDBMS와 비교
-
RDBMS
-
MongoDB
{
_id: POST_ID,
title: POST_TITLE,
content: POST_CONTENT,
username: POST_WRITER,
tags: [ TAG1, TAG2, TAG3 ],
time: POST_TIME
comments: [
{
username: COMMENT_WRITER,
mesage: COMMENT_MESSAGE,
time: COMMENT_TIME
},
{
username: COMMENT_WRITER,
mesage: COMMENT_MESSAGE,
time: COMMENT_TIME
}
]
}
Reference
https://velopert.com/436