MongoDB concept
- MongoDB 데이터의 기본 단위는 Document 다.
- 모든 Document(row) 는 collection(table) 내에서 PK
_id
를 가진다.
- Reference 만 지원하는 RDB 와 다르게 Reference와 Embed 두가지를 지원한다.
Denormalization(비정규화)
- Normalization: 중복을 최소화 하여 저장공간을 아낌, denormalization: 중복을 허용(sub-collection)하더라도 join 을 최소화하여 성능을 높임.
- Denormalization을 하면 쿼리 수행을 위한 모든 데이터를 한곳에 모아놓고 쿼리를 수행하기 때문에 쿼리 수행을 위한 IO 숫자를 줄여 전체 성능을 향상시킬수 있음
- 데이터 denormalization 을 하면 쿼리에 필요한 모든 데이터를 한곳에 쿼리 친화적인 구조로 모아놓을 수 있다.
Document
- JSON 형태의 key : value 형태로 데이터를 표현한다.
- Document 내부에 함수형 데이터 구조가 포함된다.
e.g. ObjectId(), ISODate(), etc…
- Document 내에 또 다른 Document 를 embed할 수 있다.(Embedded document)
Collection
Dynamic schema
Collection 은 Dynamic schema(동적 스키마) 를 가지기 떄문에 key, key 의 갯수, data type 이 모두 달라도 저장할 수 있다.
Dynamic schema 덕분에 NoSQL 이 schema-less 라고 불린다.